Mercurial > dive4elements > river
view artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/SedimentLoadFacet.java @ 8105:4bcc0c8425d2
Remove unecessary debut output
author | Andre Heinecke <andre.heinecke@intevation.de> |
---|---|
date | Wed, 20 Aug 2014 12:10:59 +0200 |
parents | 09725b65955a |
children | f5c0ed04f673 |
line wrap: on
line source
/* 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 gnu.trove.TDoubleArrayList; import org.dive4elements.artifactdatabase.state.Facet; import org.dive4elements.artifactdatabase.state.StaticFacet; import org.dive4elements.artifacts.Artifact; import org.dive4elements.artifacts.CallContext; import org.dive4elements.artifacts.CallMeta; import org.dive4elements.river.artifacts.D4EArtifact; import org.dive4elements.river.artifacts.access.RiverAccess; import org.dive4elements.river.artifacts.resources.Resources; import org.dive4elements.river.artifacts.model.DataFacet; import org.dive4elements.river.artifacts.model.FacetTypes; import org.dive4elements.river.artifacts.model.minfo.SedimentLoadDataFactory; import org.dive4elements.river.artifacts.model.minfo.SedimentLoadData; import org.dive4elements.river.artifacts.states.DefaultState.ComputeType; import org.dive4elements.river.utils.RiverUtils; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Map; import java.util.TreeSet; import java.util.TreeMap; import org.apache.log4j.Logger; import org.w3c.dom.Document; /** Facet to access various sediment loads. */ public class SedimentLoadFacet extends DataFacet implements FacetTypes, StaticFacet { private static Logger logger = Logger.getLogger(SedimentLoadFacet.class); /* Aheinecke we probably need to get the kind and split this up here * in some way */ private static final String NAME = SEDIMENT_LOAD_TA_STATIC; public SedimentLoadFacet() { } public SedimentLoadFacet(int idx, String name, String description, ComputeType type, String stateId, String hash) { super(idx, name, description, type, hash, stateId); this.metaData.put("X", "chart.longitudinal.section.xaxis.label"); this.metaData.put("Y", ""); } @Override public Object getData(Artifact artifact, CallContext context) { logger.debug("get Data"); D4EArtifact arti = (D4EArtifact) artifact; RiverAccess access = new RiverAccess(arti); String idStr = arti.getDataAsString("load_id"); int id = Integer.valueOf(idStr); /* Get all the data from the river. This will be nicely cached. */ SedimentLoadData allLoadData = SedimentLoadDataFactory.INSTANCE.getSedimentLoadData( access.getRiverName()); /* Now lets get what we want */ TDoubleArrayList xPos = new TDoubleArrayList(); TDoubleArrayList yPos = new TDoubleArrayList(); for (SedimentLoadData.Station sta: allLoadData.getStations()) { double value = sta.findValueByLoadId(id); if (Double.isNaN(value)) { continue; } xPos.add(sta.getStation()); yPos.add(value); } return new double[][] {xPos.toNativeArray(), yPos.toNativeArray()}; } @Override public void setup(Artifact artifact, Document data, CallMeta callMeta) { logger.debug("setup"); String code = D4EArtifact.getDatacageIDValue(data); String[] split = code.split(";"); String idStr = split[0]; String desc = ""; if (split.length >= 2) { desc = split[1]; } name = NAME; description = Resources.getMsg( callMeta, "facet.sedimentload", "Sedimentload", new Object[] { desc }); ((D4EArtifact)artifact).addStringData("load_id", idStr); } /** Copy deeply. */ @Override public Facet deepCopy() { SedimentLoadFacet copy = new SedimentLoadFacet(); copy.set(this); copy.type = type; copy.hash = hash; copy.stateId = stateId; return copy; } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :