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