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.states.minfo; rrenkert@4220: rrenkert@4372: import java.util.ArrayList; rrenkert@6392: import java.util.Date; rrenkert@4372: import java.util.List; rrenkert@4372: rrenkert@4372: import org.apache.log4j.Logger; teichmann@5831: import org.dive4elements.artifactdatabase.state.Facet; rrenkert@6361: import org.dive4elements.artifactdatabase.state.FacetActivity; rrenkert@6361: import org.dive4elements.artifacts.Artifact; teichmann@5831: import org.dive4elements.artifacts.CallContext; teichmann@5831: import org.dive4elements.artifacts.CallMeta; teichmann@5867: import org.dive4elements.river.artifacts.D4EArtifact; teichmann@5831: import org.dive4elements.river.artifacts.access.SedimentLoadAccess; teichmann@5831: import org.dive4elements.river.artifacts.model.CalculationResult; teichmann@5831: import org.dive4elements.river.artifacts.model.FacetTypes; teichmann@5831: import org.dive4elements.river.artifacts.model.ReportFacet; rrenkert@6392: import org.dive4elements.river.artifacts.model.minfo.SedimentLoad; teichmann@5831: import org.dive4elements.river.artifacts.model.minfo.SedimentLoadCalculation; teichmann@5831: import org.dive4elements.river.artifacts.model.minfo.SedimentLoadFacet; rrenkert@6392: import org.dive4elements.river.artifacts.model.minfo.SedimentLoadFactory; teichmann@5831: import org.dive4elements.river.artifacts.model.minfo.SedimentLoadResult; rrenkert@6392: import org.dive4elements.river.artifacts.model.minfo.SedimentLoadUnknownFacet; teichmann@5831: import org.dive4elements.river.artifacts.resources.Resources; teichmann@5831: import org.dive4elements.river.artifacts.states.DefaultState; rrenkert@6392: import org.dive4elements.river.utils.DateGuesser; rrenkert@4220: rrenkert@4220: rrenkert@4220: public class SedimentLoadCalculate rrenkert@4220: extends DefaultState teichmann@4736: implements FacetTypes rrenkert@4220: { rrenkert@4220: rrenkert@4372: private static final long serialVersionUID = 1L; rrenkert@4372: rrenkert@4372: private static final Logger logger = Logger rrenkert@4372: .getLogger(SedimentLoadCalculate.class); rrenkert@4372: rrenkert@4372: public static final String I18N_FACET_SEDIMENTLOAD_COARSE = "facet.sedimentload.coarse"; rrenkert@4372: public static final String I18N_FACET_SEDIMENTLOAD_SAND = "facet.sedimentload.sand"; rrenkert@4372: public static final String I18N_FACET_SEDIMENTLOAD_FINE_MIDDLE = "facet.sedimentload.fine_middle"; rrenkert@4372: public static final String I18N_FACET_SEDIMENTLOAD_SUSPSAND = "facet.sedimentload.susp_sand"; rrenkert@4372: public static final String I18N_FACET_SEDIMENTLOAD_SUSPSANDBED = "facet.sediemntload.susp_sand_bed"; rrenkert@4372: public static final String I18N_FACET_SEDIMENTLOAD_SUSPSEDIMENT = "facet.sedimentload.susp_sediment"; rrenkert@4546: public static final String I18N_FACET_SEDIMENTLOAD_TOTAL_LOAD = "facet.sedimentload.total_load"; rrenkert@4372: public static final String I18N_FACET_SEDIMENTLOAD_TOTAL = "facet.sedimentload.total"; rrenkert@4372: rrenkert@6361: static { rrenkert@6361: // Active/deactivate facets. rrenkert@6361: FacetActivity.Registry.getInstance().register( rrenkert@6361: "minfo", rrenkert@6361: new FacetActivity() { rrenkert@6361: @Override rrenkert@6361: public Boolean isInitialActive( rrenkert@6361: Artifact artifact, rrenkert@6361: Facet facet, rrenkert@6361: String output rrenkert@6361: ) { rrenkert@6361: String name = facet.getName(); rrenkert@6361: if (name.equals(SEDIMENT_LOAD_COARSE) || rrenkert@6361: name.equals(SEDIMENT_LOAD_FINEMIDDLE) || rrenkert@6361: name.equals(SEDIMENT_LOAD_SAND) || rrenkert@6361: name.equals(SEDIMENT_LOAD_SUSP_SAND) || rrenkert@6361: name.equals(SEDIMENT_LOAD_SUSP_SEDIMENT) || rrenkert@6361: name.equals(SEDIMENT_LOAD_SUSP_SAND_BED)){ rrenkert@6361: return Boolean.FALSE; rrenkert@6361: } felix@6662: else if (name.equals(SEDIMENT_LOAD_UNKNOWN)) { rrenkert@6392: D4EArtifact d4e = (D4EArtifact)artifact; rrenkert@6392: SedimentLoadUnknownFacet f = rrenkert@6392: (SedimentLoadUnknownFacet) rrenkert@6392: d4e.getNativeFacet(facet, null); rrenkert@6392: SedimentLoad load = rrenkert@6392: (SedimentLoad)f.getData(artifact, null); rrenkert@6392: SedimentLoadAccess access = rrenkert@6392: new SedimentLoadAccess(d4e); rrenkert@6392: List dates = new ArrayList(); rrenkert@6392: if (access.getYearEpoch().equals("year")) { rrenkert@6392: dates.add(access.getPeriod()); rrenkert@6392: } rrenkert@6392: else { rrenkert@6392: int[][] epochs = access.getEpochs(); rrenkert@6392: for (int i = 0; i < epochs.length; i++) { rrenkert@6392: dates.add(epochs[i]); rrenkert@6392: } rrenkert@6392: } rrenkert@6392: for (int[] date: dates) { rrenkert@6392: try { rrenkert@6392: Date s = rrenkert@6392: DateGuesser.guessDate(String.valueOf(date[0])); rrenkert@6392: Date e = rrenkert@6392: DateGuesser.guessDate(String.valueOf(date[1])); rrenkert@6392: if (!(s.after(load.getEnd()) || rrenkert@6392: e.before(load.getStart()))) { rrenkert@6392: return Boolean.TRUE; rrenkert@6392: } rrenkert@6392: } rrenkert@6392: catch (IllegalArgumentException iae) { rrenkert@6392: return Boolean.FALSE; rrenkert@6392: } rrenkert@6392: } rrenkert@6392: return Boolean.FALSE; rrenkert@6392: } rrenkert@6361: else { rrenkert@6361: return null; rrenkert@6361: } rrenkert@6361: } rrenkert@6361: }); rrenkert@6361: } rrenkert@6361: rrenkert@4372: @Override teichmann@5867: public Object computeAdvance(D4EArtifact artifact, String hash, rrenkert@4372: CallContext context, List facets, Object old) { rrenkert@4372: logger.debug("SedimentLoadCalculate.computeAdvance"); rrenkert@4372: rrenkert@4372: List newFacets = new ArrayList(); rrenkert@4372: teichmann@6101: SedimentLoadAccess access = new SedimentLoadAccess(artifact); rrenkert@4372: rrenkert@4372: CalculationResult res = old instanceof CalculationResult ? (CalculationResult) old rrenkert@4372: : new SedimentLoadCalculation().calculate(access); rrenkert@4372: rrenkert@4372: if (facets == null || res == null) { rrenkert@4372: return res; rrenkert@4372: } rrenkert@4372: rrenkert@4372: SedimentLoadResult[] results = (SedimentLoadResult[]) res.getData(); rrenkert@4372: rrenkert@4372: if (results == null || results.length == 0) { rrenkert@4372: logger.warn("Calculation computed no results!"); rrenkert@4372: return res; rrenkert@4372: } rrenkert@4372: rrenkert@6392: String river = access.getRiver(); rrenkert@6392: SedimentLoad[] unknown = felix@6665: SedimentLoadFactory.getSedimentLoadUnknown(river, access.getUnit().replace("_per_","/")); rrenkert@6392: rrenkert@4372: String type = access.getYearEpoch(); rrenkert@4372: if (type.equals("year")) { rrenkert@4372: generateYearFacets(context, newFacets, results, getID(), hash); rrenkert@4372: } rrenkert@4372: else if (type.equals("epoch")) { rrenkert@4372: generateEpochFacets(context, newFacets, results, getID(), hash); rrenkert@4372: } rrenkert@4372: else if (type.equals("off_epoch")) { rrenkert@4372: generateOffEpochFacets(context, newFacets, results, getID(), hash); rrenkert@4372: } rrenkert@4372: logger.debug("Created " + newFacets.size() + " new Facets."); rrenkert@4519: if (res.getReport().hasProblems()) { rrenkert@4519: newFacets.add(new ReportFacet(ComputeType.ADVANCE, hash, id)); rrenkert@4519: } rrenkert@6392: rrenkert@6392: for (int i = 0; i < unknown.length; i++) { rrenkert@6392: newFacets.add(new SedimentLoadUnknownFacet( rrenkert@6392: i, felix@6663: SEDIMENT_LOAD_UNKNOWN, rrenkert@6392: unknown[i].getDescription(), rrenkert@6392: ComputeType.ADVANCE, rrenkert@6392: getID(), rrenkert@6392: hash)); rrenkert@6392: } rrenkert@4372: facets.addAll(newFacets); rrenkert@4372: rrenkert@4372: return res; rrenkert@4372: } rrenkert@4372: rrenkert@4372: protected void generateYearFacets(CallContext context, List newFacets, rrenkert@4372: SedimentLoadResult[] results, String stateId, String hash) { rrenkert@4372: logger.debug("SedimentLoadCalculate.generateFacets"); rrenkert@4372: rrenkert@4372: CallMeta meta = context.getMeta(); rrenkert@4372: rrenkert@4372: // newFacets.add(new DataFacet(CSV, "CSV data", ComputeType.ADVANCE, hash, id)); rrenkert@4372: for (int idx = 0; idx < results.length; idx++) { rrenkert@4372: SedimentLoadResult res = results[idx]; rrenkert@4372: if (res.hasCoarseData()) { rrenkert@4372: newFacets.add(new SedimentLoadFacet( rrenkert@4372: idx, rrenkert@4372: SEDIMENT_LOAD_COARSE, rrenkert@4372: Resources.getMsg( rrenkert@4372: meta, rrenkert@4372: I18N_FACET_SEDIMENTLOAD_COARSE, rrenkert@4372: I18N_FACET_SEDIMENTLOAD_COARSE) + rrenkert@4372: " - " + res.getStartYear(), rrenkert@4372: ComputeType.ADVANCE, rrenkert@4372: stateId, rrenkert@4372: hash)); rrenkert@4372: } rrenkert@4372: if (res.hasSandData()) { rrenkert@4372: newFacets.add(new SedimentLoadFacet( rrenkert@4372: idx, rrenkert@4372: SEDIMENT_LOAD_SAND, rrenkert@4372: Resources.getMsg( rrenkert@4372: meta, rrenkert@4372: I18N_FACET_SEDIMENTLOAD_SAND, rrenkert@4372: I18N_FACET_SEDIMENTLOAD_SAND) + rrenkert@4372: " - " + res.getStartYear(), rrenkert@4372: ComputeType.ADVANCE, rrenkert@4372: stateId, rrenkert@4372: hash)); rrenkert@4372: } rrenkert@4372: if (res.hasFineMiddleData()) { rrenkert@4372: newFacets.add(new SedimentLoadFacet( rrenkert@4372: idx, rrenkert@4372: SEDIMENT_LOAD_FINEMIDDLE, rrenkert@4372: Resources.getMsg( rrenkert@4372: meta, rrenkert@4372: I18N_FACET_SEDIMENTLOAD_FINE_MIDDLE, rrenkert@4372: I18N_FACET_SEDIMENTLOAD_FINE_MIDDLE) + rrenkert@4372: " - " + res.getStartYear(), rrenkert@4372: ComputeType.ADVANCE, rrenkert@4372: stateId, rrenkert@4372: hash)); rrenkert@4372: } rrenkert@4372: if (res.hasSuspSandData()) { rrenkert@4372: newFacets.add(new SedimentLoadFacet( rrenkert@4372: idx, rrenkert@4372: SEDIMENT_LOAD_SUSP_SAND, rrenkert@4372: Resources.getMsg( rrenkert@4372: meta, rrenkert@4372: I18N_FACET_SEDIMENTLOAD_SUSPSAND, rrenkert@4372: I18N_FACET_SEDIMENTLOAD_SUSPSAND) rrenkert@4372: + " - " + res.getStartYear(), rrenkert@4372: ComputeType.ADVANCE, rrenkert@4372: stateId, rrenkert@4372: hash)); rrenkert@4372: } rrenkert@4372: if (res.hasSuspSandBedData()) { rrenkert@4372: newFacets.add(new SedimentLoadFacet( rrenkert@4372: idx, rrenkert@4372: SEDIMENT_LOAD_SUSP_SAND_BED, rrenkert@4372: Resources.getMsg( rrenkert@4372: meta, rrenkert@4372: I18N_FACET_SEDIMENTLOAD_SUSPSANDBED, rrenkert@4372: I18N_FACET_SEDIMENTLOAD_SUSPSANDBED) + rrenkert@4372: " - " + res.getStartYear(), rrenkert@4372: ComputeType.ADVANCE, rrenkert@4372: stateId, rrenkert@4372: hash)); rrenkert@4372: } rrenkert@4372: if (res.hasSuspSedimentData()) { rrenkert@4372: newFacets.add(new SedimentLoadFacet( rrenkert@4372: idx, rrenkert@4372: SEDIMENT_LOAD_SUSP_SEDIMENT, rrenkert@4372: Resources.getMsg( rrenkert@4372: meta, rrenkert@4372: I18N_FACET_SEDIMENTLOAD_SUSPSEDIMENT, rrenkert@4372: I18N_FACET_SEDIMENTLOAD_SUSPSEDIMENT) + rrenkert@4372: " - " + res.getStartYear(), rrenkert@4372: ComputeType.ADVANCE, rrenkert@4372: stateId, rrenkert@4372: hash)); rrenkert@4372: rrenkert@4372: } rrenkert@4372: if (res.hasTotalData()) { rrenkert@4372: newFacets.add(new SedimentLoadFacet( rrenkert@4372: idx, rrenkert@4372: SEDIMENT_LOAD_TOTAL, rrenkert@4372: Resources.getMsg( rrenkert@4372: meta, rrenkert@4372: I18N_FACET_SEDIMENTLOAD_TOTAL, rrenkert@4372: I18N_FACET_SEDIMENTLOAD_TOTAL) + rrenkert@4372: " - " + res.getStartYear(), rrenkert@4372: ComputeType.ADVANCE, rrenkert@4372: stateId, rrenkert@4372: hash)); rrenkert@4372: } rrenkert@4372: } rrenkert@4372: } rrenkert@4372: rrenkert@4372: protected void generateEpochFacets( rrenkert@4372: CallContext context, rrenkert@4372: List newFacets, rrenkert@4372: SedimentLoadResult[] results, rrenkert@4372: String stateId, rrenkert@4372: String hash rrenkert@4372: ) { rrenkert@4372: logger.debug("SedimentLoadCalculate.generateEpochFacets"); rrenkert@4372: rrenkert@4372: CallMeta meta = context.getMeta(); rrenkert@4372: rrenkert@4372: // newFacets.add(new DataFacet(CSV, "CSV data", ComputeType.ADVANCE, hash, id)); rrenkert@4372: for (int idx = 0; idx < results.length; idx++) { rrenkert@4372: SedimentLoadResult res = results[idx]; rrenkert@4372: if (res.hasCoarseData()) { rrenkert@4372: newFacets.add(new SedimentLoadFacet( rrenkert@4372: idx, rrenkert@4372: SEDIMENT_LOAD_COARSE, rrenkert@4372: Resources.getMsg( rrenkert@4372: meta, rrenkert@4372: I18N_FACET_SEDIMENTLOAD_COARSE, rrenkert@4372: I18N_FACET_SEDIMENTLOAD_COARSE) + rrenkert@4372: " - " + res.getStartYear() + "-" + res.getEndYear(), rrenkert@4372: ComputeType.ADVANCE, rrenkert@4372: stateId, rrenkert@4372: hash)); rrenkert@4372: } rrenkert@4372: if (res.hasSandData()) { rrenkert@4372: newFacets.add(new SedimentLoadFacet( rrenkert@4372: idx, rrenkert@4372: SEDIMENT_LOAD_SAND, rrenkert@4372: Resources.getMsg( rrenkert@4372: meta, rrenkert@4372: I18N_FACET_SEDIMENTLOAD_SAND, rrenkert@4372: I18N_FACET_SEDIMENTLOAD_SAND) + rrenkert@4372: " - " + res.getStartYear() + "-" + res.getEndYear(), rrenkert@4372: ComputeType.ADVANCE, rrenkert@4372: stateId, rrenkert@4372: hash)); rrenkert@4372: } rrenkert@4372: if (res.hasFineMiddleData()) { rrenkert@4372: newFacets.add(new SedimentLoadFacet( rrenkert@4372: idx, rrenkert@4372: SEDIMENT_LOAD_FINEMIDDLE, rrenkert@4372: Resources.getMsg( rrenkert@4372: meta, rrenkert@4372: I18N_FACET_SEDIMENTLOAD_FINE_MIDDLE, rrenkert@4372: I18N_FACET_SEDIMENTLOAD_FINE_MIDDLE) + rrenkert@4372: " - " + res.getStartYear(), rrenkert@4372: ComputeType.ADVANCE, rrenkert@4372: stateId, rrenkert@4372: hash)); rrenkert@4372: } rrenkert@4372: if (res.hasSuspSandData()) { rrenkert@4372: newFacets.add(new SedimentLoadFacet( rrenkert@4372: idx, rrenkert@4372: SEDIMENT_LOAD_SUSP_SAND, rrenkert@4372: Resources.getMsg( rrenkert@4372: meta, rrenkert@4372: I18N_FACET_SEDIMENTLOAD_SUSPSAND, rrenkert@4372: I18N_FACET_SEDIMENTLOAD_SUSPSAND) rrenkert@4372: + " - " + res.getStartYear() + "-" + res.getEndYear(), rrenkert@4372: ComputeType.ADVANCE, rrenkert@4372: stateId, rrenkert@4372: hash)); rrenkert@4372: } rrenkert@4372: if (res.hasSuspSandBedData()) { rrenkert@4372: newFacets.add(new SedimentLoadFacet( rrenkert@4372: idx, rrenkert@4372: SEDIMENT_LOAD_SUSP_SAND_BED, rrenkert@4372: Resources.getMsg( rrenkert@4372: meta, rrenkert@4372: I18N_FACET_SEDIMENTLOAD_SUSPSANDBED, rrenkert@4372: I18N_FACET_SEDIMENTLOAD_SUSPSANDBED) + rrenkert@4372: " - " + res.getStartYear() + "-" + res.getEndYear(), rrenkert@4372: ComputeType.ADVANCE, rrenkert@4372: stateId, rrenkert@4372: hash)); rrenkert@4372: } rrenkert@4372: if (res.hasSuspSedimentData()) { rrenkert@4372: newFacets.add(new SedimentLoadFacet( rrenkert@4372: idx, rrenkert@4372: SEDIMENT_LOAD_SUSP_SEDIMENT, rrenkert@4372: Resources.getMsg( rrenkert@4372: meta, rrenkert@4372: I18N_FACET_SEDIMENTLOAD_SUSPSEDIMENT, rrenkert@4372: I18N_FACET_SEDIMENTLOAD_SUSPSEDIMENT) + rrenkert@4372: " - " + res.getStartYear() + "-" + res.getEndYear(), rrenkert@4372: ComputeType.ADVANCE, rrenkert@4372: stateId, rrenkert@4372: hash)); rrenkert@4372: rrenkert@4372: } rrenkert@4546: if (res.hasTotalLoadData()) { rrenkert@4546: newFacets.add(new SedimentLoadFacet( rrenkert@4546: idx, rrenkert@4546: SEDIMENT_LOAD_TOTAL_LOAD, rrenkert@4546: Resources.getMsg( rrenkert@4546: meta, rrenkert@4546: I18N_FACET_SEDIMENTLOAD_TOTAL_LOAD, rrenkert@4546: I18N_FACET_SEDIMENTLOAD_TOTAL_LOAD) + rrenkert@4546: " - " + res.getStartYear() + "-" + res.getEndYear(), rrenkert@4546: ComputeType.ADVANCE, rrenkert@4546: stateId, rrenkert@4546: hash)); rrenkert@4546: } rrenkert@4372: if (res.hasTotalData()) { rrenkert@4372: newFacets.add(new SedimentLoadFacet( rrenkert@4372: idx, rrenkert@4372: SEDIMENT_LOAD_TOTAL, rrenkert@4372: Resources.getMsg( rrenkert@4372: meta, rrenkert@4372: I18N_FACET_SEDIMENTLOAD_TOTAL, rrenkert@4372: I18N_FACET_SEDIMENTLOAD_TOTAL) + rrenkert@4372: " - " + res.getStartYear() + "-" + res.getEndYear(), rrenkert@4372: ComputeType.ADVANCE, rrenkert@4372: stateId, rrenkert@4372: hash)); rrenkert@4372: } rrenkert@4372: } rrenkert@4372: } rrenkert@4372: rrenkert@4372: protected void generateOffEpochFacets( rrenkert@4372: CallContext context, rrenkert@4372: List newFacets, rrenkert@4372: SedimentLoadResult[] results, rrenkert@4372: String stateId, rrenkert@4372: String hash rrenkert@4372: ) { rrenkert@4372: logger.debug("SedimentLoadCalculate.generateOffEpochFacets"); rrenkert@4372: rrenkert@4372: CallMeta meta = context.getMeta(); rrenkert@4372: rrenkert@4372: // newFacets.add(new DataFacet(CSV, "CSV data", ComputeType.ADVANCE, hash, id)); rrenkert@4372: for (int idx = 0; idx < results.length; idx++) { rrenkert@4372: SedimentLoadResult res = results[idx]; rrenkert@4372: if (res.hasCoarseData()) { rrenkert@4372: newFacets.add(new SedimentLoadFacet( rrenkert@4372: idx, rrenkert@4372: SEDIMENT_LOAD_COARSE, rrenkert@4372: Resources.getMsg( rrenkert@4372: meta, rrenkert@4372: I18N_FACET_SEDIMENTLOAD_COARSE, rrenkert@4372: I18N_FACET_SEDIMENTLOAD_COARSE) + rrenkert@4372: " - " + res.getStartYear() + "-" + res.getEndYear(), rrenkert@4372: ComputeType.ADVANCE, rrenkert@4372: stateId, rrenkert@4372: hash)); rrenkert@4372: } rrenkert@4372: if (res.hasSandData()) { rrenkert@4372: newFacets.add(new SedimentLoadFacet( rrenkert@4372: idx, rrenkert@4372: SEDIMENT_LOAD_SAND, rrenkert@4372: Resources.getMsg( rrenkert@4372: meta, rrenkert@4372: I18N_FACET_SEDIMENTLOAD_SAND, rrenkert@4372: I18N_FACET_SEDIMENTLOAD_SAND) + rrenkert@4372: " - " + res.getStartYear() + "-" + res.getEndYear(), rrenkert@4372: ComputeType.ADVANCE, rrenkert@4372: stateId, rrenkert@4372: hash)); rrenkert@4372: } rrenkert@4372: if (res.hasFineMiddleData()) { rrenkert@4372: newFacets.add(new SedimentLoadFacet( rrenkert@4372: idx, rrenkert@4372: SEDIMENT_LOAD_FINEMIDDLE, rrenkert@4372: Resources.getMsg( rrenkert@4372: meta, rrenkert@4372: I18N_FACET_SEDIMENTLOAD_FINE_MIDDLE, rrenkert@4372: I18N_FACET_SEDIMENTLOAD_FINE_MIDDLE) + rrenkert@4372: " - " + res.getStartYear() + "-" + res.getEndYear(), rrenkert@4372: ComputeType.ADVANCE, rrenkert@4372: stateId, rrenkert@4372: hash)); rrenkert@4372: } rrenkert@4372: if (res.hasSuspSandData()) { rrenkert@4372: newFacets.add(new SedimentLoadFacet( rrenkert@4372: idx, rrenkert@4372: SEDIMENT_LOAD_SUSP_SAND, rrenkert@4372: Resources.getMsg( rrenkert@4372: meta, rrenkert@4372: I18N_FACET_SEDIMENTLOAD_SUSPSAND, rrenkert@4372: I18N_FACET_SEDIMENTLOAD_SUSPSAND) + rrenkert@4372: " - " + res.getStartYear() + "-" + res.getEndYear(), rrenkert@4372: ComputeType.ADVANCE, rrenkert@4372: stateId, rrenkert@4372: hash)); rrenkert@4372: } rrenkert@4372: if (res.hasSuspSandBedData()) { rrenkert@4372: newFacets.add(new SedimentLoadFacet( rrenkert@4372: idx, rrenkert@4372: SEDIMENT_LOAD_SUSP_SAND_BED, rrenkert@4372: Resources.getMsg( rrenkert@4372: meta, rrenkert@4372: I18N_FACET_SEDIMENTLOAD_SUSPSANDBED, rrenkert@4372: I18N_FACET_SEDIMENTLOAD_SUSPSANDBED) + rrenkert@4372: " - " + res.getStartYear() + "-" + res.getEndYear(), rrenkert@4372: ComputeType.ADVANCE, rrenkert@4372: stateId, rrenkert@4372: hash)); rrenkert@4372: } rrenkert@4372: if (res.hasSuspSedimentData()) { rrenkert@4372: newFacets.add(new SedimentLoadFacet( rrenkert@4372: idx, rrenkert@4372: SEDIMENT_LOAD_SUSP_SEDIMENT, rrenkert@4372: Resources.getMsg( rrenkert@4372: meta, rrenkert@4372: I18N_FACET_SEDIMENTLOAD_SUSPSEDIMENT, rrenkert@4372: I18N_FACET_SEDIMENTLOAD_SUSPSEDIMENT) + rrenkert@4372: " - " + res.getStartYear() + "-" + res.getEndYear(), rrenkert@4372: ComputeType.ADVANCE, rrenkert@4372: stateId, rrenkert@4372: hash)); rrenkert@4372: rrenkert@4372: } rrenkert@4546: if (res.hasTotalLoadData()) { rrenkert@4546: newFacets.add(new SedimentLoadFacet( rrenkert@4546: idx, rrenkert@4546: SEDIMENT_LOAD_TOTAL_LOAD, rrenkert@4546: Resources.getMsg( rrenkert@4546: meta, rrenkert@4546: I18N_FACET_SEDIMENTLOAD_TOTAL_LOAD, rrenkert@4546: I18N_FACET_SEDIMENTLOAD_TOTAL_LOAD) + rrenkert@4546: " - " + res.getStartYear() + "-" + res.getEndYear(), rrenkert@4546: ComputeType.ADVANCE, rrenkert@4546: stateId, rrenkert@4546: hash)); rrenkert@4546: } rrenkert@4372: if (res.hasTotalData()) { rrenkert@4372: newFacets.add(new SedimentLoadFacet( rrenkert@4372: idx, rrenkert@4372: SEDIMENT_LOAD_TOTAL, rrenkert@4372: Resources.getMsg( rrenkert@4372: meta, rrenkert@4372: I18N_FACET_SEDIMENTLOAD_TOTAL, rrenkert@4372: I18N_FACET_SEDIMENTLOAD_TOTAL) + rrenkert@4372: " - " + res.getStartYear() + "-" + res.getEndYear(), rrenkert@4372: ComputeType.ADVANCE, rrenkert@4372: stateId, rrenkert@4372: hash)); rrenkert@4372: } rrenkert@4372: } rrenkert@4372: } rrenkert@4220: }