1 /******************************************************************
3 * Copyright 2015 Samsung Electronics All Rights Reserved.
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
19 ******************************************************************/
20 package com.example.con_server;
22 import java.util.EnumSet;
23 import java.util.Vector;
25 import org.iotivity.base.OcException;
26 import org.iotivity.base.OcPlatform;
27 import org.iotivity.base.OcRepresentation;
28 import org.iotivity.base.OcResourceHandle;
29 import org.iotivity.base.ResourceProperty;
31 import android.util.Log;
33 //For creating/deleting the configuration Resource
34 public class ConfigurationResource {
35 private final String LOG_TAG = "[CON-SERVER]"
38 // Configuration resource members
39 protected String configurationUri;
40 protected String deviceName;
41 protected String location;
42 protected String locationName;
43 protected String currency;
44 protected String region;
45 protected Vector<String> configurationTypes = new Vector<String>();
46 protected Vector<String> configurationInterfaces = new Vector<String>();
47 protected OcRepresentation configurationRep = new OcRepresentation();
48 protected OcResourceHandle configurationHandle;
51 public ConfigurationResource() {
52 Log.i(LOG_TAG, "ConfigurationResource: enter");
54 deviceName = ConfigurationDefaultValues.defaultDeviceName;
55 location = ConfigurationDefaultValues.defaultLocation;
56 locationName = ConfigurationDefaultValues.defaultLocationName;
57 currency = ConfigurationDefaultValues.defaultCurrency;
58 region = ConfigurationDefaultValues.defaultRegion;
60 configurationUri = ConfigurationDefaultValues.ConURIPrefix;
62 .add(ConfigurationDefaultValues.ConResourceTypePrefix);
63 configurationInterfaces.add(OcPlatform.DEFAULT_INTERFACE);
65 configurationRep.setValueString("n", deviceName);
66 configurationRep.setValueString("loc", location);
67 configurationRep.setValueString("locn", locationName);
68 configurationRep.setValueString("c", currency);
69 configurationRep.setValueString("r", region);
71 configurationRep.setUri(configurationUri);
72 configurationRep.setResourceTypes(configurationTypes);
73 configurationRep.setResourceInterfaces(configurationInterfaces);
76 // For creating Configuration Resource
77 public void createResource(OcPlatform.EntityHandler listener)
79 Log.i(LOG_TAG, "createResource(configuration): enter");
80 EnumSet<ResourceProperty> propertySet = EnumSet.of(
81 ResourceProperty.DISCOVERABLE, ResourceProperty.OBSERVABLE);
83 // Register configuration resource
84 configurationHandle = OcPlatform.registerResource(configurationUri,
85 configurationTypes.elementAt(0),
86 configurationInterfaces.elementAt(0), listener, propertySet);
88 Log.i(LOG_TAG, "createResource(configuration): exit");
91 // Setters and Getters methods for Configuration resource
92 public void setConfigurationRepresentation(OcRepresentation rep) {
93 Log.i(LOG_TAG, "setConfigurationRepresentation: enter");
95 String dName = rep.getValueString("n");
96 String loc = rep.getValueString("loc");
97 String locn = rep.getValueString("locn");
98 String cur = rep.getValueString("c");
99 String reg = rep.getValueString("r");
101 if (!(dName.equalsIgnoreCase(""))) {
104 "setConfigurationRepresentation: New value(deviceName): "
107 if (!(loc.equalsIgnoreCase(""))) {
110 "setConfigurationRepresentation: New value(location): "
113 if (!(locn.equalsIgnoreCase(""))) {
116 "setConfigurationRepresentation: New value(locationName): "
119 if (!(cur.equalsIgnoreCase(""))) {
122 "setConfigurationRepresentation: New value(currency): "
125 if (!(reg.equalsIgnoreCase(""))) {
128 "setConfigurationRepresentation: New value(region): "
132 Log.i(LOG_TAG, "setConfigurationRepresentation: exit");
135 public OcRepresentation getConfigurationRepresentation() {
137 configurationRep.setValueString("n", deviceName);
138 configurationRep.setValueString("loc", location);
139 configurationRep.setValueString("locn", locationName);
140 configurationRep.setValueString("c", currency);
141 configurationRep.setValueString("r", region);
142 return configurationRep;
145 public String getUri() {
146 return configurationUri;
149 // For resetting the default values to configuration Resource
150 public void factoryReset() {
152 deviceName = ConfigurationDefaultValues.defaultDeviceName;
153 location = ConfigurationDefaultValues.defaultLocation;
154 locationName = ConfigurationDefaultValues.defaultLocationName;
155 currency = ConfigurationDefaultValues.defaultCurrency;
156 region = ConfigurationDefaultValues.defaultRegion;
157 Log.i(LOG_TAG, "ConfiguartionResource: factoryReset done");
160 // Deleting all the resources, that we have created using createResources()
161 public void deleteResource() {
163 if (null != configurationHandle) {
164 // Unregister the Configuration resource
165 OcPlatform.unregisterResource(configurationHandle);
168 } catch (OcException e) {
169 Log.e(LOG_TAG, "OcException occured! " + e.toString());