Refactors commands and injection
[mkjsf-moved-to-github.git] / src / main / java / com / indexdata / mkjsf / pazpar2 / commands / SearchCommand.java
index c314ec6..654df45 100644 (file)
@@ -1,22 +1,40 @@
 package com.indexdata.mkjsf.pazpar2.commands;\r
 \r
 import javax.enterprise.context.SessionScoped;\r
+import javax.inject.Named;\r
 \r
 import org.apache.log4j.Logger;\r
 \r
+import com.indexdata.mkjsf.pazpar2.ClientCommandResponse;\r
+import com.indexdata.mkjsf.pazpar2.HttpResponseWrapper;\r
+import com.indexdata.mkjsf.pazpar2.Pz2Bean;\r
 import com.indexdata.mkjsf.pazpar2.commands.sp.ServiceProxyCommand;\r
-import com.indexdata.mkjsf.pazpar2.state.StateManager;\r
+import com.indexdata.mkjsf.pazpar2.data.ResponseDataObject;\r
+import com.indexdata.mkjsf.pazpar2.data.ResponseParser;\r
 \r
-@SessionScoped\r
+@SessionScoped @Named\r
 public class SearchCommand extends Pazpar2Command implements ServiceProxyCommand {\r
   \r
   private static final long serialVersionUID = -1888520867838597236L;\r
   private static Logger logger = Logger.getLogger(SearchCommand.class);\r
   private SingleTargetFilter singleTargetFilter = null;\r
+    \r
+  public SearchCommand() {\r
+    super("search");\r
+  }\r
   \r
-  public SearchCommand(StateManager stateMgr) {\r
-    super("search",stateMgr);\r
+  public ResponseDataObject run() {\r
+    logger.info("Running " + getCommandName());\r
+    logger.info("Using client " + Pz2Bean.get().getSearchClient());\r
+    logger.info("Storing responses to " + Pz2Bean.get().getPzresp());\r
+    Pz2Bean.get().getSearchClient().setSearchCommand(this);\r
+    logger.info("Executing command " + getCommandName());\r
+    HttpResponseWrapper httpResponse = Pz2Bean.get().getSearchClient().executeCommand(this);\r
+    ResponseDataObject responseObject = ResponseParser.getParser().getDataObject((ClientCommandResponse) httpResponse);\r
+    Pz2Bean.get().getPzresp().put(getCommandName(), responseObject);\r
+    return responseObject;\r
   }\r
+\r
     \r
   public void setQuery(String query) {    \r
     setParameter(new CommandParameter("query","=",query));\r
@@ -212,7 +230,7 @@ public class SearchCommand extends Pazpar2Command implements ServiceProxyCommand
   }\r
     \r
   public SearchCommand copy () {\r
-    SearchCommand newCommand = new SearchCommand(stateMgr);\r
+    SearchCommand newCommand = new SearchCommand();\r
     for (String parameterName : parameters.keySet()) {\r
       newCommand.setParameterInState(parameters.get(parameterName).copy());      \r
     }\r