tom@8858: /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde tom@8858: * Software engineering by Intevation GmbH tom@8858: * tom@8858: * This file is Free Software under the GNU AGPL (>=v3) tom@8858: * and comes with ABSOLUTELY NO WARRANTY! Check out the tom@8858: * documentation coming with Dive4Elements River for details. tom@8858: */ tom@8858: rrenkert@7821: package org.dive4elements.river.client.shared.model; rrenkert@7821: teichmann@8071: import java.util.Map; teichmann@8071: gernotbelger@9074: public class MultiAttributeData implements Data { rrenkert@7821: gernotbelger@9074: private static final long serialVersionUID = 1L; rrenkert@7821: rrenkert@7821: public static final String TYPE = "multiattribute"; rrenkert@7821: rrenkert@7821: protected String label; rrenkert@7821: protected String description; rrenkert@7821: teichmann@8071: protected Map> meta; teichmann@8071: rrenkert@7821: public DataItem[] opts; rrenkert@7821: rrenkert@7821: public MultiAttributeData() { rrenkert@7821: } rrenkert@7821: gernotbelger@9074: public MultiAttributeData(final String label, final String desc, final DataItem[] opts, final Map> meta) { gernotbelger@9074: this.label = label; rrenkert@7821: this.description = desc; gernotbelger@9074: this.opts = opts; gernotbelger@9074: this.meta = meta; rrenkert@7821: } rrenkert@7821: teichmann@8071: public Map> getMeta() { gernotbelger@9074: return this.meta; teichmann@8071: } rrenkert@7821: rrenkert@7821: /** rrenkert@7821: * Returns the label of the item. rrenkert@7821: * rrenkert@7821: * @return the label. rrenkert@7821: */ gernotbelger@9074: @Override rrenkert@7821: public String getLabel() { gernotbelger@9074: return this.label; rrenkert@7821: } rrenkert@7821: rrenkert@7821: /** rrenkert@7821: * Returns the description of the item. rrenkert@7821: * rrenkert@7821: * @return the description. rrenkert@7821: */ gernotbelger@9074: @Override rrenkert@7821: public String getDescription() { gernotbelger@9074: return this.description; rrenkert@7821: } rrenkert@7821: rrenkert@7821: /** rrenkert@7821: * Returns the type of the item. rrenkert@7821: * rrenkert@7821: * @return the type. rrenkert@7821: */ gernotbelger@9074: @Override rrenkert@7821: public String getType() { rrenkert@7821: return TYPE; rrenkert@7821: } rrenkert@7821: rrenkert@7821: /** rrenkert@7821: * Returns the data items which represent the allowed options for this Data. rrenkert@7821: * rrenkert@7821: * @return the allowed options as DataItem array. rrenkert@7821: */ gernotbelger@9074: @Override rrenkert@7821: public DataItem[] getItems() { gernotbelger@9074: return this.opts; rrenkert@7821: } rrenkert@7821: rrenkert@7821: /** rrenkert@7821: * @return always null. rrenkert@7821: */ gernotbelger@9074: @Override rrenkert@7821: public DataItem getDefault() { rrenkert@7821: return null; rrenkert@7821: } rrenkert@7821: rrenkert@7821: /** rrenkert@7821: * Returns the values as colon separated string. rrenkert@7821: * rrenkert@7821: * @return colon separated string. rrenkert@7821: */ gernotbelger@9074: @Override rrenkert@7821: public String getStringValue() { rrenkert@7821: String data = ""; rrenkert@7821: boolean first = true; gernotbelger@9074: for (final DataItem opt : this.opts) { rrenkert@7821: if (!first) { rrenkert@7821: data += ";"; rrenkert@7821: } gernotbelger@9074: data += opt.getStringValue(); rrenkert@7821: first = false; rrenkert@7821: } rrenkert@7821: return data; rrenkert@7821: } rrenkert@7821: }