| /******************************************************************************* |
| * Copyright (c) 2014, 2016 Orange. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License 2.0 |
| * which accompanies this distribution, and is available at |
| * https://www.eclipse.org/legal/epl-2.0/ |
| *******************************************************************************/ |
| package org.eclipse.om2m.sdt; |
| |
| import java.util.Collection; |
| import java.util.HashMap; |
| import java.util.Map; |
| |
| public class SubDevice extends Element { |
| |
| private Map<String, Module> modules; |
| |
| private Map<String, Property> properties; |
| |
| public SubDevice(final String id) { |
| super(id); |
| modules = new HashMap<String, Module>(); |
| properties = new HashMap<String, Property>(); |
| } |
| |
| public String getId() { |
| return getName(); |
| } |
| |
| public Collection<String> getModuleNames() { |
| return modules.keySet(); |
| } |
| |
| public Collection<Module> getModules() { |
| return modules.values(); |
| } |
| |
| public Module getModule(final String name) { |
| return modules.get(name); |
| } |
| |
| public void addModule(final Module module) { |
| if (modules.get(module.getName()) != null) |
| throw new IllegalArgumentException(); |
| this.modules.put(module.getName(), module); |
| } |
| |
| public void removeModule(final String name) { |
| this.modules.remove(name); |
| } |
| |
| public Collection<String> getPropertyNames() { |
| return properties.keySet(); |
| } |
| |
| public Collection<Property> getProperties() { |
| return properties.values(); |
| } |
| |
| public Property getProperty(final String name) { |
| return properties.get(name); |
| } |
| |
| public void addProperty(final Property property) { |
| this.properties.put(property.getName(), property); |
| } |
| |
| public void removeProperty(final String name) { |
| this.properties.remove(name); |
| } |
| |
| @Override |
| protected String prettyPrint(String t1) { |
| String t2 = t1 + "\t"; |
| StringBuffer ret = new StringBuffer(t1).append("<SubDevice id=\"") |
| .append(getId()).append("\">"); |
| if (getDoc() != null) ret.append("\n").append(t2).append(getDoc()); |
| prettyPrint(ret, properties.values(), "Properties", t2); |
| prettyPrint(ret, modules.values(), "Modules", t2); |
| return ret.append("\n").append(t1).append("</SubDevice>").toString(); |
| } |
| |
| } |