68a49d0a03b7b28749c9637bf63fbfd618eecbea
[mkjsf-moved-to-github.git] / src / main / java / com / indexdata / mkjsf / pazpar2 / commands / QueryParameter.java
1 package com.indexdata.mkjsf.pazpar2.commands;\r
2 \r
3 public class QueryParameter extends CommandParameter {\r
4 \r
5   private static final long serialVersionUID = -3649052232241100927L;\r
6   private String booleanOperator = "AND";\r
7 \r
8   public QueryParameter(String name) {\r
9     super(name);\r
10   }\r
11 \r
12   public QueryParameter(String name, String operator, String value,\r
13       Expression... expressions) {\r
14     super(name, operator, value, expressions);\r
15   }\r
16 \r
17   public QueryParameter(String name, String operator, Expression... expressions) {\r
18     super(name, operator, expressions);\r
19   }\r
20 \r
21   public QueryParameter(String name, String operator, String value) {\r
22     super(name, operator, value);\r
23   }\r
24 \r
25   public QueryParameter(String name, String operator, int value) {\r
26     super(name, operator, value);\r
27   }\r
28   \r
29   public void setBooleanOperator (String operator) {\r
30     this.booleanOperator = operator;\r
31   }\r
32   \r
33   public String getValueWithExpressions () {\r
34     StringBuilder completeValue = new StringBuilder((value==null ? "" : value));\r
35     boolean first = true;\r
36     for (Expression expr : expressions) {\r
37       if (value == null && first) {\r
38         first = false;\r
39         completeValue.append(expr.toString());\r
40       } else {\r
41         completeValue.append(" "+booleanOperator+" " + expr.toString());\r
42       }\r
43     }\r
44     return completeValue.toString();    \r
45   }  \r
46   \r
47   public QueryParameter copy() {    \r
48     QueryParameter newParam = new QueryParameter(name);\r
49     newParam.value = this.value;\r
50     newParam.operator = this.operator;\r
51     newParam.booleanOperator = this.booleanOperator;\r
52     for (Expression expr : expressions) {\r
53       newParam.addExpression(expr.copy());      \r
54     }\r
55     return newParam;\r
56   }\r
57 \r
58 \r
59 }\r