Cleans up obsolete methods
[mkjsf-moved-to-github.git] / src / main / java / com / indexdata / pz2utils4jsf / pazpar2 / state / QueryStates.java
1 package com.indexdata.pz2utils4jsf.pazpar2.state;\r
2 \r
3 import java.io.Serializable;\r
4 import java.util.HashMap;\r
5 import java.util.Map;\r
6 \r
7 import org.apache.log4j.Logger;\r
8 \r
9 import com.indexdata.pz2utils4jsf.pazpar2.Pazpar2Command;\r
10 import com.indexdata.pz2utils4jsf.pazpar2.state.QueryState;\r
11 import com.indexdata.pz2utils4jsf.pazpar2.state.QueryStates;\r
12 \r
13 public class QueryStates implements Serializable {\r
14   \r
15   private static final long serialVersionUID = 6131720167974584659L;\r
16   private static Logger logger = Logger.getLogger(QueryStates.class);\r
17     \r
18   Map<String, QueryState> queryStates = new HashMap<String, QueryState>();\r
19   String currentStateKey = "";\r
20   Map<String,Boolean> pendingStateChanges = new HashMap<String,Boolean>();  \r
21 \r
22   public QueryStates () {\r
23     queryStates.put("#initial", new QueryState());\r
24     currentStateKey = "#initial";\r
25     for (String command : Pazpar2Command.allCommands) {\r
26       pendingStateChanges.put(command, new Boolean(false));\r
27     }\r
28   }\r
29   \r
30   public String getCurrentStateKey() {\r
31     return currentStateKey;\r
32   }\r
33 \r
34   public void setCurrentStateKey(String key) {\r
35     \r
36     if (currentStateKey.equals(key)) {\r
37       logger.debug("setCurrentStateKey: no key change detected");\r
38     } else {\r
39       logger.debug("State key change. Was: [" + currentStateKey + "]. Will be ["+key+"]");\r
40       if (queryStates.get(key).getCommand("search").equals(getCurrentState().getCommand("search"))) {\r
41         logger.debug("No search change detected");\r
42       } else {\r
43         hasPendingStateChange("search",true);\r
44       }\r
45       if (queryStates.get(key).getCommand("record").equals(getCurrentState().getCommand("record"))) {\r
46         logger.debug("No record change detected");\r
47       } else {\r
48         hasPendingStateChange("record",true);\r
49       }\r
50       currentStateKey = key;\r
51     }\r
52   }\r
53     \r
54   public QueryState getCurrentState() {\r
55     if (queryStates.get(currentStateKey) == null) {      \r
56       return new QueryState();\r
57     } else {            \r
58       return queryStates.get(currentStateKey);\r
59     }\r
60   }\r
61   \r
62   public void setCurrentState(QueryState queryState) {\r
63     logger.debug("Setting current state: " + queryState.getKey());\r
64     queryStates.put(queryState.getKey(), queryState);\r
65     setCurrentStateKey(queryState.getKey());\r
66   }\r
67     \r
68   public void hasPendingStateChange(String command, boolean bool) {\r
69     pendingStateChanges.put(command, new Boolean(bool));\r
70   }\r
71   \r
72   public boolean hasPendingStateChange (String command) {\r
73     return pendingStateChanges.get(command).booleanValue();\r
74   }\r
75   \r
76 }\r