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@3450: teichmann@6877: import org.apache.log4j.Logger; teichmann@5831: import org.dive4elements.river.artifacts.model.Parameters; sascha@3450: teichmann@5831: import org.dive4elements.river.utils.KMIndex; sascha@3450: sascha@3450: import java.io.Serializable; teichmann@6877: import java.util.Collection; teichmann@6877: import java.util.Date; teichmann@6877: import java.util.TreeMap; teichmann@6877: import java.util.TreeSet; sascha@3450: sascha@3450: public class FixResult sascha@3450: implements Serializable sascha@3450: { teichmann@6877: private static Logger log = teichmann@6877: Logger.getLogger(FixResult.class); teichmann@6877: sascha@3450: protected Parameters parameters; sascha@3450: protected KMIndex referenced; sascha@3729: protected KMIndex outliers; sascha@3450: sascha@3450: public FixResult() { sascha@3450: } sascha@3450: sascha@3450: public FixResult( sascha@3450: Parameters parameters, sascha@3450: KMIndex referenced, sascha@3729: KMIndex outliers sascha@3450: ) { sascha@3450: this.parameters = parameters; sascha@3450: this.referenced = referenced; sascha@3450: this.outliers = outliers; sascha@3450: } sascha@3450: sascha@3450: public KMIndex getReferenced() { sascha@3450: return referenced; sascha@3450: } sascha@3450: sascha@3450: public void setReferenced(KMIndex referenced) { sascha@3450: this.referenced = referenced; sascha@3450: } sascha@3450: teichmann@6877: public void makeReferenceEventsDatesUnique() { teichmann@6877: DateUniqueMaker dum = new DateUniqueMaker(); teichmann@6877: for (KMIndex.Entry entry: referenced) { teichmann@6877: for (QWD ref: entry.getValue()) { teichmann@6877: dum.makeUnique(ref); teichmann@6877: } teichmann@6877: } teichmann@6877: } teichmann@6877: teichmann@6877: public Collection getReferenceEventsIndices() { teichmann@6877: TreeMap dates = new TreeMap(); teichmann@6877: for (KMIndex.Entry entry: referenced) { teichmann@6877: for (QWD value: entry.getValue()) { teichmann@6877: dates.put(value.date, value.index); teichmann@6877: } teichmann@6877: } teichmann@6877: return dates.values(); teichmann@6877: } teichmann@6877: teichmann@6877: public void remapReferenceIndicesToRank() { teichmann@6891: RankRemapper remapper = new RankRemapper(); teichmann@6891: for (Integer idx: getReferenceEventsIndices()) { teichmann@6891: remapper.toMap(idx); teichmann@6877: } teichmann@6877: for (KMIndex.Entry entry: referenced) { teichmann@6877: for (QWD value: entry.getValue()) { teichmann@6891: remapper.remap(value); teichmann@6877: } teichmann@6877: } teichmann@6877: } teichmann@6877: teichmann@6877: public Collection getReferenceEventsDates() { teichmann@6877: TreeSet dates = new TreeSet(); teichmann@6877: for (KMIndex.Entry entry: referenced) { teichmann@6877: for (QWD qwd: entry.getValue()) { teichmann@6877: dates.add(qwd.date); teichmann@6877: } teichmann@6877: } teichmann@6877: return dates; teichmann@6877: } teichmann@6877: teichmann@6877: sascha@3729: public KMIndex getOutliers() { sascha@3450: return outliers; sascha@3450: } sascha@3450: sascha@3729: public void setOutliers(KMIndex outliers) { sascha@3450: this.outliers = outliers; sascha@3450: } sascha@3450: sascha@3450: public Parameters getParameters() { sascha@3450: return parameters; sascha@3450: } sascha@3450: sascha@3450: public void setParameters(Parameters parameters) { sascha@3450: this.parameters = parameters; sascha@3450: } sascha@3450: } sascha@3450: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :