1 package de.java2html.commandline; 2 3 import java.io.File ; 4 import java.io.IOException ; 5 6 import de.java2html.converter.IJavaSourceConverter; 7 import de.java2html.options.JavaSourceConversionOptions; 8 import de.java2html.util.Ensure; 9 import de.java2html.util.IoUtilities; 10 11 14 public class Java2HtmlDirectoryConversion extends AbstractJava2HtmlConversion { 15 16 private final File sourceDirectory; 17 private final File targetDirectory; 18 private final String fileMask; 19 private final boolean copyUnprocessedFiles; 20 21 public Java2HtmlDirectoryConversion( 22 File sourceDirectory, 23 IJavaSourceConverter converter, 24 File targetDirectory, 25 String fileMask, 26 boolean copyUnprocessedFiles, JavaSourceConversionOptions options) { 27 super(converter, options); 28 Ensure.ensureArgumentNotNull(fileMask); 29 Ensure.ensureArgumentNotNull(sourceDirectory); 30 31 this.sourceDirectory = sourceDirectory; 32 if (targetDirectory == null) { 33 targetDirectory = sourceDirectory; 34 } 35 this.targetDirectory = targetDirectory; 36 this.fileMask = fileMask; 37 this.copyUnprocessedFiles = copyUnprocessedFiles; 38 } 39 40 public void execute() { 41 convertDirectory(sourceDirectory, targetDirectory); 42 } 43 44 51 private void convertDirectory(File sourceDirectory, File targetDirectory) { 52 File [] files = sourceDirectory.listFiles(); 53 for (int i = 0; i < files.length; i++) { 54 File file = files[i]; 55 if (file.isDirectory()) { 56 File newTargetDirectory = null; 57 if (sourceDirectory.equals(targetDirectory)) { 58 newTargetDirectory = file; 59 } 60 else { 61 newTargetDirectory = new File (targetDirectory, file.getAbsolutePath().substring( 62 sourceDirectory.getAbsolutePath().length())); 63 } 64 convertDirectory(file, newTargetDirectory); 65 } 66 else { 67 if (matches(file)) { 68 File targetFile = null; 69 if (sourceDirectory.equals(targetDirectory)) { 70 targetFile = file; 71 } 72 else { 73 targetFile = new File (targetDirectory, file.getAbsolutePath().substring( 74 sourceDirectory.getAbsolutePath().length())); 75 } 76 targetFile = IoUtilities.exchangeFileExtension(targetFile, getConverter() 77 .getMetaData().getDefaultFileExtension()); 78 convertFile(file, targetFile); 79 } 80 else { 81 if (copyUnprocessedFiles) { 82 if (!sourceDirectory.equals(targetDirectory)) { 83 File targetFile = new File (targetDirectory, file.getAbsolutePath().substring( 84 sourceDirectory.getAbsolutePath().length())); 85 try { 86 IoUtilities.copy(file, targetFile); 87 } 88 catch (IOException e) { 89 System.err.println("ERROR: Could cot copy file to target: " 90 + file.getAbsolutePath()); 91 } 92 } 93 } 94 } 95 } 96 } 97 } 98 99 104 private boolean matches(File file) { 105 return file.getAbsolutePath().toLowerCase().endsWith(fileMask.substring(1)); 106 } 107 } | Popular Tags |