2 * Copyright 2015 Samsung Electronics All Rights Reserved.
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
17 package oic.simulator.serviceprovider.model;
19 import java.util.HashMap;
20 import java.util.HashSet;
24 import org.oic.simulator.SimulatorResourceModel;
25 import org.oic.simulator.server.Observer;
26 import org.oic.simulator.server.SimulatorResource;
28 public abstract class Resource {
30 // Java SDK object reference
31 SimulatorResource simulatorResource;
32 private SimulatorResourceModel resourceModel;
33 private ResourceRepresentation mResourceRepresentation;
35 private String resourceURI;
36 private String resourceName;
37 private Set<String> resourceTypes;
38 private Set<String> resourceInterfaces;
39 private boolean started;
40 private boolean observable;
42 private Set<Device> deviceMembership;
44 private Map<String, LocalResourceAttribute> attributes;
46 private Map<Integer, ObserverDetail> observers;
49 resourceTypes = new HashSet<String>();
50 resourceInterfaces = new HashSet<String>();
51 observers = new HashMap<Integer, ObserverDetail>();
54 public SimulatorResource getSimulatorResource() {
55 return simulatorResource;
58 public void setSimulatorResource(SimulatorResource simulatorResource) {
59 this.simulatorResource = simulatorResource;
62 public SimulatorResourceModel getResourceModel() {
66 public void setResourceModel(SimulatorResourceModel resourceModel) {
67 this.resourceModel = resourceModel;
70 public String getResourceURI() {
74 public void setResourceURI(String resourceURI) {
75 this.resourceURI = resourceURI;
78 public String getResourceName() {
82 public void setResourceName(String resourceName) {
83 this.resourceName = resourceName;
86 public Set<String> getResourceTypes() {
90 public void setResourceTypes(Set<String> resourceTypes) {
91 this.resourceTypes = resourceTypes;
94 public Set<String> getResourceInterfaces() {
95 return resourceInterfaces;
98 public void setResourceInterfaces(Set<String> resourceInterfaces) {
99 this.resourceInterfaces = resourceInterfaces;
102 public boolean isStarted() {
106 public void setStarted(boolean started) {
107 this.started = started;
110 public boolean isObservable() {
114 public void setObservable(boolean observable) {
115 this.observable = observable;
118 public void addResourceType(String resType) {
119 if (null == resType) {
122 if (null == resourceTypes) {
123 resourceTypes = new HashSet<String>();
125 resourceTypes.add(resType);
128 public void removeResourceType(String resType) {
129 if (null == resType || null == resourceTypes) {
132 resourceTypes.remove(resType);
135 public boolean isResourceTypeExist(String resType) {
136 if (null == resType || null == resourceTypes) {
139 return resourceTypes.contains(resType);
142 public void addInterfaceType(String ifType) {
143 if (null == ifType) {
146 if (null == resourceInterfaces) {
147 resourceInterfaces = new HashSet<String>();
149 resourceInterfaces.add(ifType);
152 public void removeInterfaceType(String ifType) {
153 if (null == ifType || null == resourceInterfaces) {
156 resourceInterfaces.remove(ifType);
159 public boolean isInterfaceTypeExist(String ifType) {
160 if (null == ifType || null == resourceInterfaces) {
163 return resourceInterfaces.contains(ifType);
166 public Map<Integer, ObserverDetail> getObserver() {
170 public void addObserverInfo(Observer observer) {
171 if (null == observer) {
174 int id = observer.getId();
175 if (!observers.containsKey(id)) {
176 ObserverDetail obsDetail = new ObserverDetail();
177 obsDetail.setObserverInfo(observer);
178 observers.put(id, obsDetail);
182 public void removeObserverInfo(Observer observer) {
183 if (null == observer) {
186 observers.remove(observer.getId());
189 public Set<Device> getDeviceMembership() {
190 return deviceMembership;
193 public void setDeviceMembership(Set<Device> deviceMembership) {
194 this.deviceMembership = deviceMembership;
197 public void addDeviceMembership(Device dev) {
201 if (null == deviceMembership) {
202 deviceMembership = new HashSet<Device>();
204 deviceMembership.add(dev);
207 public void addDeviceMembership(Set<Device> devices) {
208 if (null == devices) {
211 if (null == deviceMembership) {
212 deviceMembership = new HashSet<Device>();
214 deviceMembership.addAll(devices);
217 public void removeDeviceMembership(Device dev) {
218 if (null == dev || null == deviceMembership) {
221 deviceMembership.remove(dev);
224 public void removeDeviceMembership(Set<Device> devices) {
225 if (null == devices || null == deviceMembership) {
228 deviceMembership.removeAll(devices);
231 public boolean isMemberOfAnyDevice() {
232 if (null == deviceMembership || deviceMembership.isEmpty()) {
238 public Map<String, LocalResourceAttribute> getResourceAttributes() {
242 public void setResourceAttributes(
243 Map<String, LocalResourceAttribute> attributes) {
244 this.attributes = attributes;
247 public void setResourceRepresentation(SimulatorResourceModel resModel) {
248 if (mResourceRepresentation == null)
249 mResourceRepresentation = new ResourceRepresentation(resModel);
251 mResourceRepresentation.update(resModel);
254 public ResourceRepresentation getResourceRepresentation() {
255 return mResourceRepresentation;