X-Git-Url: http://jsfdemo.indexdata.com/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fcom%2Findexdata%2Fmkjsf%2Fpazpar2%2Fstate%2FPazpar2State.java;h=b5b1d3ead4a94875aadfe2b33c372963f02187ce;hb=ea49f38ba51c8325879b693536940974b73a01c2;hp=e983d5c558460f4998d6130e6b134cd7a38c31d2;hpb=ccb28ae8d5d46d29c40bd8b1637522c212b80636;p=mkjsf-moved-to-github.git diff --git a/src/main/java/com/indexdata/mkjsf/pazpar2/state/Pazpar2State.java b/src/main/java/com/indexdata/mkjsf/pazpar2/state/Pazpar2State.java index e983d5c..b5b1d3e 100644 --- a/src/main/java/com/indexdata/mkjsf/pazpar2/state/Pazpar2State.java +++ b/src/main/java/com/indexdata/mkjsf/pazpar2/state/Pazpar2State.java @@ -14,6 +14,9 @@ import com.indexdata.mkjsf.pazpar2.commands.SettingsCommand; import com.indexdata.mkjsf.pazpar2.commands.ShowCommand; import com.indexdata.mkjsf.pazpar2.commands.StatCommand; import com.indexdata.mkjsf.pazpar2.commands.TermlistCommand; +import com.indexdata.mkjsf.pazpar2.commands.sp.AuthCommand; +import com.indexdata.mkjsf.pazpar2.commands.sp.CategoriesCommand; +import com.indexdata.mkjsf.pazpar2.commands.sp.ServiceProxyCommands; /** * Holds a 'pazpar2 state', understood as a full set of pazpar2 commands and @@ -25,19 +28,24 @@ import com.indexdata.mkjsf.pazpar2.commands.TermlistCommand; public class Pazpar2State { String key = null; - Map commands = new HashMap();; + Map commands = new HashMap(); - 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"; + public Pazpar2State () { + + commands.put(Pazpar2Commands.INIT, new InitCommand()); + commands.put(Pazpar2Commands.PING, new PingCommand()); + commands.put(Pazpar2Commands.SETTINGS, new SettingsCommand()); + commands.put(Pazpar2Commands.SEARCH, new SearchCommand()); + commands.put(Pazpar2Commands.STAT, new StatCommand()); + commands.put(Pazpar2Commands.SHOW, new ShowCommand()); + commands.put(Pazpar2Commands.RECORD, new RecordCommand()); + commands.put(Pazpar2Commands.TERMLIST, new TermlistCommand()); + commands.put(Pazpar2Commands.BYTARGET, new BytargetCommand()); + + commands.put(ServiceProxyCommands.AUTH, new AuthCommand()); + commands.put(ServiceProxyCommands.CATEGORIES, new CategoriesCommand()); + + // key = "#1"; } /** @@ -51,26 +59,29 @@ public class Pazpar2State { for (String commandName : previousState.commands.keySet()) { this.commands.put(commandName, previousState.commands.get(commandName).copy()); } - this.commands.put(newCommand.getName(),newCommand); - this.key = getKey(); + this.commands.put(newCommand.getCommandName(),newCommand); + this.key = getKey(); } /** * Generates a state key that can be used by the browser to pick * up this state again at a later point in time. * + * @see {@link com.indexdata.mkjsf.pazpar2.state.StateManager#setCurrentStateKey} * @return */ public String getKey() { if (key == null) { StringBuilder querystatebuilder = new StringBuilder(""); for (Pazpar2Command command : commands.values()) { - if (command.hasParameters()) { - querystatebuilder.append("||"+command.getName()+"::"); - querystatebuilder.append(command.getValueWithExpressions()); - } + if (! (command instanceof AuthCommand )) { + if (command.hasParameters()) { + querystatebuilder.append("||"+command.getCommandName()+"::"); + querystatebuilder.append(command.getValueWithExpressions()); + } + } } - key = "#"+querystatebuilder.toString().hashCode(); + key = "#"+querystatebuilder.toString(); return key; } else { return key; @@ -86,9 +97,9 @@ public class Pazpar2State { public boolean stateMutating (Pazpar2Command command) { if (command == null) { return true; - } else if (commands.get(command.getName()) == null) { + } else if (commands.get(command.getCommandName()) == null) { return true; - } else if ((command.equals(commands.get(command.getName())))) { + } else if ((command.equals(commands.get(command.getCommandName())))) { return false; } else { return true;