1 package com.indexdata.pz2utils4jsf.pazpar2;
\r
3 import java.io.Serializable;
\r
4 import java.util.ArrayList;
\r
5 import java.util.Arrays;
\r
6 import java.util.HashMap;
\r
7 import java.util.List;
\r
8 import java.util.Map;
\r
10 import org.apache.log4j.Logger;
\r
12 import com.indexdata.pz2utils4jsf.pazpar2.CommandParameter;
\r
13 import com.indexdata.pz2utils4jsf.pazpar2.Pazpar2Command;
\r
15 public class Pazpar2Command implements Serializable {
\r
17 private static Logger logger = Logger.getLogger(Pazpar2Command.class);
\r
18 private static final long serialVersionUID = -6825491856480675917L;
\r
19 public static List<String> allCommands = new ArrayList<String>(Arrays.asList("init","ping","settings","search","stat","show","record","termlist","bytarget"));
\r
21 private String name = "";
\r
22 private Map<String,CommandParameter> parameters = new HashMap<String,CommandParameter>();
\r
24 public Pazpar2Command (String name) {
\r
28 public Pazpar2Command copy () {
\r
29 Pazpar2Command newCommand = new Pazpar2Command(name);
\r
30 for (String parameterName : parameters.keySet()) {
\r
31 newCommand.setParameter(parameters.get(parameterName).copy());
\r
36 public String getName() {
\r
40 public void setParameter (CommandParameter parameter) {
\r
41 logger.debug("Setting parameter " + parameter.getName() + "=" + parameter.getValueWithExpressions() + " to " + this.getName());
\r
42 parameters.put(parameter.getName(),parameter);
\r
45 public CommandParameter getParameter (String name) {
\r
46 return parameters.get(name);
\r
49 public void removeParameter (String name) {
\r
50 parameters.remove(name);
\r
53 public void removeParameters() {
\r
54 parameters = new HashMap<String,CommandParameter>();
\r
57 public boolean hasParameters () {
\r
58 return (parameters.keySet().size()>0);
\r
61 public String getEncodedQueryString () {
\r
62 StringBuilder queryString = new StringBuilder("command="+name);
\r
63 for (CommandParameter parameter : parameters.values()) {
\r
64 queryString.append("&"+parameter.getEncodedQueryString());
\r
66 return queryString.toString();
\r
69 public String getValueWithExpressions() {
\r
70 StringBuilder value = new StringBuilder("");
\r
71 for (CommandParameter parameter : parameters.values()) {
\r
72 value.append("&" + parameter.getName() + parameter.operator + parameter.getValueWithExpressions());
\r
74 return value.toString();
\r
78 public boolean equals (Object otherCommand) {
\r
80 ((otherCommand instanceof Pazpar2Command)
\r
81 && this.getValueWithExpressions().equals(((Pazpar2Command) otherCommand).getValueWithExpressions()));
\r
85 public int hashCode () {
\r
86 return getValueWithExpressions().hashCode();
\r
89 public String toString () {
\r
90 return parameters.toString();
\r