view artifacts/src/main/java/org/dive4elements/river/artifacts/common/ResultRow.java @ 9425:3f49835a00c3

Extended CrossSectionFacet so it may fetch different data from within the artifact result. Also allows to have acces to the potentially already computed artifact result via its normal computation cache.
author gernotbelger
date Fri, 17 Aug 2018 15:31:02 +0200
parents b4402594213b
children
line wrap: on
line source
/** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde
 * Software engineering by
 *  Björnsen Beratende Ingenieure GmbH
 *  Dr. Schumacher Ingenieurbüro für Wasser und Umwelt
 *
 * This file is Free Software under the GNU AGPL (>=v3)
 * and comes with ABSOLUTELY NO WARRANTY! Check out the
 * documentation coming with Dive4Elements River for details.
 */
package org.dive4elements.river.artifacts.common;

import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;

import org.dive4elements.artifacts.CallContext;

/**
 * Generic container for results that come in rows.
 *
 * @author Gernot Belger
 */
public class ResultRow implements Serializable {
    private static final long serialVersionUID = 1L;

    private final Map<IResultType, Object> values = new HashMap<>();

    public static ResultRow create() {
        return new ResultRow();
    }

    public static ResultRow create(final ResultRow src) {
        final ResultRow dst = create();
        dst.values.putAll(src.values);
        return dst;
    }

    protected ResultRow() {
    }

    public ResultRow putValue(final IResultType type, final Object value) {

        this.values.put(type, value);

        /* chain me */
        return this;
    }

    public String exportValue(final CallContext context, final IResultType type) {
        final Object value = this.values.get(type);
        return type.exportValue(context, value);
    }

    public double getDoubleValue(final IResultType type) {
        final Object value = this.values.get(type);
        return type.asDouble(value);
    }

    public Object getValue(final IResultType type) {
        return this.values.get(type);
    }
}

http://dive4elements.wald.intevation.org