SDL_Android/SmartDeviceLinkAndroidProxy - added the correct version of the proxy
[profile/ivi/smartdevicelink.git] / SDL_Android / SmartDeviceLinkProxyAndroid / src / com / smartdevicelink / proxy / RPCMessage.java
1 package com.smartdevicelink.proxy;\r
2 \r
3 import java.util.Hashtable;\r
4 import java.util.Iterator;
5 \r
6 import com.smartdevicelink.proxy.constants.Names;\r
7 \r
8 public class RPCMessage extends RPCStruct  {\r
9 \r
10         public RPCMessage(String functionName) {\r
11                 this(functionName, "request");\r
12         }\r
13         \r
14         protected RPCMessage(RPCMessage rpcm) {\r
15                 this(rpcm.store);\r
16         }\r
17         \r
18         protected RPCMessage(RPCStruct rpcs) {\r
19                 this("", "");\r
20                 this.parameters = rpcs.store;\r
21         }\r
22         \r
23         public RPCMessage(String functionName, String messageType) {\r
24                 function = new Hashtable();\r
25                 this.messageType = messageType;\r
26                 store.put(messageType, function);\r
27                 parameters = new Hashtable();\r
28                 function.put(Names.parameters, parameters);\r
29                 function.put(Names.function_name, functionName);\r
30         }\r
31 \r
32         public RPCMessage(Hashtable hash) {\r
33                 store = hash;
34                 Iterator it = hash.keySet().iterator();
35                 String key;
36                 while (it.hasNext()) {
37                         key = (String)it.next().toString();
38                         if (key != Names.bulkData) messageType = key;
39                 }\r
40                 function = (Hashtable)hash.get(messageType);\r
41                 parameters = (Hashtable)function.get(Names.parameters);\r
42         }\r
43 \r
44         protected String messageType;\r
45         protected Hashtable parameters;\r
46         protected Hashtable function;\r
47         \r
48         public String getFunctionName() {\r
49                 return (String)function.get(Names.function_name);\r
50         }\r
51         \r
52         protected void setFunctionName(String functionName) {\r
53                 function.put(Names.function_name, functionName);\r
54         }\r
55 \r
56         public String getMessageType() {\r
57                 return messageType;\r
58         }\r
59         \r
60         public void setParameters(String functionName, Object value) {\r
61                 if (value != null) {\r
62                         parameters.put(functionName, value);\r
63                 } else {\r
64                         parameters.remove(functionName);\r
65                 }\r
66         }\r
67         \r
68         public Object getParameters(String functionName) {\r
69                 return parameters.get(functionName);\r
70         }\r
71 }\r