1 package com.smartdevicelink.proxy;
\r
3 import java.util.Hashtable;
\r
5 import org.json.JSONException;
\r
6 import org.json.JSONObject;
\r
8 import com.smartdevicelink.marshal.JsonRPCMarshaller;
\r
9 import com.smartdevicelink.proxy.constants.Names;
\r
11 public class RPCStruct {
\r
13 private byte[] _bulkData = null;
\r
15 protected Hashtable<String, Object> store = null;
\r
17 public RPCStruct() {
\r
18 store = new Hashtable<String, Object>();
\r
21 protected RPCStruct(RPCStruct rpcs) {
\r
22 this.store = rpcs.store;
\r
25 public RPCStruct(Hashtable<String, Object> hashtable) {
\r
27 //store = (Hashtable<String, Object>) ObjectCopier.copy(hashtable);
\r
30 public void deserializeJSON(JSONObject jsonObject) throws JSONException {
\r
31 store = JsonRPCMarshaller.deserializeJSONObject(jsonObject);
\r
34 // deserializeJSONObject method moved to JsonRPCMarshaller for consistency
\r
35 // Keep reference here for backwards compatibility
\r
37 public static Hashtable<String, Object> deserializeJSONObject(JSONObject jsonObject)
\r
38 throws JSONException {
\r
39 return JsonRPCMarshaller.deserializeJSONObject(jsonObject);
\r
42 public JSONObject serializeJSON() throws JSONException {
\r
43 return JsonRPCMarshaller.serializeHashtable(store);
\r
46 public JSONObject serializeJSON(byte version) throws JSONException {
\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
58 public byte[] getBulkData() {
\r
59 return this._bulkData;
\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