*/
abstract class Replacer<T> {
@SuppressWarnings("unchecked")
public static Replacer getReplacer(PropertySearchField searchField, SearchOptions options) {
ReplaceableProperty property = (ReplaceableProperty) searchField.getProperty();
Class type = property.getValueType();
if (type.equals(String.class)) {
String searchString = (String) Utils.getValue(searchField);
return new StringReplacer(property, searchString, options);
} else {
return new DefaultReplacer(property);