summaryrefslogtreecommitdiffstats
path: root/conversion
diff options
context:
space:
mode:
authorrsiddharth <rsiddharth@ninthfloor.org>2012-06-23 22:44:40 +0530
committerrsiddharth <rsiddharth@ninthfloor.org>2012-06-23 22:44:40 +0530
commit8bcd7f58acd38f5d5e1731f89be4a10a79d0fdb7 (patch)
tree6c1d4dfc97d77230ecf95d4e0f8b4fe1cde5b739 /conversion
scruf is "bzr"ed now.
Diffstat (limited to 'conversion')
-rw-r--r--conversion/CanConvert.java20
-rw-r--r--conversion/ConvertDirectory.java40
-rw-r--r--conversion/ConvertFile.java36
-rw-r--r--conversion/FileSieve.java15
4 files changed, 111 insertions, 0 deletions
diff --git a/conversion/CanConvert.java b/conversion/CanConvert.java
new file mode 100644
index 0000000..4fe5e84
--- /dev/null
+++ b/conversion/CanConvert.java
@@ -0,0 +1,20 @@
+package scruf.conversion;
+
+import java.io.*;
+
+public class CanConvert {
+ private File htmlFile;
+ private long modified1, modified2;
+ public boolean check(File file) {
+ htmlFile = new File(file.getAbsolutePath()+".html");
+ modified1 = file.lastModified();
+ modified2 = htmlFile.lastModified();
+ if(modified1 > modified2) {
+ // should convert.
+ return true;
+ }else {
+ // should not convert.
+ return false;
+ }
+ }
+} \ No newline at end of file
diff --git a/conversion/ConvertDirectory.java b/conversion/ConvertDirectory.java
new file mode 100644
index 0000000..063bd87
--- /dev/null
+++ b/conversion/ConvertDirectory.java
@@ -0,0 +1,40 @@
+package scruf.conversion;
+
+import java.io.*;
+import scruf.index.*;
+
+public class ConvertDirectory {
+ private ConvertFile html;
+ private CanConvert canConvert;
+ private boolean can;
+ public ConvertDirectory() {
+ html = new ConvertFile();
+ canConvert = new CanConvert();
+ }
+ public void convert(File directory) {
+ if(!directory.isDirectory()) {
+ System.out.println(directory+" is not a Directory."+
+ " No conversion done on.");
+ return;
+ }
+ // index creator for the present directory.
+ IndexCreator index = new IndexCreator(directory);
+ // iterate through the directory.
+ for(File file:directory.listFiles(new FileSieve())) {
+ if(file.isFile()) {
+ can = canConvert.check(file);
+ if(can) {
+ html.convert(file);
+ index.add(file);
+ }
+ }
+ else if(file.isDirectory()) {
+ this.convert(file);
+ }
+ }
+
+ boolean modified = index.write();
+ if(modified)
+ html.convert(index.indexFile());
+ }
+} \ No newline at end of file
diff --git a/conversion/ConvertFile.java b/conversion/ConvertFile.java
new file mode 100644
index 0000000..2cf62f3
--- /dev/null
+++ b/conversion/ConvertFile.java
@@ -0,0 +1,36 @@
+package scruf.conversion;
+
+import scruf.io.*;
+import scruf.parsers.*;
+import java.util.*;
+import java.io.*;
+
+public class ConvertFile {
+ private List<Parser> parsers;
+ private ReadFile readFile;
+ public ConvertFile() {
+ parsers = new ParserList().list();
+ }
+ public void convert(File file) {
+ /**
+ * footer is optional, so it is null
+ * by default.
+ */
+ PresentFile.footer = null;
+ /**
+ * takes the present file reference
+ * for use outside this method.
+ */
+ PresentFile.file = file;
+ readFile = new ReadFile(file);
+ String fileContent = readFile.getContent();
+ // start conversion.
+ for(Parser p:parsers) {
+ fileContent = p.parse(fileContent);
+ }
+
+ // Write converted file to respective html file.
+ File outputFile = new File(file.getAbsolutePath()+".html");
+ new WriteFile(outputFile,fileContent).write();
+ }
+}
diff --git a/conversion/FileSieve.java b/conversion/FileSieve.java
new file mode 100644
index 0000000..e0a5166
--- /dev/null
+++ b/conversion/FileSieve.java
@@ -0,0 +1,15 @@
+package scruf.conversion;
+
+import java.io.*;
+import java.util.regex.*;
+
+public class FileSieve implements FileFilter {
+ // this method return true, if this file doesn't represent
+ // a html file.
+ public boolean accept(File pathname) {
+ Pattern pattern = Pattern.compile("(.+\\.(html|png|jpg|css|tar))|(.+?\\~)|(index)");
+ Matcher matcher = pattern.matcher(pathname.getName());
+ boolean bool = matcher.find();
+ return !bool;
+ }
+} \ No newline at end of file