ingo@3749: package de.intevation.flys.artifacts.access; ingo@3749: raimund@3760: import java.util.Date; raimund@3760: import java.util.LinkedList; raimund@3760: import java.util.List; raimund@3760: raimund@3768: import org.apache.log4j.Logger; raimund@3768: ingo@3749: import de.intevation.flys.artifacts.FLYSArtifact; raimund@3760: import de.intevation.flys.artifacts.model.DateRange; raimund@3760: ingo@3749: sascha@3777: public class BedQualityAccess extends RiverAccess { sascha@3750: raimund@3768: private static final Logger logger = Logger raimund@3768: .getLogger(BedQualityAccess.class); raimund@3768: raimund@3760: private Double from; raimund@3760: private Double to; raimund@3768: private List bedDiameter; raimund@3768: private List bedloadDiameter; raimund@3760: private List ranges; raimund@3760: ingo@3749: public BedQualityAccess(FLYSArtifact artifact) { ingo@3749: super(artifact); ingo@3749: } raimund@3760: raimund@3760: public double getFrom() { raimund@3760: if (from == null) { raimund@3760: from = getDouble("ld_from"); raimund@3760: } raimund@3760: return from.doubleValue(); raimund@3760: } raimund@3760: raimund@3760: public double getTo() { raimund@3760: if (to == null) { raimund@3760: to = getDouble("ld_to"); raimund@3760: } raimund@3760: return to.doubleValue(); raimund@3760: } raimund@3760: raimund@3760: public List getDateRanges() { raimund@3760: if (ranges == null) { raimund@3760: ranges = extractRanges(getString("periods")); raimund@3760: } raimund@3760: return ranges; raimund@3760: } raimund@3760: raimund@3768: public List getBedDiameter() { raimund@3768: if (bedDiameter == null) { raimund@3768: bedDiameter = extractDiameter(getString("bed_diameter")); raimund@3768: } raimund@3768: return bedDiameter; raimund@3768: } raimund@3768: raimund@3768: public List getBedloadDiameter() { raimund@3768: if (bedloadDiameter == null) { raimund@3768: bedloadDiameter = extractDiameter(getString("load_diameter")); raimund@3768: } raimund@3768: return bedloadDiameter; raimund@3768: } raimund@3768: raimund@3760: private List extractRanges(String dateString) { raimund@3760: List list = new LinkedList(); raimund@3760: String[] dates = dateString.split(";"); raimund@3760: for (String s : dates) { raimund@3760: String[] pair = s.split(","); raimund@3760: try { raimund@3760: long l1 = Long.parseLong(pair[0]); raimund@3760: long l2 = Long.parseLong(pair[1]); raimund@3760: Date first = new Date(l1); raimund@3760: Date second = new Date(l2); raimund@3760: DateRange dr = new DateRange(first, second); raimund@3760: list.add(dr); raimund@3760: } raimund@3760: catch (NumberFormatException nfe) { raimund@3760: continue; raimund@3760: } raimund@3760: } raimund@3760: return list; raimund@3760: } raimund@3768: raimund@3768: private List extractDiameter(String value) { raimund@3768: List result = new LinkedList(); raimund@3768: String[] diameter = value.split(";"); raimund@3768: for (String v : diameter) { raimund@3768: logger.debug("diameter: " + v); raimund@3768: String[] parts = v.split("\\."); raimund@3768: result.add(parts[parts.length - 1]); raimund@3768: logger.debug(parts[parts.length-1]); raimund@3768: } raimund@3768: return result; raimund@3768: } ingo@3749: } sascha@3777: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :