de.invation.code.toval.file.CharacterReplaceParser Maven / Gradle / Ivy
package de.invation.code.toval.file;
import java.nio.charset.Charset;
import java.util.HashSet;
import java.util.Set;
import de.invation.code.toval.validate.ParameterException;
import de.invation.code.toval.validate.Validate;
public class CharacterReplaceParser extends LineBasedFileTransformer{
protected String replaceString = null;
protected String replacementString = null;
public CharacterReplaceParser(String replaceString, String replacementString) throws ParameterException {
super();
Validate.notNull(replaceString);
Validate.notNull(replacementString);
this.replaceString = replaceString;
this.replacementString = replacementString;
}
public CharacterReplaceParser(Charset charset, String replaceString, String replacementString) throws ParameterException {
this(charset, charset, replaceString, replacementString);
}
public CharacterReplaceParser(Charset inputCharset, Charset outputCharset, String replaceString, String replacementString) throws ParameterException {
super(inputCharset, outputCharset);
Validate.notNull(replaceString);
Validate.notNull(replacementString);
this.replaceString = replaceString;
this.replacementString = replacementString;
}
@Override
protected Set transformLine(String line) {
Set result = new HashSet();
if(replaceString != null && replacementString != null){
result.add(line.replace(replaceString, replacementString));
} else {
result.add(line);
}
return result;
}
public static void main(String[] args) throws Exception{
if(args.length < 3 || args.length > 4){
System.out.println("Usage: FileParser [charset] find replace filename");
return;
}
CharacterReplaceParser parser;
if(args.length == 3){
parser = new CharacterReplaceParser(args[0], args[1]);
parser.parseFile(args[2]);
} else {
parser = new CharacterReplaceParser(Charset.forName(args[0]), args[1], args[2]);
parser.parseFile(args[3]);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy