package com.revolsys.record.query.functions;
import com.revolsys.record.Record;
import com.revolsys.record.query.QueryValue;
import com.revolsys.record.query.Value;
import com.revolsys.util.Property;
public class RegexpReplace extends Function {
public RegexpReplace(final QueryValue value, final String pattern, final String replace) {
super("regexp_replace", value, new Value(pattern), new Value(replace));
}
public RegexpReplace(final QueryValue value, final String pattern, final String replace,
final String flags) {
super("regexp_replace", value, new Value(pattern), new Value(replace), new Value(flags));
}
@SuppressWarnings("unchecked")
@Override
public <V> V getValue(final Record record) {
final String text = getParameterStringValue(0, record);
final String pattern = getParameterStringValue(1, record);
String replace = getParameterStringValue(2, record);
if (replace == null) {
replace = "";
}
if (Property.hasValue(text)) {
return (V)text.replaceAll(pattern, replace);
} else {
return null;
}
}
}