Cleans up SP extension commands
[mkjsf-moved-to-github.git] / src / main / java / com / indexdata / mkjsf / pazpar2 / commands / sp / AuthCommand.java
1 package com.indexdata.mkjsf.pazpar2.commands.sp;\r
2 \r
3 import org.apache.log4j.Logger;\r
4 \r
5 import com.indexdata.mkjsf.pazpar2.ClientCommandResponse;\r
6 import com.indexdata.mkjsf.pazpar2.Pz2Bean;\r
7 import com.indexdata.mkjsf.pazpar2.commands.CommandParameter;\r
8 import com.indexdata.mkjsf.pazpar2.commands.Pazpar2Command;\r
9 import com.indexdata.mkjsf.pazpar2.data.ResponseParser;\r
10 import com.indexdata.mkjsf.pazpar2.data.sp.SpResponseDataObject;\r
11 \r
12 public class AuthCommand extends Pazpar2Command implements ServiceProxyCommand {\r
13 \r
14   private static final long serialVersionUID = 5487611235664162578L;\r
15   private static Logger logger = Logger.getLogger(AuthCommand.class);\r
16 \r
17   public AuthCommand() {\r
18     super("auth");\r
19   }\r
20   \r
21   public SpResponseDataObject run() {\r
22     Pz2Bean.get().resetSearchAndRecordCommands();\r
23     Pz2Bean.get().getPzresp().getSp().resetAuthAndBeyond(true);\r
24     ClientCommandResponse response = (ClientCommandResponse) Pz2Bean.get().getSearchClient().executeCommand(this);      \r
25     String renamedResponse = renameResponseElement(response.getResponseString(), "auth");    \r
26     response.setResponseToParse(renamedResponse);\r
27     SpResponseDataObject responseObject = (SpResponseDataObject) ResponseParser.getParser().getDataObject(response);    \r
28     if (ResponseParser.docTypes.contains(responseObject.getType())) {\r
29       Pz2Bean.get().getPzresp().put(getCommandName(), responseObject);\r
30     }\r
31     if (responseObject.unsupportedCommand()) {\r
32       logger.error("auth command does not seem to be supported by this Service Proxy");\r
33     }\r
34     return responseObject;\r
35   }\r
36   \r
37   private String renameResponseElement(String responseString, String newName) {\r
38     responseString = responseString.replace("<response>", "<" + newName + ">");\r
39     responseString = responseString.replace("</response>", "</" + newName + ">");\r
40     return responseString;\r
41   }\r
42 \r
43   \r
44   public void setAction (String action) {\r
45     setParameterInState(new CommandParameter("action","=",action));\r
46   }  \r
47   \r
48   public String getAction () {\r
49     return getParameterValue("action");\r
50   }\r
51   \r
52   public void setUsername(String username) {\r
53     setParameterInState(new CommandParameter("username","=",username));\r
54   }\r
55   \r
56   public String getUsername () {\r
57     return getParameterValue("username");\r
58   }\r
59   \r
60   public void setPassword (String password) {\r
61     setParameterInState(new CommandParameter("password","=",password));\r
62   }\r
63   \r
64   public String getPassword () {\r
65     return getParameterValue("password");\r
66   }\r
67     \r
68   public AuthCommand copy () {\r
69     AuthCommand newCommand = new AuthCommand();\r
70     for (String parameterName : parameters.keySet()) {\r
71       newCommand.setParameterInState(parameters.get(parameterName).copy());      \r
72     }    \r
73     return newCommand;\r
74   }\r
75 \r
76   @Override\r
77   public ServiceProxyCommand getSp() {\r
78     return this;\r
79   }\r
80 \r
81   @Override\r
82   public boolean spOnly() {\r
83     return true;\r
84   }\r
85 }\r