X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=android%2Fexamples%2Ffridgeserver%2Fsrc%2Fmain%2Fjava%2Forg%2Fiotivity%2Fbase%2Fexamples%2Ffridgeserver%2FDeviceResource.java;h=9868f32b3508fb00df796088e5a94dd428154297;hb=8c01dff2c5bc5496f7dc1632c498943ec6ecb015;hp=fc33258d8853e1e5495ead1cae7656e7187f0b8b;hpb=935fdb9b67b6c10d007e652e9e2e028fd6ccfe09;p=platform%2Fupstream%2Fiotivity.git
diff --git a/android/examples/fridgeserver/src/main/java/org/iotivity/base/examples/fridgeserver/DeviceResource.java b/android/examples/fridgeserver/src/main/java/org/iotivity/base/examples/fridgeserver/DeviceResource.java
index fc33258..9868f32 100644
--- a/android/examples/fridgeserver/src/main/java/org/iotivity/base/examples/fridgeserver/DeviceResource.java
+++ b/android/examples/fridgeserver/src/main/java/org/iotivity/base/examples/fridgeserver/DeviceResource.java
@@ -1,189 +1,186 @@
-/*
- * //******************************************************************
- * //
- * // Copyright 2015 Intel Corporation.
- * //
- * //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- * //
- * // Licensed under the Apache License, Version 2.0 (the "License");
- * // you may not use this file except in compliance with the License.
- * // You may obtain a copy of the License at
- * //
- * // http://www.apache.org/licenses/LICENSE-2.0
- * //
- * // Unless required by applicable law or agreed to in writing, software
- * // distributed under the License is distributed on an "AS IS" BASIS,
- * // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * // See the License for the specific language governing permissions and
- * // limitations under the License.
- * //
- * //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- */
-
-package org.iotivity.base.examples.fridgeserver;
-
-import android.content.Context;
-import android.content.Intent;
-import android.util.Log;
-
-import org.iotivity.base.EntityHandlerResult;
-import org.iotivity.base.OcException;
-import org.iotivity.base.OcHeaderOption;
-import org.iotivity.base.OcPlatform;
-import org.iotivity.base.OcResourceRequest;
-import org.iotivity.base.OcResourceResponse;
-import org.iotivity.base.RequestHandlerFlag;
-import org.iotivity.base.ResourceProperty;
-
-import java.util.EnumSet;
-import java.util.LinkedList;
-import java.util.List;
-
-import base.iotivity.org.examples.message.IMessageLogger;
-
-/**
- * DeviceResource
- *
- * Creates a device resource and performs action based on client requests
- */
-public class DeviceResource extends Resource implements IMessageLogger {
- private Context mContext;
-
- private static String TAG = "DeviceResource: ";
-
- /**
- * constructor
- *
- * @param context to enable sending of broadcast messages to be displayed on the user screen
- */
- DeviceResource(Context context) {
- mContext = context;
-
- // eventHandler for register deviceResource
- OcPlatform.EntityHandler eh = new OcPlatform.EntityHandler() {
- @Override
- public EntityHandlerResult handleEntity(OcResourceRequest ocResourceRequest) {
- // this is where the main logic of DeviceResource is handled
- return entityHandler(ocResourceRequest);
- }
- };
-
- try {
- logMessage(TAG + "RegisterDeviceResource " + StringConstants.DEVICE_URI + " : " +
- StringConstants.RESOURCE_TYPENAME + " : " + StringConstants.RESOURCE_INTERFACE);
- mResourceHandle = OcPlatform.registerResource(StringConstants.DEVICE_URI,
- StringConstants.RESOURCE_TYPENAME, StringConstants.RESOURCE_INTERFACE,
- eh, EnumSet.of(ResourceProperty.DISCOVERABLE));
- } catch (OcException e) {
- logMessage(TAG + "registerResource error: " + e.getMessage());
- Log.e(TAG, e.getMessage());
- }
- }
-
- /**
- * update current state of device
- *
- * @return device representation
- */
- private void updateRepresentationValues() {
- try {
- mRepresentation.setValue(StringConstants.DEVICE_NAME,
- "Intel Powered 2 door, 1 light refrigerator");
- } catch (OcException e) {
- Log.e(TAG, e.getMessage());
- }
- }
-
- /**
- * unregister the resource
- */
- private void deleteDeviceResource() {
- try {
- OcPlatform.unregisterResource(mResourceHandle);
- logMessage(TAG + "Unregister DeviceResource successful");
- } catch (OcException e) {
- logMessage(TAG + e.getMessage());
- Log.e(TAG, e.getMessage());
- }
- }
-
- /**
- * this is the main method which handles different incoming requests appropriately.
- *
- * @param request OcResourceRequest from the client
- * @return EntityHandlerResult depending on whether the request was handled successfully or not
- */
- private EntityHandlerResult entityHandler(OcResourceRequest request) {
- EntityHandlerResult result = EntityHandlerResult.ERROR;
- if (null != request) {
- List headerOptions = request.getHeaderOptions();
- String clientAPIVersion = "";
- String clientToken = "";
-
- // search for header options map and look for API version and client token
- for (OcHeaderOption headerOption : headerOptions) {
- int optionId = headerOption.getOptionId();
- if (StringConstants.API_VERSION_KEY == optionId) {
- clientAPIVersion = headerOption.getOptionData();
- logMessage(TAG + " Client API Version: " + clientAPIVersion);
- } else if (StringConstants.CLIENT_VERSION_KEY == optionId) {
- clientToken = headerOption.getOptionData();
- logMessage(TAG + " Client Token: " + clientToken);
- }
- }
- if (clientAPIVersion.equals(StringConstants.API_VERSION) &&
- clientToken.equals(StringConstants.CLIENT_TOKEN)) {
- List serverHeaderOptions = new LinkedList<>();
- OcHeaderOption apiVersion = new OcHeaderOption(StringConstants.API_VERSION_KEY,
- StringConstants.API_VERSION);
- serverHeaderOptions.add(apiVersion);
- try {
- if (request.getRequestHandlerFlagSet().contains(RequestHandlerFlag.REQUEST)) {
- OcResourceResponse response = new OcResourceResponse();
- response.setRequestHandle(request.getRequestHandle());
- response.setResourceHandle(request.getResourceHandle());
- response.setHeaderOptions(serverHeaderOptions);
-
- switch (request.getRequestType()) {
- case GET:
- response.setErrorCode(StringConstants.OK);
- response.setResponseResult(EntityHandlerResult.OK);
- updateRepresentationValues();
- response.setResourceRepresentation(mRepresentation);
- OcPlatform.sendResponse(response);
- break;
- case DELETE:
- deleteDeviceResource();
- response.setErrorCode(StringConstants.OK);
- response.setResponseResult(EntityHandlerResult.OK);
- break;
- case POST:
- response.setResponseResult(EntityHandlerResult.ERROR);
- OcPlatform.sendResponse(response);
- break;
- }
- result = EntityHandlerResult.OK;
- }
- } catch (OcException e) {
- logMessage(TAG + e.getMessage());
- Log.e(TAG, e.getMessage());
- }
- }
- }
- return result;
- }
-
- @Override
- public void logMessage(String msg) {
- logMsg(msg);
- if (StringConstants.ENABLE_PRINTING) {
- Log.i(TAG, msg);
- }
- }
-
- public void logMsg(final String text) {
- Intent intent = new Intent(StringConstants.INTENT);
- intent.putExtra("message", text);
- mContext.sendBroadcast(intent);
- }
-}
+/*
+ * //******************************************************************
+ * //
+ * // Copyright 2015 Intel Corporation.
+ * //
+ * //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+ * //
+ * // Licensed under the Apache License, Version 2.0 (the "License");
+ * // you may not use this file except in compliance with the License.
+ * // You may obtain a copy of the License at
+ * //
+ * // http://www.apache.org/licenses/LICENSE-2.0
+ * //
+ * // Unless required by applicable law or agreed to in writing, software
+ * // distributed under the License is distributed on an "AS IS" BASIS,
+ * // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * // See the License for the specific language governing permissions and
+ * // limitations under the License.
+ * //
+ * //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+ */
+
+package org.iotivity.base.examples.fridgeserver;
+
+import android.content.Context;
+import android.content.Intent;
+import android.util.Log;
+
+import org.iotivity.base.EntityHandlerResult;
+import org.iotivity.base.OcException;
+import org.iotivity.base.OcHeaderOption;
+import org.iotivity.base.OcPlatform;
+import org.iotivity.base.OcResourceRequest;
+import org.iotivity.base.OcResourceResponse;
+import org.iotivity.base.RequestHandlerFlag;
+import org.iotivity.base.ResourceProperty;
+
+import java.util.EnumSet;
+import java.util.LinkedList;
+import java.util.List;
+
+import base.iotivity.org.examples.message.IMessageLogger;
+
+/**
+ * DeviceResource
+ *
+ * Creates a device resource and performs action based on client requests
+ */
+public class DeviceResource extends Resource implements IMessageLogger {
+ private Context mContext;
+
+ private static String TAG = "DeviceResource: ";
+
+ /**
+ * constructor
+ *
+ * @param context to enable sending of broadcast messages to be displayed on the user screen
+ */
+ DeviceResource(Context context) {
+ mContext = context;
+
+ // eventHandler for register deviceResource
+ OcPlatform.EntityHandler eh = new OcPlatform.EntityHandler() {
+ @Override
+ public EntityHandlerResult handleEntity(OcResourceRequest ocResourceRequest) {
+ // this is where the main logic of DeviceResource is handled
+ return entityHandler(ocResourceRequest);
+ }
+ };
+
+ try {
+ logMessage(TAG + "RegisterDeviceResource " + StringConstants.DEVICE_URI + " : " +
+ StringConstants.RESOURCE_TYPENAME + " : " + StringConstants.RESOURCE_INTERFACE);
+ mResourceHandle = OcPlatform.registerResource(StringConstants.DEVICE_URI,
+ StringConstants.RESOURCE_TYPENAME, StringConstants.RESOURCE_INTERFACE,
+ eh, EnumSet.of(ResourceProperty.DISCOVERABLE));
+ } catch (OcException e) {
+ logMessage(TAG + "registerResource error: " + e.getMessage());
+ Log.e(TAG, e.getMessage());
+ }
+ }
+
+ /**
+ * update current state of device
+ *
+ * @return device representation
+ */
+ private void updateRepresentationValues() {
+ try {
+ mRepresentation.setValue(StringConstants.DEVICE_NAME,
+ "Intel Powered 2 door, 1 light refrigerator");
+ } catch (OcException e) {
+ Log.e(TAG, e.getMessage());
+ }
+ }
+
+ /**
+ * unregister the resource
+ */
+ private void deleteDeviceResource() {
+ try {
+ OcPlatform.unregisterResource(mResourceHandle);
+ logMessage(TAG + "Unregister DeviceResource successful");
+ } catch (OcException e) {
+ logMessage(TAG + e.getMessage());
+ Log.e(TAG, e.getMessage());
+ }
+ }
+
+ /**
+ * this is the main method which handles different incoming requests appropriately.
+ *
+ * @param request OcResourceRequest from the client
+ * @return EntityHandlerResult depending on whether the request was handled successfully or not
+ */
+ private EntityHandlerResult entityHandler(OcResourceRequest request) {
+ EntityHandlerResult result = EntityHandlerResult.ERROR;
+ if (null != request) {
+ List headerOptions = request.getHeaderOptions();
+ String clientAPIVersion = "";
+ String clientToken = "";
+
+ // search for header options map and look for API version and client token
+ for (OcHeaderOption headerOption : headerOptions) {
+ int optionId = headerOption.getOptionId();
+ if (StringConstants.API_VERSION_KEY == optionId) {
+ clientAPIVersion = headerOption.getOptionData();
+ logMessage(TAG + " Client API Version: " + clientAPIVersion);
+ } else if (StringConstants.CLIENT_VERSION_KEY == optionId) {
+ clientToken = headerOption.getOptionData();
+ logMessage(TAG + " Client Token: " + clientToken);
+ }
+ }
+
+ if (clientAPIVersion.equals(StringConstants.API_VERSION) &&
+ clientToken.equals(StringConstants.CLIENT_TOKEN)) {
+ List serverHeaderOptions = new LinkedList<>();
+ OcHeaderOption apiVersion = new OcHeaderOption(StringConstants.API_VERSION_KEY,
+ StringConstants.API_VERSION);
+ serverHeaderOptions.add(apiVersion);
+ try {
+ if (request.getRequestHandlerFlagSet().contains(RequestHandlerFlag.REQUEST)) {
+ OcResourceResponse response = new OcResourceResponse();
+ response.setRequestHandle(request.getRequestHandle());
+ response.setResourceHandle(request.getResourceHandle());
+ response.setHeaderOptions(serverHeaderOptions);
+
+ switch (request.getRequestType()) {
+ case GET:
+ response.setErrorCode(StringConstants.OK);
+ response.setResponseResult(EntityHandlerResult.OK);
+ updateRepresentationValues();
+ response.setResourceRepresentation(mRepresentation);
+ OcPlatform.sendResponse(response);
+ break;
+ case DELETE:
+ deleteDeviceResource();
+ response.setErrorCode(StringConstants.OK);
+ response.setResponseResult(EntityHandlerResult.OK);
+ break;
+ }
+ result = EntityHandlerResult.OK;
+ }
+ } catch (OcException e) {
+ logMessage(TAG + e.getMessage());
+ Log.e(TAG, e.getMessage());
+ }
+ }
+ }
+ return result;
+ }
+
+ @Override
+ public void logMessage(String msg) {
+ logMsg(msg);
+ if (StringConstants.ENABLE_PRINTING) {
+ Log.i(TAG, msg);
+ }
+ }
+
+ public void logMsg(final String text) {
+ Intent intent = new Intent(StringConstants.INTENT);
+ intent.putExtra("message", text);
+ mContext.sendBroadcast(intent);
+ }
+}