gernotbelger@8948: /** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde gernotbelger@8948: * Software engineering by gernotbelger@8948: * Björnsen Beratende Ingenieure GmbH gernotbelger@8948: * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt gernotbelger@8948: * gernotbelger@8948: * This file is Free Software under the GNU AGPL (>=v3) gernotbelger@8948: * and comes with ABSOLUTELY NO WARRANTY! Check out the gernotbelger@8948: * documentation coming with Dive4Elements River for details. gernotbelger@8948: */ gernotbelger@8948: package org.dive4elements.river.artifacts.sinfo.common; gernotbelger@8948: gernotbelger@8948: import java.io.Serializable; gernotbelger@8948: import java.util.EnumMap; gernotbelger@8948: import java.util.Map; gernotbelger@8948: gernotbelger@8948: import org.dive4elements.artifacts.CallContext; gernotbelger@8948: gernotbelger@8948: /** gernotbelger@8948: * Generic container for results that come in rows. gernotbelger@8948: * gernotbelger@8948: * @author Gernot Belger gernotbelger@8948: */ gernotbelger@8948: public final class SInfoResultRow implements Serializable { gernotbelger@8948: private static final long serialVersionUID = 1L; gernotbelger@8948: gernotbelger@8948: private final Map values = new EnumMap<>(SInfoResultType.class); gernotbelger@8948: gernotbelger@8948: public static SInfoResultRow create() { gernotbelger@8948: return new SInfoResultRow(); gernotbelger@8948: } gernotbelger@8948: gernotbelger@8948: private SInfoResultRow() { gernotbelger@8948: } gernotbelger@8948: gernotbelger@8948: public SInfoResultRow putValue(final SInfoResultType type, final Object value) { gernotbelger@8948: gernotbelger@8948: this.values.put(type, value); gernotbelger@8948: gernotbelger@8948: /* chain me */ gernotbelger@8948: return this; gernotbelger@8948: } gernotbelger@8948: gernotbelger@8948: public String exportValue(final CallContext context, final SInfoResultType type) { gernotbelger@8948: final Object value = this.values.get(type); gernotbelger@8948: return type.exportValue(context, value); gernotbelger@8948: } gernotbelger@8948: gernotbelger@8948: public double getDoubleValue(final SInfoResultType type) { gernotbelger@8948: final Object value = this.values.get(type); gernotbelger@8948: return type.asDouble(value); gernotbelger@8948: } gernotbelger@8948: gernotbelger@8948: public Object getValue(final SInfoResultType type) { gernotbelger@8948: return this.values.get(type); gernotbelger@8948: } gernotbelger@8948: }