Mercurial > dive4elements > river
view flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/DataFacet.java @ 3809:cc83b8e42dbe
Picked rev3347-rev3351 from trunk.
flys-artifacts/tags/pre2.6-2011-12-05@3352 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Mon, 05 Dec 2011 09:48:44 +0000 |
parents | efe1b8545f5c |
children | 70ef5fdc7414 |
line wrap: on
line source
package de.intevation.flys.artifacts.model; import de.intevation.artifacts.Artifact; import de.intevation.artifacts.CallContext; import de.intevation.artifactdatabase.state.DefaultFacet; import de.intevation.artifactdatabase.state.Facet; import de.intevation.flys.artifacts.FLYSArtifact; import de.intevation.flys.artifacts.states.DefaultState.ComputeType; public class DataFacet extends DefaultFacet { protected ComputeType type; protected String hash; protected String stateId; /** Trivial constructor. */ public DataFacet() { } /** * Defaults to ADVANCE Compute type. * @param name Name of the facet. * @param description maybe localized description of the facet. */ public DataFacet(String name, String description) { this(name, description, ComputeType.ADVANCE); } public DataFacet(String name, String description, ComputeType type) { this(name, description, type, null); } public DataFacet( String name, String description, ComputeType type, String hash ) { super(name, description); this.type = type; this.hash = hash; } public DataFacet( String name, String description, ComputeType type, String hash, String stateId ) { super(name, description); this.type = type; this.hash = hash; this.stateId = stateId; } /** * Return computation result. */ @Override public Object getData(Artifact artifact, CallContext context) { FLYSArtifact flys = (FLYSArtifact)artifact; String theHash = (hash != null) ? hash : flys.hash(); return (stateId != null && stateId.length() > 0) ? flys.compute(context, theHash, stateId, type, false) : flys.compute(context, theHash, type, false); } /** * Return a deep copy. */ @Override public Facet deepCopy() { DataFacet copy = new DataFacet(); 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=utf-8 :