teichmann@8024: /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde teichmann@8024: * Software engineering by Intevation GmbH teichmann@8024: * teichmann@8024: * This file is Free Software under the GNU AGPL (>=v3) teichmann@8024: * and comes with ABSOLUTELY NO WARRANTY! Check out the teichmann@8024: * documentation coming with Dive4Elements River for details. teichmann@8024: */ teichmann@8024: teichmann@8024: package org.dive4elements.river.artifacts.model.minfo; teichmann@8024: teichmann@8024: import java.util.Date; teichmann@8024: import java.util.Map; teichmann@8024: import java.util.Set; teichmann@8024: import java.util.TreeMap; teichmann@8024: teichmann@8024: import org.dive4elements.river.artifacts.model.NamedObjectImpl; teichmann@8024: import org.dive4elements.river.artifacts.model.Range; teichmann@8186: import org.dive4elements.river.backend.utils.EpsilonComparator; teichmann@8024: teichmann@8024: import org.apache.log4j.Logger; teichmann@8024: teichmann@8024: teichmann@8024: /** Gives access to Fractions (at kms). */ teichmann@8024: public class SedimentLoadLSData teichmann@8024: extends NamedObjectImpl teichmann@8024: { teichmann@8024: /** Private logger. */ teichmann@8024: private static final Logger logger = Logger teichmann@8024: .getLogger(SedimentLoadLSData.class); teichmann@8024: teichmann@8024: protected String description; teichmann@8024: protected Date start; teichmann@8024: protected Date end; teichmann@8024: protected boolean isEpoch; teichmann@8024: protected String unit; teichmann@8024: teichmann@8024: protected Map kms; teichmann@8024: teichmann@8024: public SedimentLoadLSData() { teichmann@8024: kms = new TreeMap(EpsilonComparator.CMP); teichmann@8024: } teichmann@8024: teichmann@8024: public SedimentLoadLSData( teichmann@8024: String description, teichmann@8024: Date start, teichmann@8024: Date end, teichmann@8024: boolean isEpoch, teichmann@8024: String unit teichmann@8024: ) { teichmann@8024: this(); teichmann@8024: this.description = description; teichmann@8024: this.start = start; teichmann@8024: this.end = end; teichmann@8024: this.isEpoch = isEpoch; teichmann@8024: this.unit = unit; teichmann@8024: } teichmann@8024: teichmann@8024: public String getDescription() { teichmann@8024: return description; teichmann@8024: } teichmann@8024: teichmann@8024: public void setDescription(String description) { teichmann@8024: this.description = description; teichmann@8024: } teichmann@8024: teichmann@8024: public Date getStart() { teichmann@8024: return start; teichmann@8024: } teichmann@8024: teichmann@8024: public void setStart(Date start) { teichmann@8024: this.start = start; teichmann@8024: } teichmann@8024: teichmann@8024: public Date getEnd() { teichmann@8024: return end; teichmann@8024: } teichmann@8024: teichmann@8024: public void setEnd(Date end) { teichmann@8024: this.end = end; teichmann@8024: } teichmann@8024: teichmann@8024: public boolean isEpoch() { teichmann@8024: return isEpoch; teichmann@8024: } teichmann@8024: teichmann@8024: public void setEpoch(boolean isEpoch) { teichmann@8024: this.isEpoch = isEpoch; teichmann@8024: } teichmann@8024: teichmann@8024: public Set getKms() { teichmann@8024: return kms.keySet(); teichmann@8024: } teichmann@8024: teichmann@8024: public void addKm(double km, SedimentLoadFraction fraction) { teichmann@8024: kms.put(km, fraction); teichmann@8024: } teichmann@8024: teichmann@8024: public SedimentLoadFraction getFraction(double km) { teichmann@8024: SedimentLoadFraction f = kms.get(km); teichmann@8024: if (f == null) { teichmann@8024: f = new SedimentLoadFraction(); teichmann@8024: kms.put(km, f); teichmann@8024: } teichmann@8024: return f; teichmann@8024: } teichmann@8024: teichmann@8024: public void setCoarse(double km, double coarse, Range range) { teichmann@8024: if (range == null) { teichmann@8024: logger.error("coarse/range is null!"); teichmann@8024: return; teichmann@8024: } teichmann@8024: SedimentLoadFraction f = getFraction(km); teichmann@8024: f.setCoarse(coarse); teichmann@8024: f.setCoarseRange(range); teichmann@8024: } teichmann@8024: teichmann@8024: public void setFineMiddle(double km, double fine_middle, Range range) { teichmann@8024: if (range == null) { teichmann@8024: logger.error("finemiddle/range is null!"); teichmann@8024: return; teichmann@8024: } teichmann@8024: SedimentLoadFraction f = getFraction(km); teichmann@8024: f.setFineMiddle(fine_middle); teichmann@8024: f.setFineMiddleRange(range); teichmann@8024: } teichmann@8024: teichmann@8024: teichmann@8024: public void setSand(double km, double sand, Range range) { teichmann@8024: if (range == null) { teichmann@8024: logger.error("sand/range is null!"); teichmann@8024: return; teichmann@8024: } teichmann@8024: SedimentLoadFraction f = getFraction(km); teichmann@8024: f.setSand(sand); teichmann@8024: f.setSandRange(range); teichmann@8024: } teichmann@8024: teichmann@8024: public void setSuspSand(double km, double susp_sand, Range range) { teichmann@8024: if (range == null) { teichmann@8024: logger.error("suspsand/range is null!"); teichmann@8024: return; teichmann@8024: } teichmann@8024: SedimentLoadFraction f = getFraction(km); teichmann@8024: f.setSuspSand(susp_sand); teichmann@8024: f.setSuspSandRange(range); teichmann@8024: } teichmann@8024: teichmann@8024: public void setSuspSandBed(double km, double susp_sand_bed, Range range) { teichmann@8024: if (range == null) { teichmann@8024: logger.error("suspsandbed/range is null!"); teichmann@8024: return; teichmann@8024: } teichmann@8024: SedimentLoadFraction f = getFraction(km); teichmann@8024: f.setSuspSandBed(susp_sand_bed); teichmann@8024: f.setSuspSandBedRange(range); teichmann@8024: } teichmann@8024: teichmann@8024: public void setSuspSediment(double km, double susp_sediment, Range range) { teichmann@8024: if (range == null) { teichmann@8024: logger.error("suspsed/range is null!"); teichmann@8024: return; teichmann@8024: } teichmann@8024: SedimentLoadFraction f = getFraction(km); teichmann@8024: f.setSuspSediment(susp_sediment); teichmann@8024: f.setSuspSedimentRange(range); teichmann@8024: } teichmann@8024: teichmann@8024: public void setLoadTotal(double km, double total) { teichmann@8024: setLoadTotal(km, total, null); teichmann@8024: } teichmann@8024: teichmann@8024: public void setLoadTotal(double km, double total, Range range) { teichmann@8024: if (range == null) { teichmann@8024: logger.error("loadtotal/range is null!"); teichmann@8024: return; teichmann@8024: } teichmann@8024: SedimentLoadFraction f = getFraction(km); teichmann@8024: f.setLoadTotal(total); teichmann@8024: f.setLoadTotalRange(range); teichmann@8024: } teichmann@8024: teichmann@8024: public void setTotal(double km, double total, Range range) { teichmann@8024: if (range == null) { teichmann@8024: logger.error("total/range is null!"); teichmann@8024: return; teichmann@8024: } teichmann@8024: SedimentLoadFraction f = getFraction(km); teichmann@8024: f.setTotal(total); teichmann@8024: f.setTotalRange(range); teichmann@8024: } teichmann@8024: teichmann@8024: public void setUnknown(double km, double unknown, Range range) { teichmann@8024: if (range == null) { teichmann@8024: logger.error("unknown/range is null!"); teichmann@8024: return; teichmann@8024: } teichmann@8024: SedimentLoadFraction f = getFraction(km); teichmann@8024: f.setUnknown(unknown); teichmann@8024: f.setUnknownRange(range); teichmann@8024: } teichmann@8024: teichmann@8024: public String getUnit() { teichmann@8024: return unit; teichmann@8024: } teichmann@8024: teichmann@8024: public void setUnit(String unit) { teichmann@8024: this.unit = unit; teichmann@8024: } teichmann@8024: teichmann@8024: public boolean hasCoarse() { teichmann@8024: for (SedimentLoadFraction slf : kms.values()) { teichmann@8024: if (slf.getCoarse() > 0d) { teichmann@8024: return true; teichmann@8024: } teichmann@8024: } teichmann@8024: return false; teichmann@8024: } teichmann@8024: teichmann@8024: public boolean hasFineMiddle() { teichmann@8024: for (SedimentLoadFraction slf : kms.values()) { teichmann@8024: if (slf.getFineMiddle() > 0d) { teichmann@8024: return true; teichmann@8024: } teichmann@8024: } teichmann@8024: return false; teichmann@8024: } teichmann@8024: teichmann@8024: public boolean hasSand() { teichmann@8024: for (SedimentLoadFraction slf : kms.values()) { teichmann@8024: if (slf.getSand() > 0d) { teichmann@8024: return true; teichmann@8024: } teichmann@8024: } teichmann@8024: return false; teichmann@8024: } teichmann@8024: teichmann@8024: public boolean hasSuspSand() { teichmann@8024: for (SedimentLoadFraction slf : kms.values()) { teichmann@8024: if (slf.getSuspSand() > 0d) { teichmann@8024: return true; teichmann@8024: } teichmann@8024: } teichmann@8024: return false; teichmann@8024: } teichmann@8024: teichmann@8024: public boolean hasSuspSediment() { teichmann@8024: for (SedimentLoadFraction slf : kms.values()) { teichmann@8024: if (slf.getSuspSediment() > 0d) { teichmann@8024: return true; teichmann@8024: } teichmann@8024: } teichmann@8024: return false; teichmann@8024: } teichmann@8024: teichmann@8024: public boolean hasTotalLoad() { teichmann@8024: for (SedimentLoadFraction slf : kms.values()) { teichmann@8024: if (slf.getLoadTotal() > 0d) { teichmann@8024: return true; teichmann@8024: } teichmann@8024: } teichmann@8024: return false; teichmann@8024: } teichmann@8024: } teichmann@8024: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :