teichmann@5863: /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde teichmann@5863: * Software engineering by Intevation GmbH teichmann@5863: * teichmann@5994: * This file is Free Software under the GNU AGPL (>=v3) teichmann@5863: * and comes with ABSOLUTELY NO WARRANTY! Check out the teichmann@5994: * documentation coming with Dive4Elements River for details. teichmann@5863: */ teichmann@5863: teichmann@5831: package org.dive4elements.river.artifacts.model.fixings; sascha@3415: teichmann@5831: import org.dive4elements.river.artifacts.model.Parameters; teichmann@5831: import org.dive4elements.river.utils.KMIndex; sascha@3415: gernotbelger@9415: public class FixAnalysisResult extends FixResult { teichmann@6875: gernotbelger@9415: private static final long serialVersionUID = 1L; sascha@3415: gernotbelger@9415: private final KMIndex analysisKmPeriods; gernotbelger@9415: gernotbelger@9415: private final AnalysisPeriodEventResults analysisEventResults; gernotbelger@9415: gernotbelger@9415: public FixAnalysisResult(final Parameters parameters, final FixResultColumns fixResultColumns, final KMIndex analysisKmPeriods, gernotbelger@9415: final AnalysisPeriodEventResults analysisEventResults) { gernotbelger@9415: super(parameters, fixResultColumns); gernotbelger@9415: gernotbelger@9415: this.analysisKmPeriods = analysisKmPeriods; gernotbelger@9415: this.analysisEventResults = analysisEventResults; sascha@3415: } sascha@3415: gernotbelger@9415: public final int getUsedSectorsInAnalysisPeriods() { sascha@3415: int result = 0; gernotbelger@9415: for (final KMIndex.Entry entry : this.analysisKmPeriods) { gernotbelger@9415: for (final AnalysisPeriod period : entry.getValue()) { sascha@3415: for (int i = 0; i < 4; ++i) { gernotbelger@9415: result |= period.getQSectorAverage(i) != null ? (1 << i) : 0; sascha@3415: } sascha@3415: // XXX: Stop early on result == ~(~0 << 4)) ? sascha@3415: } sascha@3415: } sascha@3415: return result; sascha@3415: } sascha@3415: gernotbelger@9415: public final KMIndex getAnalysisPeriods() { gernotbelger@9415: return this.analysisKmPeriods; raimund@3610: } raimund@3610: gernotbelger@9415: public AnalysisPeriodEventResults getAnalysisEventResults() { gernotbelger@9415: return this.analysisEventResults; teichmann@6891: } gernotbelger@9415: }