Mercurial > dive4elements > river
view flys-artifacts/src/main/java/de/intevation/flys/artifacts/MainValuesArtifact.java @ 1076:6ada2b84ddf8
Added new Mainvalues FacetType.
flys-artifacts/trunk@2573 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Felix Wolfsteller <felix.wolfsteller@intevation.de> |
---|---|
date | Thu, 25 Aug 2011 10:29:14 +0000 |
parents | 21b9eb24bd47 |
children | 048517d67215 |
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.CallContext; import de.intevation.artifacts.CallMeta; import de.intevation.flys.artifacts.states.StaticState; import de.intevation.artifactdatabase.state.DefaultFacet; import de.intevation.artifactdatabase.state.Facet; import de.intevation.artifactdatabase.state.DefaultOutput; import de.intevation.artifactdatabase.state.State; /** * Artifact to access names of Points Of Interest along a segment of a river. * This artifact neglects (Static)FLYSArtifacts capabilities of interaction * with the StateEngine by overriding the getState*-methods. */ public class MainValuesArtifact extends StaticFLYSArtifact { /** The logger for this class. */ private static Logger logger = Logger.getLogger(MainValuesArtifact.class); /** The name of the artifact. */ public static final String ARTIFACT_NAME = "mainvalue"; /** * Trivial Constructor. */ public MainValuesArtifact() { logger.debug("MainValuesArtifact.MainValuesartifact()"); } /** * Gets called from factory, to set things up. */ @Override public void setup( String identifier, ArtifactFactory factory, Object context, CallMeta callMeta, Document data) { logger.debug("MainValuesArtifact.setup"); super.setup(identifier, factory, context, callMeta, data); } /** * Get a list containing the one and only State. * @param context ignored. * @return list with one and only state. */ @Override protected List<State> getStates(Object context) { ArrayList<State> states = new ArrayList<State>(); states.add(getState(null,null)); return states; } /** * Get the "current" state. * @param cc ignored. * @return the "current" state. */ @Override protected State getCurrentState(Object cc) { return getState(); } /** * Get the only possible state. * @return the state. */ protected State getState() { return getState(null, null); } /** * Get the state. * @param context ignored. * @param stateID ignored. * @return the state. */ @Override protected State getState(Object context, String stateID) { // TODO Add other outputs, prevent this code from being executed // multiple times (e.g. make state serializable and a field). State state = new StaticState(); List<Facet> fs = new ArrayList<Facet>(); fs.add(new MainValuesFacet()); facets.put(state.getID(), fs); DefaultOutput mainValuesOutput = new DefaultOutput( "discharge_curve", "output.discharge_curve", "image/png", fs, "chart"); state.getOutputs().add(mainValuesOutput); return state; } /* FACET IMPLEMENTATION */ class MainValuesFacet extends DefaultFacet { public MainValuesFacet() { description = "facet.mainvalues"; name = "facet.mainvalues"; index = 0; } // TODO implement; what is index used for? /** * Returns the index of this facet. * * @return the index of this facet. */ public int getIndex() { return 0; } /** * Returns the name of this facet. * * @return the name of this facet. */ public String getName() { // TODO define, static // TODO remove, is part of DefaultFacet. return "facet.mainvalue"; } /** * Returns the description of this facet. * * @return the description of this facet. */ public String getDescription() { // TODO remove, is part of DefaultFacet. return "facet.mainvalues"; } /** * Returns the data this facet requires. * * @param artifact The owner artifact. * @param context The CallContext. * * @return the data. */ public Object getData(Artifact artifact, CallContext context) { return null; } /** * Create a deep copy of this Facet. * @return a deep copy. */ public MainValuesFacet deepCopy() { MainValuesFacet copy = new MainValuesFacet(); copy.set(this); return copy; } } }