package com.indexdata.mkjsf.pazpar2.commands;\r
\r
import java.io.Serializable;\r
-import java.util.StringTokenizer;\r
\r
import org.apache.log4j.Logger;\r
\r
-import com.indexdata.mkjsf.pazpar2.commands.Expression;\r
-\r
public class Expression implements Serializable {\r
\r
private static final long serialVersionUID = -751704027842027769L;\r
}\r
\r
public Expression (String expressionString) {\r
- StringTokenizer tokenizer = new StringTokenizer(expressionString,"=");\r
- this.leftEntity = tokenizer.nextToken();\r
- this.operator = "=";\r
- this.rightEntity = tokenizer.nextToken();\r
+ String[] parts = expressionString.split("[=~]");\r
+ this.leftEntity = parts[0];\r
+ this.operator = expressionString.contains("=") ? "=" : "~";\r
+ this.rightEntity = parts[1];\r
this.label=rightEntity;\r
}\r
\r
\r
public void setFilter(String filterExpression) {\r
if (filterExpression != null && filterExpression.length()>0) {\r
- setParameter(new FilterParameter(new Expression(filterExpression)));\r
+ if (filterExpression.split("[=~]").length==1) {\r
+ removeFilters(filterExpression.split("[=~]")[0]);\r
+ } else if (filterExpression.split("[=~]").length==2) {\r
+ setParameter(new FilterParameter(new Expression(filterExpression)));\r
+ } else {\r
+ logger.error("Could not parse filter expression [" + filterExpression + "]");\r
+ }\r
}\r
}\r
\r