view artifacts/src/main/java/org/dive4elements/river/artifacts/model/fixings/ColumnCache.java @ 9646:0380717105ba

Implemented alternative fitting strategy for Log-Linear function.
author Gernot Belger <g.belger@bjoernsen.de>
date Mon, 02 Dec 2019 17:56:15 +0100
parents 9744ce3c3853
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.model.fixings;

import java.util.HashMap;
import java.util.Map;

/**
 * Helper class to find the data belonging to meta info more quickly.
 */
class ColumnCache {

    private final Map<Integer, FixingColumnWithData> columns;

    public ColumnCache() {
        this.columns = new HashMap<>();
    }

    public FixingColumnWithData getColumn(final FixingColumn meta) {

        final Integer key = meta.getId();
        final FixingColumnWithData column = this.columns.get(key);
        if (column != null)
            return column;

        final FixingColumnData data = FixingsColumnFactory.getInstance().getColumnData(meta);
        if (data == null)
            return null;

        final FixingColumnWithData newColumn = new FixingColumnWithData(meta, data, this.columns.size());
        this.columns.put(key, newColumn);
        return newColumn;
    }
}

http://dive4elements.wald.intevation.org