SDL_Android/SmartDeviceLinkAndroidProxy - added the correct version of the proxy
[profile/ivi/smartdevicelink.git] / SDL_Android / SmartDeviceLinkProxyAndroid / src / com / smartdevicelink / proxy / rpc / ParameterPermissions.java
1 package com.smartdevicelink.proxy.rpc;\r
2 \r
3 import java.util.Hashtable;\r
4 import java.util.Vector;\r
5 \r
6 import com.smartdevicelink.proxy.RPCStruct;\r
7 import com.smartdevicelink.proxy.constants.Names;\r
8 import com.smartdevicelink.proxy.rpc.enums.HMILevel;\r
9 \r
10 /**\r
11  * Defining sets of parameters, which are permitted or prohibited for a given RPC.\r
12  * <p><b>Parameter List\r
13  * <table border="1" rules="all">\r
14  *              <tr>\r
15  *                      <th>Name</th>\r
16  *                      <th>Type</th>\r
17  *                      <th>Description</th>\r
18  *                      <th>SmartDeviceLink Ver. Available</th>\r
19  *              </tr>\r
20  *              <tr>\r
21  *                      <td>allowed</td>\r
22  *                      <td>String</td>\r
23  *                      <td>A set of all parameters that are permitted for this given RPC.\r
24  *                                      <ul>\r
25  *                                      <li>Min size: 0</li>\r
26  *                                      <li>Max size: 100</li>\r
27  *                                      <li>Max length: 100</li>\r
28  *                                      </ul>\r
29  *                      </td>\r
30  *                      <td>SmartDeviceLink 2.0</td>\r
31  *              </tr>\r
32  *              <tr>\r
33  *                      <td>userDisallowed</td>\r
34  *                      <td>String</td>\r
35  *                      <td>A set of all parameters that are prohibated for this given RPC.\r
36  *                                      <ul>\r
37  *                                      <li>Min size: 0</li>\r
38  *                                      <li>Max size: 100</li>\r
39  *                                      <li>Max length: 100</li>\r
40  *                                      </ul>\r
41  *                      </td>\r
42  *                      <td>SmartDeviceLink 2.0</td>\r
43  *              </tr>\r
44  *  </table>\r
45  * @since SmartDeviceLink 2.0\r
46  */\r
47 public class ParameterPermissions extends RPCStruct {\r
48 \r
49         /**\r
50          *  Constructs a newly allocated ParameterPermissions object\r
51          */\r
52     public ParameterPermissions() { }\r
53     \r
54     /**\r
55      * Constructs a newly allocated ParameterPermissions object indicated by the Hashtable parameter\r
56      * @param hash The Hashtable to use\r
57      */\r
58     public ParameterPermissions(Hashtable hash) {\r
59         super(hash);\r
60     }\r
61     \r
62     /**\r
63      * get a set of all parameters that are permitted for this given RPC.\r
64      * @return a set of all parameters that are permitted for this given RPC.\r
65      */\r
66     public Vector<String> getAllowed() {\r
67         if (store.get(Names.allowed) instanceof Vector<?>) {\r
68                 Vector<?> list = (Vector<?>)store.get( Names.allowed);\r
69                 if (list != null && list.size() > 0) {\r
70                         Object obj = list.get(0);\r
71                         if (obj instanceof String) {\r
72                         return (Vector<String>) list;                           \r
73                         }\r
74                 }\r
75         }\r
76         return null;\r
77     }\r
78     \r
79     /**\r
80      * set a set of all parameters that are permitted for this given RPC.\r
81      * @param allowed parameter that is permitted for this given RPC\r
82      */\r
83     public void setAllowed(HMILevel allowed) {\r
84         if (allowed != null) {\r
85             store.put(Names.allowed, allowed);\r
86         } else {\r
87                 store.remove(Names.allowed);\r
88         }\r
89     }\r
90     \r
91     /**\r
92      * get a set of all parameters that are prohibited for this given RPC.\r
93      * @return a set of all parameters that are prohibited for this given RPC\r
94      */\r
95     public Vector<String> getUserDisallowed() {\r
96         if (store.get(Names.userDisallowed) instanceof Vector<?>) {\r
97                 Vector<?> list = (Vector<?>)store.get( Names.userDisallowed);\r
98                 if (list != null && list.size() > 0) {\r
99                         Object obj = list.get(0);\r
100                         if (obj instanceof String) {\r
101                         return (Vector<String>) list;                           \r
102                         }\r
103                 }\r
104         }\r
105         return null;\r
106     }\r
107     \r
108     /**\r
109      * set a set of all parameters that are prohibited for this given RPC.\r
110      * @param userDisallowed paramter that is prohibited for this given RPC\r
111      */\r
112     public void setUserDisallowed(HMILevel userDisallowed) {\r
113         if (userDisallowed != null) {\r
114             store.put(Names.userDisallowed, userDisallowed);\r
115         } else {\r
116                 store.remove(Names.userDisallowed);\r
117         }\r
118     }\r
119 }\r