mschaefer@9450: /** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde mschaefer@9450: * Software engineering by mschaefer@9450: * Björnsen Beratende Ingenieure GmbH mschaefer@9450: * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt mschaefer@9450: * mschaefer@9450: * This file is Free Software under the GNU AGPL (>=v3) mschaefer@9450: * and comes with ABSOLUTELY NO WARRANTY! Check out the mschaefer@9450: * documentation coming with Dive4Elements River for details. mschaefer@9450: */ mschaefer@9450: package org.dive4elements.river.artifacts.bundu.bezugswst; mschaefer@9450: mschaefer@9450: import java.util.Collection; mschaefer@9450: import java.util.Date; mschaefer@9450: mschaefer@9450: import org.dive4elements.artifactdatabase.data.DefaultStateData; mschaefer@9450: import org.dive4elements.artifactdatabase.data.StateData; mschaefer@9450: import org.dive4elements.river.artifacts.D4EArtifact; mschaefer@9450: mschaefer@9450: /** mschaefer@9450: * Wrapper around an (bundu) artifact to be extended and used for calculations that expect a MinfoArtifact mschaefer@9450: * (BedQualityCalculation) mschaefer@9450: * mschaefer@9450: * @author Matthias Schäfer mschaefer@9450: */ mschaefer@9450: public final class BunduMinfoArtifactWrapper extends D4EArtifact { mschaefer@9450: mschaefer@9450: private static final long serialVersionUID = 1L; mschaefer@9450: mschaefer@9450: public BunduMinfoArtifactWrapper(final D4EArtifact dataSource, final Date startDay, final Date endDay) { mschaefer@9450: mschaefer@9450: final Collection allData = dataSource.getAllData(); mschaefer@9450: for (final StateData stateData : allData) { mschaefer@9450: mschaefer@9450: final DefaultStateData clonedData = new DefaultStateData(); mschaefer@9450: clonedData.set(stateData); mschaefer@9450: mschaefer@9450: addData(clonedData.getName(), clonedData); mschaefer@9450: } mschaefer@9450: mschaefer@9450: addStringData("calculation_mode", "calc.bed.quality"); mschaefer@9450: addStringData("bed_diameter", "d50"); // REMARK we don't need any calculation for d50 but the BedQualityCalculation must have at least one diameter mschaefer@9450: addStringData("periods", Long.toString(startDay.getTime()) + "," + Long.toString(endDay.getTime())); mschaefer@9450: } mschaefer@9450: }