5772cc2be0827108a6a5a1cebce1321206772e6e
[platform/upstream/iotivity.git] / service / simulator / java / eclipse-plugin / ServiceProviderPlugin / src / oic / simulator / serviceprovider / model / Resource.java
1 /*
2  * Copyright 2015 Samsung Electronics All Rights Reserved.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 package oic.simulator.serviceprovider.model;
18
19 import java.util.HashMap;
20 import java.util.HashSet;
21 import java.util.Map;
22 import java.util.Set;
23
24 import org.oic.simulator.SimulatorResourceModel;
25 import org.oic.simulator.server.Observer;
26 import org.oic.simulator.server.SimulatorResource;
27
28 public abstract class Resource {
29
30     // Java SDK object reference
31     SimulatorResource                           simulatorResource;
32     private SimulatorResourceModel              resourceModel;
33
34     private String                              resourceURI;
35     private String                              resourceName;
36     private Set<String>                         resourceTypes;
37     private Set<String>                         resourceInterfaces;
38     private boolean                             started;
39     private boolean                             observable;
40
41     private Set<Device>                         deviceMembership;
42
43     private Map<String, LocalResourceAttribute> attributes;
44
45     private Map<Integer, ObserverDetail>        observers;
46
47     public Resource() {
48         resourceTypes = new HashSet<String>();
49         resourceInterfaces = new HashSet<String>();
50         observers = new HashMap<Integer, ObserverDetail>();
51     }
52
53     public SimulatorResource getSimulatorResource() {
54         return simulatorResource;
55     }
56
57     public void setSimulatorResource(SimulatorResource simulatorResource) {
58         this.simulatorResource = simulatorResource;
59     }
60
61     public SimulatorResourceModel getResourceModel() {
62         return resourceModel;
63     }
64
65     public void setResourceModel(SimulatorResourceModel resourceModel) {
66         this.resourceModel = resourceModel;
67     }
68
69     public String getResourceURI() {
70         return resourceURI;
71     }
72
73     public void setResourceURI(String resourceURI) {
74         this.resourceURI = resourceURI;
75     }
76
77     public String getResourceName() {
78         return resourceName;
79     }
80
81     public void setResourceName(String resourceName) {
82         this.resourceName = resourceName;
83     }
84
85     public Set<String> getResourceTypes() {
86         return resourceTypes;
87     }
88
89     public void setResourceTypes(Set<String> resourceTypes) {
90         this.resourceTypes = resourceTypes;
91     }
92
93     public Set<String> getResourceInterfaces() {
94         return resourceInterfaces;
95     }
96
97     public void setResourceInterfaces(Set<String> resourceInterfaces) {
98         this.resourceInterfaces = resourceInterfaces;
99     }
100
101     public boolean isStarted() {
102         return started;
103     }
104
105     public void setStarted(boolean started) {
106         this.started = started;
107     }
108
109     public boolean isObservable() {
110         return observable;
111     }
112
113     public void setObservable(boolean observable) {
114         this.observable = observable;
115     }
116
117     public void addResourceType(String resType) {
118         if (null == resType) {
119             return;
120         }
121         if (null == resourceTypes) {
122             resourceTypes = new HashSet<String>();
123         }
124         resourceTypes.add(resType);
125     }
126
127     public void removeResourceType(String resType) {
128         if (null == resType || null == resourceTypes) {
129             return;
130         }
131         resourceTypes.remove(resType);
132     }
133
134     public boolean isResourceTypeExist(String resType) {
135         if (null == resType || null == resourceTypes) {
136             return false;
137         }
138         return resourceTypes.contains(resType);
139     }
140
141     public void addInterfaceType(String ifType) {
142         if (null == ifType) {
143             return;
144         }
145         if (null == resourceInterfaces) {
146             resourceInterfaces = new HashSet<String>();
147         }
148         resourceInterfaces.add(ifType);
149     }
150
151     public void removeInterfaceType(String ifType) {
152         if (null == ifType || null == resourceInterfaces) {
153             return;
154         }
155         resourceInterfaces.remove(ifType);
156     }
157
158     public boolean isInterfaceTypeExist(String ifType) {
159         if (null == ifType || null == resourceInterfaces) {
160             return false;
161         }
162         return resourceInterfaces.contains(ifType);
163     }
164
165     public Map<Integer, ObserverDetail> getObserver() {
166         return observers;
167     }
168
169     public void addObserverInfo(Observer observer) {
170         if (null == observer) {
171             return;
172         }
173         int id = observer.getId();
174         if (!observers.containsKey(id)) {
175             ObserverDetail obsDetail = new ObserverDetail();
176             obsDetail.setObserverInfo(observer);
177             observers.put(id, obsDetail);
178         }
179     }
180
181     public void removeObserverInfo(Observer observer) {
182         if (null == observer) {
183             return;
184         }
185         observers.remove(observer.getId());
186     }
187
188     public Set<Device> getDeviceMembership() {
189         return deviceMembership;
190     }
191
192     public void setDeviceMembership(Set<Device> deviceMembership) {
193         this.deviceMembership = deviceMembership;
194     }
195
196     public void addDeviceMembership(Device dev) {
197         if (null == dev) {
198             return;
199         }
200         if (null == deviceMembership) {
201             deviceMembership = new HashSet<Device>();
202         }
203         deviceMembership.add(dev);
204     }
205
206     public void addDeviceMembership(Set<Device> devices) {
207         if (null == devices) {
208             return;
209         }
210         if (null == deviceMembership) {
211             deviceMembership = new HashSet<Device>();
212         }
213         deviceMembership.addAll(devices);
214     }
215
216     public void removeDeviceMembership(Device dev) {
217         if (null == dev || null == deviceMembership) {
218             return;
219         }
220         deviceMembership.remove(dev);
221     }
222
223     public void removeDeviceMembership(Set<Device> devices) {
224         if (null == devices || null == deviceMembership) {
225             return;
226         }
227         deviceMembership.removeAll(devices);
228     }
229
230     public boolean isMemberOfAnyDevice() {
231         if (null == deviceMembership || deviceMembership.isEmpty()) {
232             return false;
233         }
234         return true;
235     }
236
237     public Map<String, LocalResourceAttribute> getResourceAttributes() {
238         return attributes;
239     }
240
241     public void setResourceAttributes(
242             Map<String, LocalResourceAttribute> attributes) {
243         this.attributes = attributes;
244     }
245
246     // Added for debugging purpose
247     public void printResourceInfo() {
248         System.out.println("Resource URI: " + getResourceURI());
249         System.out.println("Resource Name: " + getResourceName());
250         System.out.println("Resource types: " + getResourceTypes());
251         System.out.println("Resource Interfaces: " + getResourceInterfaces());
252         System.out.println("Resource Attributes:-");
253         /*
254          * if (null != resourceAttributesMap) { Iterator<String> attItr =
255          * resourceAttributesMap.keySet().iterator(); while (attItr.hasNext()) {
256          * resourceAttributesMap.get(attItr.next()) .printAttributeDetails();; }
257          * }
258          */
259     }
260 }