SDL_Android/SmartDeviceLinkAndroidProxy - added the correct version of the proxy
[profile/ivi/smartdevicelink.git] / SDL_Android / SmartDeviceLinkProxyAndroid / src / com / smartdevicelink / proxy / RPCStruct.java
1 package com.smartdevicelink.proxy;\r
2 \r
3 import java.util.Hashtable;\r
4 \r
5 import org.json.JSONException;\r
6 import org.json.JSONObject;\r
7 \r
8 import com.smartdevicelink.marshal.JsonRPCMarshaller;\r
9 import com.smartdevicelink.proxy.constants.Names;\r
10 \r
11 public class RPCStruct {\r
12         \r
13         private byte[] _bulkData = null;\r
14 \r
15         protected Hashtable<String, Object> store = null;\r
16         \r
17         public RPCStruct() {\r
18                 store = new Hashtable<String, Object>();\r
19         }\r
20         \r
21         protected RPCStruct(RPCStruct rpcs) {\r
22                 this.store = rpcs.store;\r
23         }\r
24         \r
25         public RPCStruct(Hashtable<String, Object> hashtable) {\r
26                 store = hashtable;\r
27                 //store = (Hashtable<String, Object>) ObjectCopier.copy(hashtable);\r
28         }\r
29         \r
30         public void deserializeJSON(JSONObject jsonObject) throws JSONException {\r
31                 store = JsonRPCMarshaller.deserializeJSONObject(jsonObject);\r
32         }\r
33         \r
34         // deserializeJSONObject method moved to JsonRPCMarshaller for consistency\r
35         // Keep reference here for backwards compatibility\r
36         @Deprecated\r
37         public static Hashtable<String, Object> deserializeJSONObject(JSONObject jsonObject) \r
38                         throws JSONException {\r
39                 return JsonRPCMarshaller.deserializeJSONObject(jsonObject);\r
40         }\r
41         \r
42         public JSONObject serializeJSON() throws JSONException {\r
43                 return JsonRPCMarshaller.serializeHashtable(store);\r
44         }\r
45         \r
46         public JSONObject serializeJSON(byte version) throws JSONException {\r
47                 if (version == 2) {\r
48                         String messageType = (String)store.keys().nextElement();\r
49                         Hashtable function = (Hashtable)store.get(messageType);\r
50             Hashtable parameters = (Hashtable)function.get(Names.parameters);
51                         return JsonRPCMarshaller.serializeHashtable(parameters);\r
52                         //Hashtable hashToSend = new Hashtable();\r
53                         //hashToSend.put(Names.parameters, parameters);\r
54                         //return JsonRPCMarshaller.serializeHashtable(hashToSend);\r
55                 } else return JsonRPCMarshaller.serializeHashtable(store);\r
56         }\r
57 \r
58         public byte[] getBulkData() {\r
59                 return this._bulkData;\r
60         }\r
61 \r
62         public void setBulkData(byte[] bulkData) {\r
63                 if (bulkData != null) {\r
64                         this._bulkData = new byte[bulkData.length];\r
65                         System.arraycopy(bulkData, 0, _bulkData, 0, bulkData.length);\r
66                         //this._bulkData = bulkData;\r
67                 }\r
68         }\r
69 }\r