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.minfo; rrenkert@4296: rrenkert@4296: import java.util.Date; rrenkert@4370: import java.util.HashMap; rrenkert@4370: import java.util.Set; rrenkert@4296: teichmann@5831: import org.dive4elements.river.artifacts.model.NamedObjectImpl; felix@6374: import org.dive4elements.river.artifacts.model.Range; felix@6374: rrenkert@4296: felix@5787: /** Gives access to Fractions (at kms). */ rrenkert@4296: public class SedimentLoad rrenkert@4296: extends NamedObjectImpl rrenkert@4296: { rrenkert@4296: protected String description; rrenkert@4296: protected Date start; rrenkert@4296: protected Date end; rrenkert@4296: protected boolean isEpoch; rrenkert@6392: protected String unit; rrenkert@4296: rrenkert@4370: protected HashMap kms; rrenkert@4296: rrenkert@4296: public SedimentLoad() { rrenkert@4370: kms = new HashMap(); rrenkert@4296: } rrenkert@4296: rrenkert@4296: public SedimentLoad( rrenkert@4296: String description, rrenkert@4296: Date start, rrenkert@4296: Date end, rrenkert@6392: boolean isEpoch, rrenkert@6392: String unit rrenkert@4296: ) { rrenkert@4370: this(); rrenkert@4296: this.description = description; rrenkert@4296: this.start = start; rrenkert@4296: this.end = end; rrenkert@4296: this.isEpoch = isEpoch; rrenkert@6392: this.unit = unit; rrenkert@4296: } rrenkert@4296: rrenkert@4296: public String getDescription() { rrenkert@4296: return description; rrenkert@4296: } rrenkert@4296: rrenkert@4296: public void setDescription(String description) { rrenkert@4296: this.description = description; rrenkert@4296: } rrenkert@4296: rrenkert@4296: public Date getStart() { rrenkert@4296: return start; rrenkert@4296: } rrenkert@4296: rrenkert@4296: public void setStart(Date start) { rrenkert@4296: this.start = start; rrenkert@4296: } rrenkert@4296: rrenkert@4296: public Date getEnd() { rrenkert@4296: return end; rrenkert@4296: } rrenkert@4296: rrenkert@4296: public void setEnd(Date end) { rrenkert@4296: this.end = end; rrenkert@4296: } rrenkert@4296: rrenkert@4296: public boolean isEpoch() { rrenkert@4296: return isEpoch; rrenkert@4296: } rrenkert@4296: rrenkert@4296: public void setEpoch(boolean isEpoch) { rrenkert@4296: this.isEpoch = isEpoch; rrenkert@4296: } rrenkert@4296: rrenkert@4370: public Set getKms() { rrenkert@4370: return kms.keySet(); rrenkert@4296: } rrenkert@4296: rrenkert@4370: public void addKm(double km, SedimentLoadFraction fraction) { rrenkert@4370: kms.put(km, fraction); rrenkert@4296: } rrenkert@4296: rrenkert@4370: public SedimentLoadFraction getFraction(double km) { rrenkert@4370: if (kms.get(km) == null) { rrenkert@4370: return new SedimentLoadFraction(); rrenkert@4370: } rrenkert@4370: return kms.get(km); rrenkert@4296: } rrenkert@4296: felix@6374: public void setCoarse(double km, double coarse, Range range) { rrenkert@4370: if (kms.containsKey(km)) { rrenkert@4370: kms.get(km).setCoarse(coarse); rrenkert@4370: } rrenkert@4370: else { rrenkert@4370: SedimentLoadFraction f = new SedimentLoadFraction(); rrenkert@4370: f.setCoarse(coarse); felix@6374: f.setCoarseRange(range); rrenkert@4370: kms.put(km, f); rrenkert@4370: } rrenkert@4370: } rrenkert@4370: felix@6374: public void setFineMiddle(double km, double fine_middle, Range range) { rrenkert@4370: if (kms.containsKey(km)) { felix@6376: kms.get(km).setFineMiddle(fine_middle); felix@6374: kms.get(km).setFineMiddleRange(range); rrenkert@4370: } rrenkert@4370: else { rrenkert@4370: SedimentLoadFraction f = new SedimentLoadFraction(); felix@6376: f.setFineMiddle(fine_middle); felix@6374: f.setFineMiddleRange(range); rrenkert@4370: kms.put(km, f); rrenkert@4370: } rrenkert@4370: } rrenkert@4370: felix@6374: public void setSand(double km, double sand, Range range) { felix@6374: if (kms.containsKey(km)) { felix@6374: kms.get(km).setSand(sand); felix@6374: kms.get(km).setSandRange(range); felix@6374: } felix@6374: else { felix@6374: SedimentLoadFraction f = new SedimentLoadFraction(); felix@6374: f.setSand(sand); felix@6374: f.setSandRange(range); felix@6374: kms.put(km, f); felix@6374: } felix@6374: } felix@6374: felix@6374: public void setSuspSand(double km, double susp_sand, Range range) { felix@6374: if (kms.containsKey(km)) { felix@6376: kms.get(km).setSuspSand(susp_sand); felix@6374: kms.get(km).setSuspSandRange(range); felix@6374: } felix@6374: else { felix@6374: SedimentLoadFraction f = new SedimentLoadFraction(); felix@6376: f.setSuspSand(susp_sand); felix@6374: f.setSuspSandRange(range); felix@6374: kms.put(km, f); felix@6374: } felix@6374: } felix@6374: felix@6374: public void setSuspSandBed(double km, double susp_sand_bed, Range range) { rrenkert@4370: if (kms.containsKey(km)) { felix@6376: kms.get(km).setSuspSandBed(susp_sand_bed); felix@6374: kms.get(km).setSuspSandBedRange(range); rrenkert@4370: } rrenkert@4370: else { rrenkert@4370: SedimentLoadFraction f = new SedimentLoadFraction(); felix@6376: f.setSuspSandBed(susp_sand_bed); felix@6374: f.setSuspSandBedRange(range); rrenkert@4370: kms.put(km, f); rrenkert@4370: } rrenkert@4370: } rrenkert@4370: felix@6374: public void setSuspSediment(double km, double susp_sediment, Range range) { rrenkert@4370: if (kms.containsKey(km)) { felix@6376: kms.get(km).setSuspSediment(susp_sediment); felix@6374: kms.get(km).setSuspSedimentRange(range); rrenkert@4370: } rrenkert@4370: else { rrenkert@4370: SedimentLoadFraction f = new SedimentLoadFraction(); felix@6376: f.setSuspSediment(susp_sediment); felix@6374: f.setSuspSedimentRange(range); rrenkert@4370: kms.put(km, f); rrenkert@4370: } rrenkert@4370: } rrenkert@4370: rrenkert@4546: public void setLoadTotal(double km, double total) { felix@6952: setLoadTotal(km, total, null); felix@6952: } felix@6952: felix@6952: public void setLoadTotal(double km, double total, Range range) { rrenkert@4546: if (kms.containsKey(km)) { rrenkert@4546: kms.get(km).setLoadTotal(total); felix@6952: kms.get(km).setLoadTotalRange(range); rrenkert@4546: } rrenkert@4546: else { rrenkert@4546: SedimentLoadFraction f = new SedimentLoadFraction(); rrenkert@4546: f.setLoadTotal(total); felix@6952: f.setLoadTotalRange(range); rrenkert@4546: kms.put(km, f); rrenkert@4546: } rrenkert@4546: } rrenkert@4546: felix@6374: public void setTotal(double km, double total, Range range) { rrenkert@4370: if (kms.containsKey(km)) { rrenkert@4370: kms.get(km).setTotal(total); felix@6374: kms.get(km).setTotalRange(range); rrenkert@4370: } rrenkert@4370: else { rrenkert@4370: SedimentLoadFraction f = new SedimentLoadFraction(); rrenkert@4370: f.setTotal(total); felix@6374: f.setTotalRange(range); rrenkert@4370: kms.put(km, f); rrenkert@4370: } rrenkert@4296: } rrenkert@4515: rrenkert@6392: public void setUnknown(double km, double unknown, Range range) { rrenkert@6392: if (kms.containsKey(km)) { rrenkert@6392: kms.get(km).setUnknown(unknown); rrenkert@6392: kms.get(km).setUnknownRange(range); rrenkert@6392: } rrenkert@6392: else { rrenkert@6392: SedimentLoadFraction f = new SedimentLoadFraction(); rrenkert@6392: f.setUnknown(unknown); rrenkert@6392: f.setUnknownRange(range); rrenkert@6392: kms.put(km, f); rrenkert@6392: } rrenkert@6392: } rrenkert@6392: rrenkert@6392: public String getUnit() { rrenkert@6392: return unit; rrenkert@6392: } rrenkert@6392: rrenkert@6392: public void setUnit(String unit) { rrenkert@6392: this.unit = unit; rrenkert@6392: } rrenkert@6392: rrenkert@4515: public boolean hasCoarse() { rrenkert@4515: for (SedimentLoadFraction slf : kms.values()) { rrenkert@4515: if (slf.getCoarse() > 0d) { rrenkert@4515: return true; rrenkert@4515: } rrenkert@4515: } rrenkert@4515: return false; rrenkert@4515: } rrenkert@4515: rrenkert@4515: public boolean hasFineMiddle() { rrenkert@4515: for (SedimentLoadFraction slf : kms.values()) { felix@6376: if (slf.getFineMiddle() > 0d) { rrenkert@4515: return true; rrenkert@4515: } rrenkert@4515: } rrenkert@4515: return false; rrenkert@4515: } rrenkert@4515: rrenkert@4515: public boolean hasSand() { rrenkert@4515: for (SedimentLoadFraction slf : kms.values()) { rrenkert@4515: if (slf.getSand() > 0d) { rrenkert@4515: return true; rrenkert@4515: } rrenkert@4515: } rrenkert@4515: return false; rrenkert@4515: } rrenkert@4515: rrenkert@4515: public boolean hasSuspSand() { rrenkert@4515: for (SedimentLoadFraction slf : kms.values()) { felix@6376: if (slf.getSuspSand() > 0d) { rrenkert@4515: return true; rrenkert@4515: } rrenkert@4515: } rrenkert@4515: return false; rrenkert@4515: } rrenkert@4515: rrenkert@4515: public boolean hasSuspSediment() { rrenkert@4515: for (SedimentLoadFraction slf : kms.values()) { felix@6376: if (slf.getSuspSediment() > 0d) { rrenkert@4515: return true; rrenkert@4515: } rrenkert@4515: } rrenkert@4515: return false; rrenkert@4515: } rrenkert@4546: rrenkert@4546: public boolean hasTotalLoad() { rrenkert@4546: for (SedimentLoadFraction slf : kms.values()) { rrenkert@4546: if (slf.getLoadTotal() > 0d) { rrenkert@4546: return true; rrenkert@4546: } rrenkert@4546: } rrenkert@4546: return false; rrenkert@4546: } rrenkert@4296: } felix@5662: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :