+++ /dev/null
-package com.indexdata.pz2utils4jsf.pazpar2.state;\r
-\r
-import java.io.Serializable;\r
-import java.util.HashMap;\r
-import java.util.Map;\r
-\r
-import org.apache.log4j.Logger;\r
-\r
-import com.indexdata.pz2utils4jsf.pazpar2.Pazpar2Command;\r
-import com.indexdata.pz2utils4jsf.pazpar2.state.QueryState;\r
-import com.indexdata.pz2utils4jsf.pazpar2.state.QueryStates;\r
-\r
-public class QueryStates implements Serializable {\r
- \r
- private static final long serialVersionUID = 6131720167974584659L;\r
- private static Logger logger = Logger.getLogger(QueryStates.class);\r
- \r
- Map<String, QueryState> queryStates = new HashMap<String, QueryState>();\r
- String currentStateKey = "";\r
- Map<String,Boolean> pendingStateChanges = new HashMap<String,Boolean>(); \r
-\r
- public QueryStates () {\r
- queryStates.put("#initial", new QueryState());\r
- currentStateKey = "#initial";\r
- for (String command : Pazpar2Command.allCommands) {\r
- pendingStateChanges.put(command, new Boolean(false));\r
- }\r
- }\r
- \r
- public String getCurrentStateKey() {\r
- return currentStateKey;\r
- }\r
-\r
- public void setCurrentStateKey(String key) {\r
- \r
- if (currentStateKey.equals(key)) {\r
- logger.debug("setCurrentStateKey: no key change detected");\r
- } else {\r
- logger.debug("State key change. Was: [" + currentStateKey + "]. Will be ["+key+"]");\r
- if (queryStates.get(key).getCommand("search").equals(getCurrentState().getCommand("search"))) {\r
- logger.debug("No search change detected");\r
- } else {\r
- hasPendingStateChange("search",true);\r
- }\r
- if (queryStates.get(key).getCommand("record").equals(getCurrentState().getCommand("record"))) {\r
- logger.debug("No record change detected");\r
- } else {\r
- hasPendingStateChange("record",true);\r
- }\r
- currentStateKey = key;\r
- }\r
- }\r
- \r
- public QueryState getCurrentState() {\r
- if (queryStates.get(currentStateKey) == null) { \r
- return new QueryState();\r
- } else { \r
- return queryStates.get(currentStateKey);\r
- }\r
- }\r
- \r
- public void setCurrentState(QueryState queryState) {\r
- logger.debug("Setting current state: " + queryState.getKey());\r
- queryStates.put(queryState.getKey(), queryState);\r
- setCurrentStateKey(queryState.getKey());\r
- }\r
- \r
- public void hasPendingStateChange(String command, boolean bool) {\r
- pendingStateChanges.put(command, new Boolean(bool));\r
- }\r
- \r
- public boolean hasPendingStateChange (String command) {\r
- return pendingStateChanges.get(command).booleanValue();\r
- }\r
- \r
-}\r