3c9617eba16303fcde3a426897caa2ab38999516
[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     ClientCommandResponse response = (ClientCommandResponse) Pz2Bean.get().getSearchClient().executeCommand(this);      \r
23     String renamedResponse = renameResponseElement(response.getResponseString(), "auth");    \r
24     response.setResponseToParse(renamedResponse);\r
25     SpResponseDataObject responseObject = (SpResponseDataObject) ResponseParser.getParser().getDataObject(response);    \r
26     if (ResponseParser.docTypes.contains(responseObject.getType())) {\r
27       Pz2Bean.get().getPzresp().put(getCommandName(), responseObject);\r
28     }\r
29     if (responseObject.unsupportedCommand()) {\r
30       logger.error("auth command does not seem to be supported by this Service Proxy");\r
31     }\r
32     return responseObject;\r
33   }\r
34   \r
35   private String renameResponseElement(String responseString, String newName) {\r
36     responseString = responseString.replace("<response>", "<" + newName + ">");\r
37     responseString = responseString.replace("</response>", "</" + newName + ">");\r
38     return responseString;\r
39   }\r
40 \r
41   \r
42   public void setAction (String action) {\r
43     setParameterInState(new CommandParameter("action","=",action));\r
44   }  \r
45   \r
46   public String getAction () {\r
47     return getParameterValue("action");\r
48   }\r
49   \r
50   public void setUsername(String username) {\r
51     setParameterInState(new CommandParameter("username","=",username));\r
52   }\r
53   \r
54   public String getUsername () {\r
55     return getParameterValue("username");\r
56   }\r
57   \r
58   public void setPassword (String password) {\r
59     setParameterInState(new CommandParameter("password","=",password));\r
60   }\r
61   \r
62   public String getPassword () {\r
63     return getParameterValue("password");\r
64   }\r
65     \r
66   public AuthCommand copy () {\r
67     AuthCommand newCommand = new AuthCommand();\r
68     for (String parameterName : parameters.keySet()) {\r
69       newCommand.setParameterInState(parameters.get(parameterName).copy());      \r
70     }    \r
71     return newCommand;\r
72   }\r
73 \r
74   @Override\r
75   public ServiceProxyCommand getSp() {\r
76     return this;\r
77   }\r
78 \r
79   @Override\r
80   public boolean spOnly() {\r
81     return true;\r
82   }\r
83 }\r