teichmann@5861: /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde teichmann@5861: * Software engineering by Intevation GmbH teichmann@5861: * teichmann@5993: * This file is Free Software under the GNU AGPL (>=v3) teichmann@5861: * and comes with ABSOLUTELY NO WARRANTY! Check out the teichmann@5993: * documentation coming with Dive4Elements River for details. teichmann@5861: */ teichmann@5861: 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() { teichmann@8069: StringBuilder sb = new StringBuilder(); raimund@2535: boolean first = true; raimund@2535: for (int i = 0; i < items.length; i++) { raimund@2535: if (!first) { teichmann@8069: sb.append(';'); teichmann@8069: } else { teichmann@8069: first = false; raimund@2535: } teichmann@8069: sb.append(items[i].getStringValue()); raimund@2535: } teichmann@8069: return sb.toString(); raimund@2535: } ingo@12: } ingo@12: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :