Imported Upstream version 1.0.0
[platform/upstream/iotivity.git] / service / things-manager / sampleapp / android / con-server / src / com / example / con_server / ConfigurationResource.java
1 /******************************************************************
2  *
3  * Copyright 2015 Samsung Electronics All Rights Reserved.
4  *
5  *
6  *
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
10  *
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  *
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.
18  *
19  ******************************************************************/
20 package com.example.con_server;
21
22 import java.util.EnumSet;
23 import java.util.Vector;
24
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;
30
31 import android.util.Log;
32
33 //For creating/deleting the configuration Resource
34 public class ConfigurationResource {
35     private final String       LOG_TAG                 = "[CON-SERVER]"
36                                                                + this.getClass()
37                                                                        .getSimpleName();
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;
49
50     // constructors
51     public ConfigurationResource() {
52         Log.i(LOG_TAG, "ConfigurationResource: enter");
53
54         deviceName = ConfigurationDefaultValues.defaultDeviceName;
55         location = ConfigurationDefaultValues.defaultLocation;
56         locationName = ConfigurationDefaultValues.defaultLocationName;
57         currency = ConfigurationDefaultValues.defaultCurrency;
58         region = ConfigurationDefaultValues.defaultRegion;
59
60         configurationUri = ConfigurationDefaultValues.ConURIPrefix;
61         configurationTypes
62                 .add(ConfigurationDefaultValues.ConResourceTypePrefix);
63         configurationInterfaces.add(OcPlatform.DEFAULT_INTERFACE);
64
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);
70
71         configurationRep.setUri(configurationUri);
72         configurationRep.setResourceTypes(configurationTypes);
73         configurationRep.setResourceInterfaces(configurationInterfaces);
74     }
75
76     // For creating Configuration Resource
77     public void createResource(OcPlatform.EntityHandler listener)
78             throws OcException {
79         Log.i(LOG_TAG, "createResource(configuration): enter");
80         EnumSet<ResourceProperty> propertySet = EnumSet.of(
81                 ResourceProperty.DISCOVERABLE, ResourceProperty.OBSERVABLE);
82
83         // Register configuration resource
84         configurationHandle = OcPlatform.registerResource(configurationUri,
85                 configurationTypes.elementAt(0),
86                 configurationInterfaces.elementAt(0), listener, propertySet);
87
88         Log.i(LOG_TAG, "createResource(configuration): exit");
89     }
90
91     // Setters and Getters methods for Configuration resource
92     public void setConfigurationRepresentation(OcRepresentation rep) {
93         Log.i(LOG_TAG, "setConfigurationRepresentation: enter");
94
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");
100
101         if (!(dName.equalsIgnoreCase(""))) {
102             deviceName = dName;
103             Log.i(LOG_TAG,
104                     "setConfigurationRepresentation: New value(deviceName): "
105                             + deviceName);
106         }
107         if (!(loc.equalsIgnoreCase(""))) {
108             location = loc;
109             Log.i(LOG_TAG,
110                     "setConfigurationRepresentation: New value(location): "
111                             + location);
112         }
113         if (!(locn.equalsIgnoreCase(""))) {
114             locationName = locn;
115             Log.i(LOG_TAG,
116                     "setConfigurationRepresentation: New value(locationName): "
117                             + locationName);
118         }
119         if (!(cur.equalsIgnoreCase(""))) {
120             currency = cur;
121             Log.i(LOG_TAG,
122                     "setConfigurationRepresentation: New value(currency): "
123                             + currency);
124         }
125         if (!(reg.equalsIgnoreCase(""))) {
126             region = reg;
127             Log.i(LOG_TAG,
128                     "setConfigurationRepresentation: New value(region): "
129                             + region);
130         }
131
132         Log.i(LOG_TAG, "setConfigurationRepresentation: exit");
133     }
134
135     public OcRepresentation getConfigurationRepresentation() {
136
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;
143     }
144
145     public String getUri() {
146         return configurationUri;
147     }
148
149     // For resetting the default values to configuration Resource
150     public void factoryReset() {
151
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");
158     }
159
160     // Deleting all the resources, that we have created using createResources()
161     public void deleteResource() {
162         try {
163             if (null != configurationHandle) {
164                 // Unregister the Configuration resource
165                 OcPlatform.unregisterResource(configurationHandle);
166             }
167
168         } catch (OcException e) {
169             Log.e(LOG_TAG, "OcException occured! " + e.toString());
170         }
171     }
172 }