gernotbelger@9422: /** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde gernotbelger@9422: * Software engineering by gernotbelger@9422: * Björnsen Beratende Ingenieure GmbH gernotbelger@9422: * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt gernotbelger@9422: * gernotbelger@9422: * This file is Free Software under the GNU AGPL (>=v3) gernotbelger@9422: * and comes with ABSOLUTELY NO WARRANTY! Check out the gernotbelger@9422: * documentation coming with Dive4Elements River for details. gernotbelger@9422: */ gernotbelger@9422: package test.sinfo; gernotbelger@9422: gernotbelger@9570: import java.io.File; gernotbelger@9422: import java.io.IOException; gernotbelger@9422: gernotbelger@9422: import org.dive4elements.artifacts.httpclient.exceptions.ConnectionException; gernotbelger@9422: import org.dive4elements.river.client.shared.exceptions.ServerException; gernotbelger@9422: import org.dive4elements.river.client.shared.model.Data; gernotbelger@9422: import org.dive4elements.river.client.shared.model.DataItem; gernotbelger@9422: import org.dive4elements.river.client.shared.model.DefaultDataItem; gernotbelger@9422: import org.dive4elements.river.client.shared.model.StringOptionsData; gernotbelger@9422: gernotbelger@9422: import test.AbstractBerechnungsartenTester.River; gernotbelger@9422: import test.AbstractModuleRunner; gernotbelger@9422: import test.sinfo.SinfoBerechnungsartenTester.CalcMode; gernotbelger@9422: gernotbelger@9422: /** gernotbelger@9422: * @author Domenico Nardi Tironi gernotbelger@9422: * gernotbelger@9422: */ gernotbelger@9422: final class SinfoCollisionRunner extends AbstractModuleRunner { gernotbelger@9422: gernotbelger@9422: private final int[] years; gernotbelger@9422: private final String epochs; gernotbelger@9422: private boolean isYears; // cannot be final because of the ternary expression gernotbelger@9422: gernotbelger@9570: public SinfoCollisionRunner(final File testFolder, final double from, final double to, final River river, final int[] years, final String epochs) gernotbelger@9422: throws ConnectionException, ServerException { gernotbelger@9570: super(testFolder, AbstractModuleRunner.Infotype.sinfo, CalcMode.sinfo_calc_collision, from, to, river); gernotbelger@9422: this.years = years; gernotbelger@9422: this.epochs = epochs; gernotbelger@9422: this.isYears = (years != null) ? (this.isYears = true) : (this.isYears = false); gernotbelger@9422: } gernotbelger@9422: gernotbelger@9422: @Override gernotbelger@9567: public void runTest() throws ServerException, IOException { gernotbelger@9422: /* Select River */ gernotbelger@9422: super.selectRiver(); gernotbelger@9422: gernotbelger@9422: /* Select ICalcMode */ gernotbelger@9422: super.selectCalcMode(); gernotbelger@9422: gernotbelger@9422: super.feed(new Data[] { gernotbelger@9422: new StringOptionsData("ld_mode", "ld_mode", new DataItem[] { new DefaultDataItem("distance_only", "distance_only", "distance_only") }) }); // ggf gernotbelger@9422: gernotbelger@9422: /* Select Range */ gernotbelger@9422: super.selectRange(); gernotbelger@9422: gernotbelger@9422: /* Year or Epoch? eigentlich vermutlich überflüssig */ gernotbelger@9422: final String yeSelectStr = this.isYears ? "state.sinfo.year" : "state.sinfo.epoch"; gernotbelger@9422: final Data yearEpochSelect = new StringOptionsData("ye_select", "ye_select", gernotbelger@9422: new DataItem[] { new DefaultDataItem(yeSelectStr, yeSelectStr, yeSelectStr) }); gernotbelger@9422: feedAndGo(new Data[] { yearEpochSelect }, 0); gernotbelger@9422: gernotbelger@9422: if (this.years != null) { gernotbelger@9422: final StringBuilder sb = new StringBuilder(); gernotbelger@9422: for (final int value : this.years) { gernotbelger@9422: sb.append(String.valueOf(value)); gernotbelger@9422: sb.append(" "); gernotbelger@9422: } gernotbelger@9422: final Data yearsData = new StringOptionsData("years", "years", new DataItem[] { new DefaultDataItem("years", "years", sb.toString()) }); gernotbelger@9422: feedAndGo(new Data[] { yearsData }, 0); gernotbelger@9422: } else if (this.epochs != null) { gernotbelger@9422: final Data data = new StringOptionsData("epochs", "epochs", new DataItem[] { new DefaultDataItem("epochs", "epochs", this.epochs) }); gernotbelger@9422: feedAndGo(new Data[] { data }, 0); gernotbelger@9422: } gernotbelger@9422: describeCollection(); gernotbelger@9422: gernotbelger@9567: super.runTests(); gernotbelger@9422: } gernotbelger@9422: }