1 package com.indexdata.mkjsf.pazpar2.commands;
\r
3 import org.apache.log4j.Logger;
\r
5 public class FilterParameter extends CommandParameter {
\r
7 private static final long serialVersionUID = -3697328835895528654L;
\r
8 private static Logger logger = Logger.getLogger(FilterParameter.class);
\r
10 public FilterParameter(String name) {
\r
14 public FilterParameter(Expression... expressions) {
\r
15 super("filter", "=", expressions);
\r
18 public String getValueWithExpressions () {
\r
19 StringBuilder completeValue = new StringBuilder("");
\r
20 boolean first = true;
\r
21 for (Expression expr : expressions) {
\r
23 completeValue.append(",");
\r
26 completeValue.append(pz2escape(expr.toString()));
\r
28 return completeValue.toString();
\r
31 public String pz2escape (String expressionString) {
\r
32 String escaped = expressionString.replaceAll("\\\\","\\\\\\\\");
\r
33 escaped = escaped.replaceAll(",","\\\\,");
\r
34 escaped = escaped.replaceAll("\\|", "\\\\|");
\r
38 public FilterParameter copy() {
\r
39 logger.trace("Copying parameter '"+ name + "' for modification");
\r
40 FilterParameter newParam = new FilterParameter(name);
\r
41 newParam.value = this.value;
\r
42 newParam.operator = this.operator;
\r
43 for (Expression expr : expressions) {
\r
44 newParam.addExpression(expr.copy());
\r