+package com.indexdata.mkjsf.pazpar2.commands;\r
+\r
+public class QueryParameter extends CommandParameter {\r
+\r
+ private static final long serialVersionUID = -3649052232241100927L;\r
+ private String booleanOperator = "AND";\r
+\r
+ public QueryParameter(String name) {\r
+ super(name);\r
+ }\r
+\r
+ public QueryParameter(String name, String operator, String value,\r
+ Expression... expressions) {\r
+ super(name, operator, value, expressions);\r
+ }\r
+\r
+ public QueryParameter(String name, String operator, Expression... expressions) {\r
+ super(name, operator, expressions);\r
+ }\r
+\r
+ public QueryParameter(String name, String operator, String value) {\r
+ super(name, operator, value);\r
+ }\r
+\r
+ public QueryParameter(String name, String operator, int value) {\r
+ super(name, operator, value);\r
+ }\r
+ \r
+ public void setBooleanOperator (String operator) {\r
+ this.booleanOperator = operator;\r
+ }\r
+ \r
+ public String getValueWithExpressions () {\r
+ StringBuilder completeValue = new StringBuilder((value==null ? "" : value));\r
+ boolean first = true;\r
+ for (Expression expr : expressions) {\r
+ if (value == null && first) {\r
+ first = false;\r
+ completeValue.append(expr.toString());\r
+ } else {\r
+ completeValue.append(" "+booleanOperator+" " + expr.toString());\r
+ }\r
+ }\r
+ return completeValue.toString(); \r
+ } \r
+ \r
+ public QueryParameter copy() { \r
+ QueryParameter newParam = new QueryParameter(name);\r
+ newParam.value = this.value;\r
+ newParam.operator = this.operator;\r
+ newParam.booleanOperator = this.booleanOperator;\r
+ for (Expression expr : expressions) {\r
+ newParam.addExpression(expr.copy()); \r
+ }\r
+ return newParam;\r
+ }\r
+\r
+\r
+}\r