From 8bcd7f58acd38f5d5e1731f89be4a10a79d0fdb7 Mon Sep 17 00:00:00 2001 From: rsiddharth Date: Sat, 23 Jun 2012 22:44:40 +0530 Subject: scruf is "bzr"ed now. --- conversion/CanConvert.java | 20 ++++++++++++++++++++ conversion/ConvertDirectory.java | 40 ++++++++++++++++++++++++++++++++++++++++ conversion/ConvertFile.java | 36 ++++++++++++++++++++++++++++++++++++ conversion/FileSieve.java | 15 +++++++++++++++ 4 files changed, 111 insertions(+) create mode 100644 conversion/CanConvert.java create mode 100644 conversion/ConvertDirectory.java create mode 100644 conversion/ConvertFile.java create mode 100644 conversion/FileSieve.java (limited to 'conversion') 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 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 -- cgit v1.2.3