X-Git-Url: http://www2.svjatoslav.eu/gitweb/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Fmeviz%2Ftexttruncate%2FMain.java;h=11e10982fd761e6f0a56474a03f8453f3216160d;hb=1b742640af99284aae1cd10c259254137316ba7c;hp=a578234549fc3e281747b879c468f430981de3c0;hpb=6cda75011fa4346a3cc2c7c7790eb1f1b12cd3fe;p=meviz.git diff --git a/src/main/java/eu/svjatoslav/meviz/texttruncate/Main.java b/src/main/java/eu/svjatoslav/meviz/texttruncate/Main.java index a578234..11e1098 100755 --- a/src/main/java/eu/svjatoslav/meviz/texttruncate/Main.java +++ b/src/main/java/eu/svjatoslav/meviz/texttruncate/Main.java @@ -9,147 +9,142 @@ package eu.svjatoslav.meviz.texttruncate; -import java.io.BufferedReader; -import java.io.BufferedWriter; -import java.io.File; -import java.io.FileReader; -import java.io.FileWriter; -import java.io.IOException; - import eu.svjatoslav.commons.file.FilePathParser; import eu.svjatoslav.commons.string.String2; import eu.svjatoslav.commons.string.WildCardMatcher; import eu.svjatoslav.meviz.Module; +import java.io.*; + public class Main implements Module { - public static final int targetLineLength = 200; + public static final int targetLineLength = 200; - public static final int maxSplittedLines = 3; + public static final int maxSplittedLines = 3; - public static final String splitLinePrefix = " "; + public static final String splitLinePrefix = " "; - CommandlineHandler commandlineHandler = new CommandlineHandler(); + CommandlineHandler commandlineHandler = new CommandlineHandler(); - TextTruncatingOptions options; + TextTruncatingOptions options; - public boolean fileMatchesInputPattern(final File file) { - final String fileName = file.getName().toLowerCase(); + public boolean fileMatchesInputPattern(final File file) { + final String fileName = file.getName().toLowerCase(); - for (final String inputPattern : options.inputPatterns) - if (WildCardMatcher.match(fileName, inputPattern.toLowerCase())) - return true; + for (final String inputPattern : options.inputPatterns) + if (WildCardMatcher.match(fileName, inputPattern.toLowerCase())) + return true; - return false; - } + return false; + } - @Override - public String getDescription() { - return "Truncate text with long lines into multiple shorter lines."; - } + @Override + public String getDescription() { + return "Truncate text with long lines into multiple shorter lines."; + } - @Override - public String getModuleCommand() { - return "trunctext"; - } + @Override + public String getModuleCommand() { + return "trunctext"; + } - private File getTargetFile(final File sourceFile) { - final StringBuffer targetFilePath = new StringBuffer(); - targetFilePath.append(sourceFile.getParent()); - targetFilePath.append("/"); - targetFilePath.append(FilePathParser - .getFileNameWithoutExtension(sourceFile)); + private File getTargetFile(final File sourceFile) { + final StringBuilder targetFilePath = new StringBuilder(); + targetFilePath.append(sourceFile.getParent()); + targetFilePath.append("/"); + targetFilePath.append(FilePathParser + .getFileNameWithoutExtension(sourceFile)); - targetFilePath.append(".truncated"); + targetFilePath.append(".truncated"); - // add file extension - { - final String fileExtension = FilePathParser - .getFileExtension(sourceFile); + // add file extension + { + final String fileExtension = FilePathParser + .getFileExtension(sourceFile); - if (fileExtension.length() > 0) - targetFilePath.append("." + fileExtension); - } - return new File(targetFilePath.toString()); - } + if (fileExtension.length() > 0) + targetFilePath.append("." + fileExtension); + } + return new File(targetFilePath.toString()); + } - public void processDirectory(final File directory) { + public void processDirectory(final File directory) { - for (final File subFile : directory.listFiles()) - if (subFile.isDirectory()) { - if (options.recursive) - processDirectory(subFile); - } else if (fileMatchesInputPattern(subFile)) - try { - processFile(subFile); - } catch (final IOException exception) { - System.out.println("Error processing file: " - + subFile.getAbsolutePath()); - System.out.println(" exception: " - + exception.getMessage()); - } + for (final File subFile : directory.listFiles()) + if (subFile.isDirectory()) { + if (options.recursive) + processDirectory(subFile); + } else if (fileMatchesInputPattern(subFile)) + try { + processFile(subFile); + } catch (final IOException exception) { + System.out.println("Error processing file: " + + subFile.getAbsolutePath()); + System.out.println(" exception: " + + exception.getMessage()); + } - } + } - public void processFile(final File file) throws IOException { - final File targetFile = getTargetFile(file); + public void processFile(final File file) throws IOException { + final File targetFile = getTargetFile(file); - final BufferedReader bufferedReader = new BufferedReader( - new FileReader(file)); + final BufferedReader bufferedReader = new BufferedReader( + new FileReader(file)); - final BufferedWriter bufferedWriter = new BufferedWriter( - new FileWriter(targetFile)); + final BufferedWriter bufferedWriter = new BufferedWriter( + new FileWriter(targetFile)); - while (true) { - final String readLine = bufferedReader.readLine(); - if (readLine == null) - break; + while (true) { + final String readLine = bufferedReader.readLine(); + if (readLine == null) + break; - if (readLine.length() <= targetLineLength) - bufferedWriter.write(readLine + "\n"); - else { + if (readLine.length() <= targetLineLength) + bufferedWriter.write(readLine + "\n"); + else { - final String2 cuttableString = new String2(readLine); + final String2 cuttableString = new String2(readLine); - bufferedWriter.write(cuttableString.cutLeft(targetLineLength) - + "\n"); + bufferedWriter.write(cuttableString.cutLeft(targetLineLength) + + "\n"); - int splittedLinesCount = 0; + int splittedLinesCount = 0; - while (!cuttableString.isEmpty()) { - splittedLinesCount++; - if (splittedLinesCount >= maxSplittedLines) - break; + while (!cuttableString.isEmpty()) { + splittedLinesCount++; + if (splittedLinesCount >= maxSplittedLines) + break; - bufferedWriter.write(splitLinePrefix - + cuttableString.cutLeft(targetLineLength - - splitLinePrefix.length()) + "\n"); - } - } + bufferedWriter.write(splitLinePrefix + + cuttableString.cutLeft(targetLineLength + - splitLinePrefix.length()) + "\n"); + } + } - } + } - bufferedReader.close(); - bufferedWriter.close(); - } + bufferedReader.close(); + bufferedWriter.close(); + } - @Override - public void run(final String[] args) throws IOException { + @Override + public void run(final String[] args) throws IOException { - options = commandlineHandler.parseCommandlineArguments(args); + options = commandlineHandler.parseCommandlineArguments(args); - if (options == null) { - showCommandlineHelp(); - return; - } + if (options == null) { + showCommandlineHelp(); + return; + } - processDirectory(options.targetDirectory); + processDirectory(options.targetDirectory); - } + } - @Override - public void showCommandlineHelp() { - commandlineHandler.parser.showHelp(); - } + @Override + public void showCommandlineHelp() { + commandlineHandler.parser.showHelp(); + } }