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;
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;
41 private Set<Device> deviceMembership;
43 private Map<String, LocalResourceAttribute> attributes;
45 private Map<Integer, ObserverDetail> observers;
48 resourceTypes = new HashSet<String>();
49 resourceInterfaces = new HashSet<String>();
50 observers = new HashMap<Integer, ObserverDetail>();
53 public SimulatorResource getSimulatorResource() {
54 return simulatorResource;
57 public void setSimulatorResource(SimulatorResource simulatorResource) {
58 this.simulatorResource = simulatorResource;
61 public SimulatorResourceModel getResourceModel() {
65 public void setResourceModel(SimulatorResourceModel resourceModel) {
66 this.resourceModel = resourceModel;
69 public String getResourceURI() {
73 public void setResourceURI(String resourceURI) {
74 this.resourceURI = resourceURI;
77 public String getResourceName() {
81 public void setResourceName(String resourceName) {
82 this.resourceName = resourceName;
85 public Set<String> getResourceTypes() {
89 public void setResourceTypes(Set<String> resourceTypes) {
90 this.resourceTypes = resourceTypes;
93 public Set<String> getResourceInterfaces() {
94 return resourceInterfaces;
97 public void setResourceInterfaces(Set<String> resourceInterfaces) {
98 this.resourceInterfaces = resourceInterfaces;
101 public boolean isStarted() {
105 public void setStarted(boolean started) {
106 this.started = started;
109 public boolean isObservable() {
113 public void setObservable(boolean observable) {
114 this.observable = observable;
117 public void addResourceType(String resType) {
118 if (null == resType) {
121 if (null == resourceTypes) {
122 resourceTypes = new HashSet<String>();
124 resourceTypes.add(resType);
127 public void removeResourceType(String resType) {
128 if (null == resType || null == resourceTypes) {
131 resourceTypes.remove(resType);
134 public boolean isResourceTypeExist(String resType) {
135 if (null == resType || null == resourceTypes) {
138 return resourceTypes.contains(resType);
141 public void addInterfaceType(String ifType) {
142 if (null == ifType) {
145 if (null == resourceInterfaces) {
146 resourceInterfaces = new HashSet<String>();
148 resourceInterfaces.add(ifType);
151 public void removeInterfaceType(String ifType) {
152 if (null == ifType || null == resourceInterfaces) {
155 resourceInterfaces.remove(ifType);
158 public boolean isInterfaceTypeExist(String ifType) {
159 if (null == ifType || null == resourceInterfaces) {
162 return resourceInterfaces.contains(ifType);
165 public Map<Integer, ObserverDetail> getObserver() {
169 public void addObserverInfo(Observer observer) {
170 if (null == observer) {
173 int id = observer.getId();
174 if (!observers.containsKey(id)) {
175 ObserverDetail obsDetail = new ObserverDetail();
176 obsDetail.setObserverInfo(observer);
177 observers.put(id, obsDetail);
181 public void removeObserverInfo(Observer observer) {
182 if (null == observer) {
185 observers.remove(observer.getId());
188 public Set<Device> getDeviceMembership() {
189 return deviceMembership;
192 public void setDeviceMembership(Set<Device> deviceMembership) {
193 this.deviceMembership = deviceMembership;
196 public void addDeviceMembership(Device dev) {
200 if (null == deviceMembership) {
201 deviceMembership = new HashSet<Device>();
203 deviceMembership.add(dev);
206 public void addDeviceMembership(Set<Device> devices) {
207 if (null == devices) {
210 if (null == deviceMembership) {
211 deviceMembership = new HashSet<Device>();
213 deviceMembership.addAll(devices);
216 public void removeDeviceMembership(Device dev) {
217 if (null == dev || null == deviceMembership) {
220 deviceMembership.remove(dev);
223 public void removeDeviceMembership(Set<Device> devices) {
224 if (null == devices || null == deviceMembership) {
227 deviceMembership.removeAll(devices);
230 public boolean isMemberOfAnyDevice() {
231 if (null == deviceMembership || deviceMembership.isEmpty()) {
237 public Map<String, LocalResourceAttribute> getResourceAttributes() {
241 public void setResourceAttributes(
242 Map<String, LocalResourceAttribute> attributes) {
243 this.attributes = attributes;
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:-");
254 * if (null != resourceAttributesMap) { Iterator<String> attItr =
255 * resourceAttributesMap.keySet().iterator(); while (attItr.hasNext()) {
256 * resourceAttributesMap.get(attItr.next()) .printAttributeDetails();; }