+package com.indexdata.mkjsf.pazpar2.commands;\r
+\r
+import org.apache.log4j.Logger;\r
+\r
+public class LimitParameter extends CommandParameter {\r
+\r
+ private static final long serialVersionUID = -1410691265213389826L;\r
+ private static Logger logger = Logger.getLogger(LimitParameter.class);\r
+\r
+ public LimitParameter(String name) {\r
+ super(name);\r
+ }\r
+\r
+ public LimitParameter(Expression... expressions) {\r
+ super("limit", "=", expressions);\r
+ }\r
+\r
+ public String getValueWithExpressions () {\r
+ StringBuilder completeValue = new StringBuilder("");\r
+ boolean first = true;\r
+ for (Expression expr : expressions) { \r
+ if (!first) \r
+ completeValue.append(",");\r
+ else \r
+ first=false; \r
+ completeValue.append(pz2escape(expr.toString()));\r
+ logger.trace("valueWithExpressions so far: [" + completeValue + "]");\r
+ }\r
+ return completeValue.toString(); \r
+ }\r
+ \r
+ public String pz2escape (String expressionString) {\r
+ String escaped = expressionString.replaceAll("\\\\","\\\\\\\\");\r
+ escaped = escaped.replaceAll(",","\\\\,");\r
+ escaped = escaped.replaceAll("\\|", "\\\\|");\r
+ return escaped;\r
+ }\r
+\r
+ \r
+ public LimitParameter copy() {\r
+ logger.trace("Copying parameter '"+ name + "' for modification");\r
+ LimitParameter newParam = new LimitParameter(name);\r
+ newParam.value = this.value;\r
+ newParam.operator = this.operator;\r
+ for (Expression expr : expressions) {\r
+ newParam.addExpression(expr.copy()); \r
+ }\r
+ return newParam;\r
+ }\r
+\r
+\r
+}\r