Adds support for parsing diff. expression operators
[mkjsf-moved-to-github.git] / src / main / java / com / indexdata / mkjsf / pazpar2 / commands / Expression.java
1 package com.indexdata.mkjsf.pazpar2.commands;\r
2 \r
3 import java.io.Serializable;\r
4 \r
5 import org.apache.log4j.Logger;\r
6 \r
7 public class Expression implements Serializable {\r
8   \r
9   private static final long serialVersionUID = -751704027842027769L;\r
10   private static Logger logger = Logger.getLogger(Expression.class);\r
11   String leftEntity;\r
12   String operator;\r
13   String rightEntity;\r
14   String label;  \r
15   \r
16   public Expression (String leftEntity, String operator, String rightEntity, String label) {\r
17     this.leftEntity = leftEntity;\r
18     this.operator = operator;\r
19     this.rightEntity = rightEntity;    \r
20     this.label = label;\r
21   }\r
22   \r
23   public Expression (String expressionString) {\r
24     String[] parts = expressionString.split("[=~]");\r
25     this.leftEntity = parts[0];\r
26     this.operator = expressionString.contains("=") ? "=" : "~";\r
27     this.rightEntity = parts[1];\r
28     this.label=rightEntity;\r
29   }\r
30   \r
31   public Expression copy() {\r
32     logger.trace("Copying " + this.toString());\r
33     return new Expression(leftEntity, operator, rightEntity, label);\r
34   }\r
35   \r
36   public String toString() {\r
37     return leftEntity + operator + rightEntity;\r
38   }\r
39   \r
40   public String getLabel() {\r
41     return label;\r
42   }\r
43   \r
44   public String getField () {\r
45     return leftEntity;\r
46   }\r
47   \r
48   public String getOperator() {\r
49     return operator;\r
50   }\r
51   \r
52   public String getValue() {\r
53     return rightEntity;\r
54   }\r
55   \r
56 }\r