@Override protected Criteria parseKey(String keyVal) { if (keyVal.startsWith("$")) return Criteria.PROPERTY; else return Criteria.valueOf(keyVal); }
@Override protected Criteria[] getFilterKeys() { return Criteria.values(); }
@Override protected void process(Criteria key, Restriction<String> rest) { key.process(this, rest.originalKey, rest.op, rest.value); }