teichmann@5835: package org.dive4elements.river.client.shared.model; raimund@1439: christian@3859: import java.util.ArrayList; raimund@1439: import java.util.List; raimund@1439: raimund@1439: /** christian@3859: * A group of properties. raimund@1439: * @author Raimund Renkert raimund@1439: */ raimund@1503: public class PropertyGroup implements Property, Cloneable { raimund@1439: raimund@1439: /** The group name */ raimund@1439: protected String name; raimund@1439: raimund@1439: protected List properties; raimund@1439: raimund@1439: public PropertyGroup() { raimund@1439: } raimund@1439: raimund@1439: public PropertyGroup(String name) { raimund@1439: this.name = name; raimund@1439: } raimund@1439: raimund@1439: public PropertyGroup(String name, List properties) { raimund@1439: this.name = name; raimund@1439: this.properties = properties; raimund@1439: } raimund@1439: raimund@1439: public String getName() { raimund@1439: return this.name; raimund@1439: } raimund@1439: raimund@1439: public void setName(String name) { raimund@1439: this.name = name; raimund@1439: } raimund@1439: raimund@1439: public List getProperties() { raimund@1439: return this.properties; raimund@1439: } raimund@1439: raimund@1439: public void setProperties(List properties) { raimund@1439: this.properties = properties; raimund@1439: } raimund@1465: raimund@1465: public Property getPropertyByName(String name) { raimund@1465: for (int i = 0; i < properties.size(); i++) { raimund@1465: if (properties.get(i).getName().equals(name)) { raimund@1465: return properties.get(i); raimund@1465: } raimund@1465: } raimund@1465: return null; raimund@1465: } raimund@1503: christian@3859: @Override raimund@1503: public Object clone() { raimund@1503: PropertyGroup clone = new PropertyGroup(this.getName()); raimund@1503: List cloneList = new ArrayList(); raimund@1503: for(Property p: properties) { raimund@1503: cloneList.add((Property)p.clone()); raimund@1503: } raimund@1503: clone.setProperties(cloneList); raimund@1503: return clone; raimund@1503: } christian@3859: christian@3859: @Override christian@3859: public String toString() { christian@3859: StringBuilder buf = new StringBuilder(); christian@3859: christian@3859: for(Property p : properties) { christian@3859: buf.append(p.getName()); christian@3859: buf.append("="); christian@3859: if(p instanceof PropertySetting) { christian@3859: buf.append(((PropertySetting)p).getValue().toString()); christian@3859: } christian@3859: buf.append(" "); christian@3859: } christian@3859: christian@3859: return buf.toString(); christian@3859: } raimund@1439: }