X-Git-Url: http://lists.indexdata.dk/cgi-bin?a=blobdiff_plain;ds=sidebyside;f=src%2Fmain%2Fjava%2Fcom%2Findexdata%2Fpz2utils4jsf%2Fpazpar2%2Fstate%2FPazpar2State.java;h=39ac006ecc505efd700b31dce269cd611c6c43a1;hb=801fbed2d559e224160d473e0860dd765354569f;hp=4412a7f1694551e17a016c973442f22b4dfffc29;hpb=7b4d66a5933f030bef0d2a6074c4cd2fee7d9fbb;p=mkjsf-moved-to-github.git diff --git a/src/main/java/com/indexdata/pz2utils4jsf/pazpar2/state/Pazpar2State.java b/src/main/java/com/indexdata/pz2utils4jsf/pazpar2/state/Pazpar2State.java index 4412a7f..39ac006 100644 --- a/src/main/java/com/indexdata/pz2utils4jsf/pazpar2/state/Pazpar2State.java +++ b/src/main/java/com/indexdata/pz2utils4jsf/pazpar2/state/Pazpar2State.java @@ -1,24 +1,45 @@ package com.indexdata.pz2utils4jsf.pazpar2.state; -import java.util.Arrays; import java.util.HashMap; import java.util.Map; -import com.indexdata.pz2utils4jsf.pazpar2.Pazpar2Command; - +import com.indexdata.pz2utils4jsf.pazpar2.commands.BytargetCommand; +import com.indexdata.pz2utils4jsf.pazpar2.commands.InitCommand; +import com.indexdata.pz2utils4jsf.pazpar2.commands.Pazpar2Command; +import com.indexdata.pz2utils4jsf.pazpar2.commands.Pazpar2Commands; +import com.indexdata.pz2utils4jsf.pazpar2.commands.PingCommand; +import com.indexdata.pz2utils4jsf.pazpar2.commands.RecordCommand; +import com.indexdata.pz2utils4jsf.pazpar2.commands.SearchCommand; +import com.indexdata.pz2utils4jsf.pazpar2.commands.SettingsCommand; +import com.indexdata.pz2utils4jsf.pazpar2.commands.ShowCommand; +import com.indexdata.pz2utils4jsf.pazpar2.commands.StatCommand; +import com.indexdata.pz2utils4jsf.pazpar2.commands.TermlistCommand; +/** + * Holds a 'pazpar2 state', understood as a full set of pazpar2 commands and + * all their parameter settings at a given point in time. + * + * @author Niels Erik + * + */ public class Pazpar2State { String key = null; Map commands = new HashMap();; - public Pazpar2State () { - for (String command : Arrays.asList("init","ping","settings","search","stat","show","record","termlist","bytarget")) { - commands.put(command, new Pazpar2Command(command)); - } - key = "#initial"; + public Pazpar2State (StateManager mgr) { + commands.put(Pazpar2Commands.INIT, new InitCommand(mgr)); + commands.put(Pazpar2Commands.PING, new PingCommand(mgr)); + commands.put(Pazpar2Commands.SETTINGS, new SettingsCommand(mgr)); + commands.put(Pazpar2Commands.SEARCH, new SearchCommand(mgr)); + commands.put(Pazpar2Commands.STAT, new StatCommand(mgr)); + commands.put(Pazpar2Commands.SHOW, new ShowCommand(mgr)); + commands.put(Pazpar2Commands.RECORD, new RecordCommand(mgr)); + commands.put(Pazpar2Commands.TERMLIST, new TermlistCommand(mgr)); + commands.put(Pazpar2Commands.BYTARGET, new BytargetCommand(mgr)); + key = "#1"; } - + /** * Creates new state by cloning all commands of the provided state and * then overriding one of them with the provided state changing command. @@ -42,14 +63,14 @@ public class Pazpar2State { */ public String getKey() { if (key == null) { - StringBuilder querystatebuilder = new StringBuilder("#"); + StringBuilder querystatebuilder = new StringBuilder(""); for (Pazpar2Command command : commands.values()) { if (command.hasParameters()) { querystatebuilder.append("||"+command.getName()+"::"); querystatebuilder.append(command.getValueWithExpressions()); } } - key = querystatebuilder.toString(); + key = "#"+querystatebuilder.toString().hashCode(); return key; } else { return key;