package ecologylab.bigsemantics.metametadata.fieldops; import java.util.regex.Matcher; import java.util.regex.Pattern; import ecologylab.serialization.annotations.simpl_scalar; /** * * @author quyin */ public class Replace implements FieldOp { @simpl_scalar private Pattern pattern; @simpl_scalar private String to = ""; @simpl_scalar private boolean firstOnly; public Pattern getPattern() { return pattern; } public void setPattern(Pattern pattern) { this.pattern = pattern; } public String getTo() { return to; } public void setTo(String to) { this.to = to; } public boolean isFirstOnly() { return firstOnly; } public void setFirstOnly(boolean firstOnly) { this.firstOnly = firstOnly; } @Override public Object operateOn(Object rawValue) { if (rawValue != null && pattern != null) { Matcher matcher = pattern.matcher(rawValue.toString()); if (firstOnly) { return matcher.replaceFirst(to); } else { return matcher.replaceAll(to); } } return rawValue; } }