JarEntryStatements.java
package org.ferris.riviera.console.jar;
import java.io.IOException;
import java.io.LineNumberReader;
import java.io.StringReader;
import java.util.LinkedList;
/**
* *
* * @author Michael Remijan mjremijan@yahoo.com @mjremijan
*/
public class JarEntryStatements extends LinkedList<String> {
private static final long serialVersionUID = 1989475038247087234L;
public JarEntryStatements(String fileContents) throws IOException {
StringReader sr = new StringReader(fileContents + "\n" + ";");
LineNumberReader reader = new LineNumberReader(sr);
StringBuilder sp = new StringBuilder();
for (String line = reader.readLine(); line != null; line = reader.readLine()) {
String lineTrimmed = line.trim();
if (!lineTrimmed.isEmpty()) {
String lineRemovedCommentsTrimmed
= //"(?m)--(.*?)$"
//[^,;]
lineTrimmed.replaceAll( //"(?m)--(.*?)$"
//[^,;]
"(?m)--[^']*?$", "").trim();
if (lineRemovedCommentsTrimmed.isEmpty()) {
continue;
}
if (';' == lineRemovedCommentsTrimmed.charAt(lineRemovedCommentsTrimmed.length() - 1)) {
String lineNoSemicolon = lineRemovedCommentsTrimmed.substring(0, lineRemovedCommentsTrimmed.length() - 1).trim();
if (!lineNoSemicolon.isEmpty()) {
if (sp.length() > 0) {
sp.append("\n");
}
sp.append(lineNoSemicolon);
}
if (sp.length() > 0) {
super.add(sp.toString());
sp.setLength(0);
}
} else {
if (sp.length() > 0) {
sp.append("\n");
}
sp.append(lineRemovedCommentsTrimmed);
}
}
}
}
}