blob: 14164b9641fcf88bc8e7a397b0cd3ab53e656ee0 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
|
package com.smartdevicelink.proxy.rpc;
import java.util.Hashtable;
import java.util.List;
import com.smartdevicelink.protocol.enums.FunctionID;
import com.smartdevicelink.proxy.RPCRequest;
import com.smartdevicelink.proxy.rpc.enums.RequestType;
/** An asynchronous request from the device; binary data can be included in hybrid part of message for some requests (such as HTTP, Proprietary, or Authentication requests)
*
* <p><b>Parameter List</b></p>
* <table border="1" rules="all">
* <tr>
* <th>Name</th>
* <th>Type</th>
* <th>Description</th>
* <th>Reg.</th>
* <th>Notes</th>
* <th>Version</th>
* </tr>
* <tr>
* <td>requestType</td>
* <td>RequestType</td>
* <td>The type of system request. Note that Proprietary requests should forward the binary data to the known proprietary module on the system.</td>
* <td>Y</td>
* <td></td>
* <td>SmartDeviceLink 3.0 </td>
* </tr>
*
* <tr>
* <td>fileName</td>
* <td>String</td>
* <td>Filename of HTTP data to store in predefined system staging area. Mandatory if requestType is HTTP. PROPRIETARY requestType should ignore this parameter. </td>
* <td>N</td>
* <td>Max Length: 255</td>
* <td>SmartDeviceLink 3.0 </td>
* </tr>
* </table>
* @since SmartDeviceLink 3.0
*
*
*
*/
public class SystemRequest extends RPCRequest {
public static final String KEY_FILE_NAME = "fileName";
public static final String KEY_REQUEST_TYPE = "requestType";
public static final String KEY_DATA = "data";
/**
* Constructs a new SystemRequest object
*/
public SystemRequest() {
super(FunctionID.SYSTEM_REQUEST.toString());
}
public SystemRequest(boolean bLegacy) {
super(FunctionID.ENCODED_SYNC_P_DATA.toString());
}
public SystemRequest(Hashtable<String, Object> hash) {
super(hash);
}
@SuppressWarnings("unchecked")
public List<String> getLegacyData() {
if (parameters.get(KEY_DATA) instanceof List<?>) {
List<?> list = (List<?>)parameters.get(KEY_DATA);
if (list != null && list.size()>0) {
Object obj = list.get(0);
if (obj instanceof String) {
return (List<String>) list;
}
}
}
return null;
}
public void setLegacyData( List<String> data ) {
if ( data!= null) {
parameters.put(KEY_DATA, data );
} else {
parameters.remove(KEY_DATA);
}
}
public String getFileName() {
return (String) parameters.get(KEY_FILE_NAME);
}
public void setFileName(String fileName) {
if (fileName != null) {
parameters.put(KEY_FILE_NAME, fileName);
} else {
parameters.remove(KEY_FILE_NAME);
}
}
public RequestType getRequestType() {
Object obj = parameters.get(KEY_REQUEST_TYPE);
if (obj instanceof RequestType) {
return (RequestType) obj;
} else if (obj instanceof String) {
return RequestType.valueForString((String) obj);
}
return null;
}
public void setRequestType(RequestType requestType) {
if (requestType != null) {
parameters.put(KEY_REQUEST_TYPE, requestType);
} else {
parameters.remove(KEY_REQUEST_TYPE);
}
}
}
|