Mercurial > dive4elements > river
view flys-artifacts/src/main/java/de/intevation/flys/artifacts/StaticFLYSArtifact.java @ 1084:583314dafdb6
Call State.endOfLife() in FLYSArtifact when stepping back to a previous state.
flys-artifacts/trunk@2587 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Fri, 26 Aug 2011 08:07:47 +0000 |
parents | 5de90b0cff8e |
children | 5d8b3880a553 |
line wrap: on
line source
package de.intevation.flys.artifacts; import java.util.List; import org.apache.log4j.Logger; import org.w3c.dom.Document; import org.w3c.dom.Element; import de.intevation.artifacts.ArtifactNamespaceContext; import de.intevation.artifacts.CallContext; import de.intevation.artifactdatabase.ProtocolUtils; import de.intevation.artifactdatabase.state.Facet; import de.intevation.artifactdatabase.state.Output; import de.intevation.artifactdatabase.state.State; import de.intevation.artifacts.common.utils.XMLUtils; import de.intevation.artifacts.common.utils.XMLUtils.ElementCreator; public abstract class StaticFLYSArtifact extends FLYSArtifact { private static final Logger logger = Logger.getLogger(StaticFLYSArtifact.class); @Override public Document describe(Document data, CallContext cc) { logger.debug("Describe artifact: " + identifier()); Document desc = XMLUtils.newDocument(); ElementCreator creator = new ElementCreator( desc, ArtifactNamespaceContext.NAMESPACE_URI, ArtifactNamespaceContext.NAMESPACE_PREFIX); Element root = ProtocolUtils.createRootNode(creator); desc.appendChild(root); ProtocolUtils.appendDescribeHeader(creator, root, identifier(), hash()); root.appendChild(createOutputModes(cc, desc, creator)); return desc; } protected Element createOutputModes( CallContext cc, Document doc, ElementCreator creator) { Element outs = ProtocolUtils.createArtNode( creator, "outputmodes", null, null); State state = getCurrentState(cc); List<Output> list = state.getOutputs(); if (list != null && list.size() > 0) { List<Facet> fs = facets.get(state.getID()); if (fs != null && fs.size() > 0) { List<Output> generated = generateOutputs(list, fs); logger.debug("Found " + fs.size() + " current facets."); if (!generated.isEmpty()) { ProtocolUtils.appendOutputModes( doc, outs, generated); } } else { logger.debug("No facets found for the current state."); } } return outs; } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :