Mercurial > dive4elements > river
view flys-artifacts/src/main/java/de/intevation/flys/artifacts/HYKArtifact.java @ 4902:e1566938d04c
Added new functions to datacage templating language.
* get minimum of location/distance:
dc:fromValue($ld_mode, $ld_locations, $ld_from)
- returns -Double.MAX_VALUE if no min exists.
* get maximum of location/distance:
dc:toValue($ld_mode, $ld_locations, $ld_to)
- returns Double.MAX_VALUE if no max exists.
author | Raimund Renkert <rrenkert@intevation.de> |
---|---|
date | Tue, 29 Jan 2013 17:11:26 +0100 |
parents | a2735a4bf75e |
children |
line wrap: on
line source
package de.intevation.flys.artifacts; import java.util.ArrayList; import java.util.List; import org.apache.log4j.Logger; import org.w3c.dom.Document; import de.intevation.artifacts.Artifact; import de.intevation.artifacts.ArtifactFactory; import de.intevation.artifacts.CallMeta; import de.intevation.flys.artifacts.states.DefaultState; import de.intevation.artifactdatabase.state.Facet; import de.intevation.artifactdatabase.state.FacetActivity; /** * Artifact to get hydr zones (HYKs). */ public class HYKArtifact extends StaticFLYSArtifact { /** Name of Artifact. */ public static final String HYK_ARTIFACT_NAME = "hyk"; /** Name of data item keeping the hyk id to load formations from. */ public static final String HYK_ID = "hyk_artifact.data.id"; /** Name of data item keeping the km of cs master. */ public static final String HYK_KM = "hyk_artifact.data.km"; /** Own logger. */ private static final Logger logger = Logger.getLogger(HYKArtifact.class); static { // TODO: Move to configuration. FacetActivity.Registry.getInstance() .register(HYK_ARTIFACT_NAME, FacetActivity.INACTIVE); } /** Return given name. */ @Override public String getName() { return HYK_ARTIFACT_NAME; } /** Store ids, do super.setup. */ @Override public void setup( String identifier, ArtifactFactory factory, Object context, CallMeta callMeta, Document data) { logger.info("HYKArtifact.setup"); String ids = getDatacageIDValue(data); logger.info("HYKArtifact.setup: id is " + ids); addStringData(HYK_ID, ids); super.setup(identifier, factory, context, callMeta, data); } /** Set km as Data. */ public void setKm(double km) { addStringData(HYK_KM, Double.toString(km)); } /** Get km from state data. */ public double getKm() { Double km = getDataAsDouble(HYK_KM); if (km == null) { // XXX returning 0 is to be compatible to older versions that had an // own method getDataAsDouble that returned 0 if parsing the // parameter failed. return 0; } else { return km; } } /** Get hyk-id from state data. */ public int getHykId() { return getDataAsInteger(HYK_ID); } /** Do not copy data from daddyfact. */ @Override protected void initialize( Artifact artifact, Object context, CallMeta callMeta) { logger.debug("HYKArtifact.initialize"); importData((FLYSArtifact)artifact, "river"); List<Facet> fs = new ArrayList<Facet>(); DefaultState state = (DefaultState) getCurrentState(context); state.computeInit(this, hash(), context, callMeta, fs); if (!fs.isEmpty()) { logger.debug("Facets to add in HYKArtifact.initialize ."); addFacets(getCurrentStateId(), fs); } else { logger.debug("No facets to add in HYKArtifact.initialize (" + state.getID() + ")."); } } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :