SDL_Android/SmartDeviceLinkAndroidProxy - added the correct version of the proxy
[profile/ivi/smartdevicelink.git] / SDL_Android / SmartDeviceLinkProxyAndroid / src / com / smartdevicelink / trace / OpenRPCMessage.java
1 package com.smartdevicelink.trace;\r
2 \r
3 import java.util.Hashtable;\r
4 import java.util.Iterator;\r
5 import java.util.Vector;\r
6 \r
7 import com.smartdevicelink.proxy.RPCMessage;\r
8 import com.smartdevicelink.proxy.RPCStruct;\r
9 \r
10 class OpenRPCMessage extends RPCMessage {\r
11         private OpenRPCMessage() {super("");}\r
12         public OpenRPCMessage(RPCMessage rpcm) {\r
13                 super(rpcm);\r
14         } // end-method\r
15 \r
16         public OpenRPCMessage(RPCStruct rpcs) {\r
17                 super(rpcs);\r
18         } // end-method\r
19 \r
20         public String msgDump() {\r
21                 StringBuilder pd = new StringBuilder();\r
22                 \r
23                 pd.append(this.getFunctionName() + " " + this.getMessageType());\r
24                 \r
25                 msgDump(pd);\r
26 \r
27                 return pd.toString();\r
28         } // end-method\r
29 \r
30         public void msgDump(StringBuilder pd) {\r
31                 pd.append("[");\r
32 \r
33                 dumpParams(parameters, pd);\r
34                 \r
35                 pd.append("]");\r
36 \r
37                 return;\r
38         } // end-method\r
39 \r
40         private void dumpParams(Hashtable ht, StringBuilder pd) {\r
41                 Iterator keySet = ht.keySet().iterator();\r
42                 Object obj = null;\r
43                 String key = "";\r
44                 boolean isFirstParam = true;\r
45 \r
46                 while (keySet.hasNext()) {\r
47                         key = (String)keySet.next();\r
48                         obj = ht.get(key);\r
49                         if (isFirstParam) {\r
50                                 isFirstParam = false;\r
51                         } else {\r
52                                 pd.append(", ");\r
53                         } // end-if\r
54 \r
55                         dumpParamNode(key, obj, pd);\r
56 \r
57                 } // end-while\r
58         } // end-method\r
59         \r
60         private void dumpParamNode(String key, Object obj, StringBuilder pd) {\r
61 \r
62                 if (obj instanceof Hashtable) {\r
63                         pd.append("[");\r
64                         dumpParams((Hashtable)obj, pd);\r
65                         pd.append("]");\r
66                 } else if (obj instanceof RPCStruct) {\r
67                         pd.append("[");\r
68                         OpenRPCMessage orpcm = new OpenRPCMessage((RPCStruct)obj);\r
69                         orpcm.msgDump(pd);\r
70                         pd.append("]");\r
71                 } else if (obj instanceof Vector) {\r
72                         pd.append("[");\r
73                         Vector vec = (Vector)obj;\r
74                         for (int idx=0;idx < vec.size();idx++) {\r
75                                 if (idx > 0) {\r
76                                         pd.append(", ");\r
77                                 }\r
78                                 dumpParamNode(key, vec.elementAt(idx), pd);\r
79                         } // end-for\r
80                         pd.append("]");\r
81                 } else {\r
82                         pd.append("\"" + key + "\" = \"" + obj.toString() + "\"");\r
83                 }\r
84         } // end-method\r
85 } // end-class OpenRPCMessage\r