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