teichmann@5835: package org.dive4elements.river.client.shared.model; ingo@12: ingo@12: /** ingo@12: * The default implementation of a {@link Data} item. This class just implements ingo@12: * constructors to create instances and the necessary methods of the interface. ingo@12: * ingo@12: * @author Ingo Weinzierl ingo@12: */ ingo@12: public class DefaultData implements Data { ingo@12: felix@1442: /** The label of this Data object. */ ingo@12: protected String label; ingo@12: felix@1442: /** The description. */ ingo@12: protected String description; ingo@12: felix@1442: /** The type. */ ingo@12: protected String type; ingo@12: felix@1442: /** The DataItems. */ ingo@12: protected DataItem[] items; ingo@12: felix@1442: /** The default DataItem. */ ingo@514: protected DataItem defaultItem; ingo@514: ingo@12: ingo@12: public DefaultData() { ingo@12: } ingo@12: ingo@12: ingo@12: /** ingo@12: * The default constructor to create new DefaultData objects. ingo@12: * ingo@12: * @param label The label. ingo@12: * @param description The description. ingo@12: * @param type The type. ingo@12: * @param items The DataItems. ingo@12: */ ingo@12: public DefaultData( ingo@22: String label, ingo@22: String description, ingo@22: String type, ingo@51: DataItem[] items) ingo@12: { ingo@514: this(label, description, type, items, null); ingo@514: } ingo@514: ingo@514: ingo@514: /** ingo@514: * The constructor to create new DefaultData objects with a default value. ingo@514: * ingo@514: * @param label The label. ingo@514: * @param description The description. ingo@514: * @param type The type. ingo@514: * @param items The DataItems. ingo@514: * @param defaultItem The default DataItem. ingo@514: */ ingo@514: public DefaultData( ingo@514: String label, ingo@514: String description, ingo@514: String type, ingo@514: DataItem[] items, ingo@514: DataItem defaultItem) ingo@514: { ingo@12: this.label = label; ingo@12: this.description = description; ingo@12: this.type = type; ingo@12: this.items = items; ingo@514: this.defaultItem = defaultItem; ingo@12: } ingo@12: ingo@12: ingo@12: public String getLabel() { ingo@12: return label; ingo@12: } ingo@12: ingo@12: ingo@12: public String getDescription() { ingo@12: return description; ingo@12: } ingo@12: ingo@12: ingo@12: public String getType() { ingo@12: return type; ingo@12: } ingo@12: ingo@12: ingo@12: public DataItem[] getItems() { ingo@12: return items; ingo@12: } ingo@514: ingo@514: ingo@514: public DataItem getDefault() { ingo@514: return defaultItem; ingo@514: } felix@1435: felix@1435: felix@1435: /** Conveniently create simplistic data. */ felix@1435: public static DefaultData createSimpleStringData( felix@1435: String name, felix@1435: String value felix@1435: ) { felix@1435: DefaultDataItem d = new DefaultDataItem(name, name, value); felix@1435: return new DefaultData(name, null, null, new DataItem[] {d}); felix@1435: } felix@1435: felix@1435: /** Conveniently create simplistic data array. */ felix@1435: public static Data[] createSimpleStringDataArray( felix@1435: String name, felix@1435: String value felix@1435: ) { felix@1435: DefaultDataItem d = new DefaultDataItem(name, name, value); felix@1435: return new Data[] felix@1435: { new DefaultData(name, null, null, new DataItem[] {d})}; felix@1435: } raimund@2535: raimund@2535: /** raimund@2535: * Returns the values as colon separated string. raimund@2535: * raimund@2535: * @return colon separated string. raimund@2535: */ raimund@2535: public String getStringValue() { raimund@2535: String data = ""; raimund@2535: boolean first = true; raimund@2535: for (int i = 0; i < items.length; i++) { raimund@2535: if (!first) { raimund@2535: data += ";"; raimund@2535: } raimund@2535: data += items[i].getStringValue(); raimund@2535: first = false; raimund@2535: } raimund@2535: return data; raimund@2535: } ingo@12: } ingo@12: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :