sascha@3415: package de.intevation.flys.artifacts.model.fixings; sascha@3415: raimund@3610: import java.util.Date; raimund@3610: import java.util.TreeSet; raimund@3610: raimund@3610: import org.apache.log4j.Logger; raimund@3610: sascha@3415: import de.intevation.flys.artifacts.model.Parameters; sascha@3415: sascha@3415: import de.intevation.flys.utils.KMIndex; sascha@3415: sascha@3415: public class FixAnalysisResult sascha@3450: extends FixResult sascha@3415: { sascha@3415: protected KMIndex analysisPeriods; sascha@3415: sascha@3415: public FixAnalysisResult() { sascha@3415: } sascha@3415: sascha@3415: public FixAnalysisResult( sascha@3415: Parameters parameters, sascha@3415: KMIndex referenced, sascha@3415: KMIndex outliers, sascha@3415: KMIndex analysisPeriods sascha@3415: ) { sascha@3450: super(parameters, referenced, outliers); sascha@3415: this.analysisPeriods = analysisPeriods; sascha@3415: } sascha@3415: sascha@3415: public int getUsedSectorsInAnalysisPeriods() { sascha@3415: int result = 0; sascha@3415: for (KMIndex.Entry entry: analysisPeriods) { sascha@3415: for (AnalysisPeriod period: entry.getValue()) { sascha@3415: for (int i = 0; i < 4; ++i) { sascha@3415: result |= period.getQSectorAverage(i) != null sascha@3415: ? (1 << i) sascha@3415: : 0; sascha@3415: } sascha@3415: // XXX: Stop early on result == ~(~0 << 4)) ? sascha@3415: } sascha@3415: } sascha@3415: return result; sascha@3415: } sascha@3415: raimund@3610: public TreeSet getReferenceEventsDates() { raimund@3610: TreeSet dates = new TreeSet(); raimund@3610: for (KMIndex.Entry entry: referenced) { raimund@3610: for (int i = 0; i < entry.getValue().length; i++) { raimund@3610: QWD qwd = entry.getValue()[i]; raimund@3610: dates.add(qwd.date); raimund@3610: } raimund@3610: } raimund@3610: return dates; raimund@3610: } raimund@3610: raimund@3610: public TreeSet getAnalysisEventsDates(int analysisPeriod) { raimund@3610: TreeSet dates = new TreeSet(); raimund@3610: for (KMIndex.Entry entry: analysisPeriods) { raimund@3610: AnalysisPeriod period = entry.getValue()[analysisPeriod]; raimund@3610: for (int i = 0; i < period.qwds.length; i++) { raimund@3610: QWD qwd = period.qwds[i]; raimund@3610: dates.add(qwd.date); raimund@3610: } raimund@3610: } raimund@3610: return dates; raimund@3610: } raimund@3610: sascha@3415: public KMIndex getAnalysisPeriods() { sascha@3415: return analysisPeriods; sascha@3415: } sascha@3415: sascha@3415: public void setAnalysisPeriods(KMIndex analysisPeriods) { sascha@3415: this.analysisPeriods = analysisPeriods; sascha@3415: } sascha@3415: } sascha@3415: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :