Imported Upstream version 0.9.1
[platform/upstream/iotivity.git] / android / android_api / base / jni / JniOcResourceRequest.cpp
1 /*\r
2 * //******************************************************************\r
3 * //\r
4 * // Copyright 2015 Intel Corporation.\r
5 * //\r
6 * //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\r
7 * //\r
8 * // Licensed under the Apache License, Version 2.0 (the "License");\r
9 * // you may not use this file except in compliance with the License.\r
10 * // You may obtain a copy of the License at\r
11 * //\r
12 * //      http://www.apache.org/licenses/LICENSE-2.0\r
13 * //\r
14 * // Unless required by applicable law or agreed to in writing, software\r
15 * // distributed under the License is distributed on an "AS IS" BASIS,\r
16 * // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
17 * // See the License for the specific language governing permissions and\r
18 * // limitations under the License.\r
19 * //\r
20 * //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\r
21 */\r
22 #include "JniOcResourceRequest.h"\r
23 #include "OCResourceRequest.h"\r
24 #include "JniOcResourceHandle.h"\r
25 #include "JniOcRequestHandle.h"\r
26 #include "JniUtils.h"\r
27 \r
28 using namespace OC;\r
29 \r
30 JniOcResourceRequest::JniOcResourceRequest(const std::shared_ptr<OCResourceRequest> request)\r
31     : m_request(request)\r
32 {}\r
33 \r
34 JniOcResourceRequest::~JniOcResourceRequest()\r
35 {}\r
36 \r
37 std::string\r
38 JniOcResourceRequest::getRequestType()\r
39 {\r
40     return m_request->getRequestType();\r
41 }\r
42 \r
43 const QueryParamsMap&\r
44 JniOcResourceRequest::getQueryParameters() const\r
45 {\r
46     return m_request->getQueryParameters();\r
47 }\r
48 \r
49 int\r
50 JniOcResourceRequest::getRequestHandlerFlag() const\r
51 {\r
52     return m_request->getRequestHandlerFlag();\r
53 }\r
54 \r
55 const OCRepresentation&\r
56 JniOcResourceRequest::getResourceRepresentation() const\r
57 {\r
58     return m_request->getResourceRepresentation();\r
59 }\r
60 \r
61 const ObservationInfo&\r
62 JniOcResourceRequest::getObservationInfo() const\r
63 {\r
64     return m_request->getObservationInfo();\r
65 }\r
66 \r
67 void\r
68 JniOcResourceRequest::setResourceUri(const std::string resourceUri)\r
69 {\r
70     m_request->setResourceUri(resourceUri);\r
71 }\r
72 \r
73 std::string\r
74 JniOcResourceRequest::getResourceUri(void)\r
75 {\r
76     return m_request->getResourceUri();\r
77 }\r
78 \r
79 const HeaderOptions&\r
80 JniOcResourceRequest::getHeaderOptions() const\r
81 {\r
82     return m_request->getHeaderOptions();\r
83 }\r
84 \r
85 const OCRequestHandle&\r
86 JniOcResourceRequest::getRequestHandle() const\r
87 {\r
88     return m_request->getRequestHandle();\r
89 }\r
90 \r
91 const OCResourceHandle&\r
92 JniOcResourceRequest::getResourceHandle() const\r
93 {\r
94     return m_request->getResourceHandle();\r
95 }\r
96 \r
97 JniOcResourceRequest* JniOcResourceRequest::getJniOcResourceRequestPtr\r
98 (JNIEnv *env, jobject thiz)\r
99 {\r
100     JniOcResourceRequest *request = GetHandle<JniOcResourceRequest>(env, thiz);\r
101     if (env->ExceptionCheck())\r
102     {\r
103         LOGE("Failed to get native handle from OcResourceRequest");\r
104     }\r
105     if (!request)\r
106     {\r
107         ThrowOcException(JNI_NO_NATIVE_POINTER, "");\r
108     }\r
109     return request;\r
110 }\r
111 \r
112 /*\r
113 * Class:     org_iotivity_base_OcResourceRequest\r
114 * Method:    getRequestTypeNative\r
115 * Signature: ()Ljava/lang/String;\r
116 */\r
117 JNIEXPORT jstring JNICALL Java_org_iotivity_base_OcResourceRequest_getRequestTypeNative\r
118 (JNIEnv *env, jobject thiz)\r
119 {\r
120     LOGD("OcResourceRequest_getRequestTypeNative");\r
121     JniOcResourceRequest *request = JniOcResourceRequest::getJniOcResourceRequestPtr(env, thiz);\r
122     if (!request) return nullptr;\r
123 \r
124     std::string requestType = request->getRequestType();\r
125     return env->NewStringUTF(requestType.c_str());\r
126 }\r
127 \r
128 /*\r
129 * Class:     org_iotivity_base_OcResourceRequest\r
130 * Method:    getQueryParameters\r
131 * Signature: ()Ljava/util/Map;\r
132 */\r
133 JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcResourceRequest_getQueryParameters\r
134 (JNIEnv *env, jobject thiz)\r
135 {\r
136     LOGD("OcResourceRequest_getQueryParameters");\r
137     JniOcResourceRequest *request = JniOcResourceRequest::getJniOcResourceRequestPtr(env, thiz);\r
138     if (!request) return nullptr;\r
139 \r
140     return JniUtils::convertQueryParamsMapToJavaMap(env, request->getQueryParameters());\r
141 }\r
142 \r
143 /*\r
144 * Class:     org_iotivity_base_OcResourceRequest\r
145 * Method:    getRequestHandlerFlagNative\r
146 * Signature: ()I\r
147 */\r
148 JNIEXPORT jint JNICALL Java_org_iotivity_base_OcResourceRequest_getRequestHandlerFlagNative\r
149 (JNIEnv *env, jobject thiz)\r
150 {\r
151     LOGD("OcResourceRequest_getRequestHandlerFlagNative");\r
152     JniOcResourceRequest *request = JniOcResourceRequest::getJniOcResourceRequestPtr(env, thiz);\r
153     if (!request) return -1;\r
154 \r
155     return static_cast<jint>(request->getRequestHandlerFlag());\r
156 }\r
157 \r
158 /*\r
159 * Class:     org_iotivity_base_OcResourceRequest\r
160 * Method:    getResourceRepresentation\r
161 * Signature: ()Lorg/iotivity/base/OcRepresentation;\r
162 */\r
163 JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcResourceRequest_getResourceRepresentation\r
164 (JNIEnv *env, jobject thiz)\r
165 {\r
166     LOGD("OcResourceRequest_getResourceRepresentation");\r
167     JniOcResourceRequest *request = JniOcResourceRequest::getJniOcResourceRequestPtr(env, thiz);\r
168     if (!request) return nullptr;\r
169 \r
170     OCRepresentation *ocRepresentation = new OCRepresentation(request->getResourceRepresentation());\r
171     if (!ocRepresentation) return nullptr;\r
172 \r
173     jlong handle = reinterpret_cast<jlong>(ocRepresentation);\r
174     jobject jRepresentation = env->NewObject(g_cls_OcRepresentation, g_mid_OcRepresentation_N_ctor_bool,\r
175         handle, true);\r
176     if (!jRepresentation)\r
177     {\r
178         LOGE("Failed to create OcRepresentation");\r
179         delete ocRepresentation;\r
180     }\r
181 \r
182     return jRepresentation;\r
183 }\r
184 \r
185 /*\r
186 * Class:     org_iotivity_base_OcResourceRequest\r
187 * Method:    getObservationInfo\r
188 * Signature: ()Lorg/iotivity/base/ObservationInfo;\r
189 */\r
190 JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcResourceRequest_getObservationInfo\r
191 (JNIEnv *env, jobject thiz)\r
192 {\r
193     LOGD("OcResourceRequest_getObservationInfo");\r
194     JniOcResourceRequest *request = JniOcResourceRequest::getJniOcResourceRequestPtr(env, thiz);\r
195     if (!request) return nullptr;\r
196 \r
197     ObservationInfo oInfo = request->getObservationInfo();\r
198 \r
199     jobject jObservationInfo = env->NewObject(g_cls_ObservationInfo, g_mid_ObservationInfo_N_ctor,\r
200         (jint)oInfo.action, (jbyte)oInfo.obsId);\r
201 \r
202     if (!jObservationInfo)\r
203     {\r
204         LOGE("Failed to create ObservationInfo");\r
205     }\r
206 \r
207     return jObservationInfo;\r
208 }\r
209 \r
210 /*\r
211 * Class:     org_iotivity_base_OcResourceRequest\r
212 * Method:    setResourceUri\r
213 * Signature: (Ljava/lang/String);\r
214 */\r
215 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResourceRequest_setResourceUri\r
216 (JNIEnv *env, jobject thiz, jstring jUri)\r
217 {\r
218     LOGD("OcResourceRequest_setResourceUri");\r
219     if (!jUri)\r
220     {\r
221         ThrowOcException(OC_STACK_INVALID_PARAM, "URI cannot be null");\r
222         return;\r
223     }\r
224     JniOcResourceRequest *request = JniOcResourceRequest::getJniOcResourceRequestPtr(env, thiz);\r
225     if (!request) return;\r
226 \r
227     request->setResourceUri(env->GetStringUTFChars(jUri, 0));\r
228 }\r
229 \r
230 /*\r
231 * Class:     org_iotivity_base_OcResourceRequest\r
232 * Method:    getResourceUri\r
233 * Signature: ()Ljava/lang/String;\r
234 */\r
235 JNIEXPORT jstring JNICALL Java_org_iotivity_base_OcResourceRequest_getResourceUri\r
236 (JNIEnv *env, jobject thiz)\r
237 {\r
238     LOGD("OcResourceRequest_getResourceUri");\r
239     JniOcResourceRequest *request = JniOcResourceRequest::getJniOcResourceRequestPtr(env, thiz);\r
240     if (!request) return nullptr;\r
241 \r
242     std::string requestUri = request->getResourceUri();\r
243     return env->NewStringUTF(requestUri.c_str());\r
244 }\r
245 \r
246 /*\r
247 * Class:     org_iotivity_base_OcResourceRequest\r
248 * Method:    getHeaderOptions\r
249 * Signature: ()Ljava/util/List;\r
250 */\r
251 JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcResourceRequest_getHeaderOptions\r
252 (JNIEnv *env, jobject thiz)\r
253 {\r
254     LOGD("OcResourceRequest_getHeaderOptions");\r
255     JniOcResourceRequest *request = JniOcResourceRequest::getJniOcResourceRequestPtr(env, thiz);\r
256     if (!request) return nullptr;\r
257 \r
258     return JniUtils::convertHeaderOptionsVectorToJavaList(env, request->getHeaderOptions());\r
259 }\r
260 \r
261 /*\r
262 * Class:     org_iotivity_base_OcResourceRequest\r
263 * Method:    getRequestHandle\r
264 * Signature: ()Lorg/iotivity/base/OcRequestHandle;\r
265 */\r
266 JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcResourceRequest_getRequestHandle\r
267 (JNIEnv *env, jobject thiz)\r
268 {\r
269     LOGD("OcResourceRequest_getRequestHandle");\r
270     JniOcResourceRequest *request = JniOcResourceRequest::getJniOcResourceRequestPtr(env, thiz);\r
271     if (!request) return nullptr;\r
272 \r
273     JniOcRequestHandle* jniHandle = new JniOcRequestHandle(request->getRequestHandle());\r
274     jlong handle = reinterpret_cast<jlong>(jniHandle);\r
275     jobject jRequestHandle = env->NewObject(g_cls_OcRequestHandle, g_mid_OcRequestHandle_N_ctor, handle);\r
276     if (!jRequestHandle)\r
277     {\r
278         LOGE("Failed to create OcRequestHandle");\r
279         delete jniHandle;\r
280     }\r
281 \r
282     return jRequestHandle;\r
283 }\r
284 \r
285 /*\r
286 * Class:     org_iotivity_base_OcResourceRequest\r
287 * Method:    getResourceHandle\r
288 * Signature: ()Lorg/iotivity/base/OcResourceHandle;\r
289 */\r
290 JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcResourceRequest_getResourceHandle\r
291 (JNIEnv *env, jobject thiz)\r
292 {\r
293     LOGD("OcResourceRequest_getResourceHandle");\r
294     JniOcResourceRequest *request = JniOcResourceRequest::getJniOcResourceRequestPtr(env, thiz);\r
295     if (!request) return nullptr;\r
296 \r
297     JniOcResourceHandle* jniHandle = new JniOcResourceHandle(\r
298         request->getResourceHandle());\r
299     jlong handle = reinterpret_cast<jlong>(jniHandle);\r
300     jobject jResourceHandle = env->NewObject(g_cls_OcResourceHandle, g_mid_OcResourceHandle_N_ctor, handle);\r
301     if (!jResourceHandle)\r
302     {\r
303         LOGE("Failed to create OcResourceHandle");\r
304         delete jniHandle;\r
305     }\r
306 \r
307     return jResourceHandle;\r
308 }\r
309 \r
310 /*\r
311 * Class:     org_iotivity_base_OcResourceRequest\r
312 * Method:    dispose\r
313 * Signature: ()V\r
314 */\r
315 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResourceRequest_dispose\r
316 (JNIEnv *env, jobject thiz)\r
317 {\r
318     LOGD("OcResourceRequest_dispose");\r
319     JniOcResourceRequest *request = JniOcResourceRequest::getJniOcResourceRequestPtr(env, thiz);\r
320     delete request;\r
321 }