+++ /dev/null
-package com.indexdata.pz2utils4jsf.pazpar2;\r
-\r
-import java.io.Serializable;\r
-import java.io.UnsupportedEncodingException;\r
-import java.net.URLEncoder;\r
-import java.util.HashMap;\r
-import java.util.Map;\r
-\r
-import org.apache.log4j.Logger;\r
-\r
-import com.indexdata.pz2utils4jsf.pazpar2.CommandParameter;\r
-import com.indexdata.pz2utils4jsf.pazpar2.Expression;\r
-\r
-public class CommandParameter implements Serializable {\r
-\r
- private static Logger logger = Logger.getLogger(CommandParameter.class);\r
- \r
- private static final long serialVersionUID = 625502285668766749L;\r
- String name = null;\r
- String operator = null;\r
- String value = null;\r
- Map<String,Expression> expressions = new HashMap<String,Expression>();\r
- \r
- public CommandParameter (String name) {\r
- logger.debug("Instantiating command parameter (1) " + name);\r
- this.name = name;\r
- }\r
- \r
- public CommandParameter (String name, String operator, String value, Expression... expressions) {\r
- logger.debug("Instantiating command parameter (2) " + name + " with " + expressions);\r
- this.name = name;\r
- this.operator = operator;\r
- this.value = value;\r
- for (Expression expr : expressions) {\r
- this.expressions.put(expr.toString(), expr);\r
- }\r
- }\r
-\r
- public CommandParameter (String name, String operator, String value) {\r
- logger.debug("Instantiating command parameter (3) " + name + " ("+this+") with " + name + " and " + value);\r
- this.name = name;\r
- this.operator = operator;\r
- this.value = value; \r
- }\r
- \r
- public CommandParameter (String name, String operator, int value) {\r
- logger.debug("Instantiating command parameter (4) " + name + " ("+this+") with " + name + " and " + value);\r
- this.name = name;\r
- this.operator = operator;\r
- this.value = value+""; \r
- }\r
-\r
- \r
- public String getName () {\r
- return name;\r
- }\r
- \r
- public Map<String,Expression> getExpressions () {\r
- return expressions;\r
- }\r
- \r
- public void addExpression(Expression expression) {\r
- logger.debug("Adding expression [" + expression + "] to " + this.getName() + " ("+this+")");\r
- this.expressions.put(expression.toString(),expression);\r
- }\r
- \r
- public void removeExpression(Expression expression) {\r
- this.expressions.remove(expression.toString());\r
- }\r
- \r
- \r
- public boolean hasOperator() {\r
- return operator != null;\r
- }\r
- \r
- public String getEncodedQueryString () {\r
- try {\r
- return name + operator + URLEncoder.encode(getValueWithExpressions(),"UTF-8");\r
- } catch (UnsupportedEncodingException e) {\r
- e.printStackTrace();\r
- return null;\r
- }\r
- }\r
- \r
- public String getSimpleValue() { \r
- return value; \r
- }\r
- \r
- public String getValueWithExpressions () {\r
- StringBuilder completeValue = new StringBuilder((value==null ? "" : value)); \r
- for (String key : expressions.keySet()) { \r
- completeValue.append(" and " + expressions.get(key));\r
- }\r
- return completeValue.toString();\r
- \r
- }\r
- \r
- @Override\r
- public boolean equals (Object otherParameter) {\r
- return\r
- ((otherParameter instanceof CommandParameter)\r
- && this.getValueWithExpressions().equals(((CommandParameter) otherParameter).getValueWithExpressions()));\r
- }\r
- \r
- @Override\r
- public int hashCode () {\r
- return getValueWithExpressions().hashCode();\r
- }\r
- \r
- public String toString() {\r
- return getValueWithExpressions();\r
- }\r
- \r
- public CommandParameter copy() {\r
- CommandParameter newParam = new CommandParameter(name);\r
- newParam.value = this.value;\r
- newParam.operator = this.operator;\r
- for (String key : expressions.keySet()) {\r
- newParam.addExpression(expressions.get(key).copy()); \r
- }\r
- return newParam;\r
- }\r
- \r
-}\r