Mercurial > dive4elements > river
diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/MINFOArtifact.java @ 3193:2f922be407ea
Moved common code of the *Artifacts into FLYSArtifact.
flys-artifacts/trunk@4809 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Wed, 27 Jun 2012 13:45:55 +0000 |
parents | b60751cfdd6c |
children | b888c5eb65b3 |
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/MINFOArtifact.java Wed Jun 27 11:50:24 2012 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/MINFOArtifact.java Wed Jun 27 13:45:55 2012 +0000 @@ -1,43 +1,15 @@ package de.intevation.flys.artifacts; -import de.intevation.artifactdatabase.ProtocolUtils; - -import de.intevation.artifactdatabase.state.Output; -import de.intevation.artifactdatabase.state.State; -import de.intevation.artifactdatabase.state.StateEngine; - -import de.intevation.artifactdatabase.transition.TransitionEngine; - -import de.intevation.artifacts.CallContext; -import de.intevation.artifacts.Message; - -import de.intevation.artifacts.common.ArtifactNamespaceContext; - -import de.intevation.artifacts.common.utils.XMLUtils.ElementCreator; - -import de.intevation.artifacts.common.utils.XMLUtils; - -import de.intevation.flys.artifacts.context.FLYSContext; - -import de.intevation.flys.artifacts.model.CalculationMessage; import de.intevation.flys.artifacts.model.FacetTypes; -import de.intevation.flys.artifacts.states.DefaultState; import de.intevation.flys.artifacts.states.SoundingsSelect; import de.intevation.flys.utils.FLYSUtils; import gnu.trove.TIntArrayList; -import java.util.LinkedList; -import java.util.List; - import org.apache.log4j.Logger; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.Node; - /** * The default MINFO artifact. * @@ -63,192 +35,16 @@ public MINFOArtifact() { } - - /** - * This method returns a description of this artifact. - * - * @param data Some data. - * @param context The CallContext. - * - * @return the description of this artifact. - */ - public Document describe(Document data, CallContext context) { - logger.debug("Describe: the current state is: " + getCurrentStateId()); - - FLYSContext flysContext = FLYSUtils.getFlysContext(context); - StateEngine stateEngine = (StateEngine) flysContext.get( - FLYSContext.STATE_ENGINE_KEY); - - TransitionEngine transitionEngine = (TransitionEngine) flysContext.get( - FLYSContext.TRANSITION_ENGINE_KEY); - - List<State> reachable = transitionEngine.getReachableStates( - this, getCurrentState(context), stateEngine); - - Document description = XMLUtils.newDocument(); - XMLUtils.ElementCreator creator = new XMLUtils.ElementCreator( - description, - ArtifactNamespaceContext.NAMESPACE_URI, - ArtifactNamespaceContext.NAMESPACE_PREFIX); - - Element root = ProtocolUtils.createRootNode(creator); - description.appendChild(root); - - State current = getCurrentState(context); - - ProtocolUtils.appendDescribeHeader(creator, root, identifier(), hash()); - ProtocolUtils.appendState(creator, root, current); - ProtocolUtils.appendReachableStates(creator, root, reachable); - - appendBackgroundActivity(creator, root, context); - - Element name = ProtocolUtils.createArtNode( - creator, "name", - new String[] { "value" }, - new String[] { getName() }); - - Element ui = ProtocolUtils.createArtNode( - creator, "ui", null, null); - - Element staticUI = ProtocolUtils.createArtNode( - creator, "static", null, null); - - Element outs = ProtocolUtils.createArtNode( - creator, "outputmodes", null, null); - appendOutputModes(description, outs, context, identifier()); - - appendStaticUI(description, staticUI, context, identifier()); - - Element dynamic = current.describe( - this, - description, - root, - context, - identifier()); - - if (dynamic != null) { - ui.appendChild(dynamic); - } - - ui.appendChild(staticUI); - - root.appendChild(name); - root.appendChild(ui); - root.appendChild(outs); - - return description; - } - - /** * Returns the name of the concrete artifact. * * @return the name of the concrete artifact. */ + @Override public String getName() { return ARTIFACT_NAME; } - - protected static void appendBackgroundActivity( - ElementCreator cr, - Element root, - CallContext context - ) { - Element inBackground = cr.create("background-processing"); - root.appendChild(inBackground); - - cr.addAttr( - inBackground, - "value", - String.valueOf(context.isInBackground()), - true); - - LinkedList<Message> messages = context.getBackgroundMessages(); - - if (messages == null) { - return; - } - - CalculationMessage message = (CalculationMessage) messages.getLast(); - cr.addAttr( - inBackground, - "steps", - String.valueOf(message.getSteps()), - true); - - cr.addAttr( - inBackground, - "currentStep", - String.valueOf(message.getCurrentStep()), - true); - - inBackground.setTextContent(message.getMessage()); - } - - - /** - * Append output mode nodes to a document. - */ - protected void appendOutputModes( - Document doc, - Element outs, - CallContext context, - String uuid) - { - List<Output> generated = getOutputs(context); - logger.debug("This Artifact has " + generated.size() + " Outputs."); - - ProtocolUtils.appendOutputModes(doc, outs, generated); - } - - - /** - * This method appends the static data - that has already been inserted by - * the user - to the static node of the DESCRIBE document. - * - * @param doc The document. - * @param ui The root node. - * @param context The CallContext. - * @param uuid The identifier of the artifact. - */ - protected void appendStaticUI( - Document doc, - Node ui, - CallContext context, - String uuid) - { - List<String> stateIds = getPreviousStateIds(); - - FLYSContext flysContext = FLYSUtils.getFlysContext(context); - StateEngine engine = (StateEngine) flysContext.get( - FLYSContext.STATE_ENGINE_KEY); - - for (String stateId: stateIds) { - logger.debug("Append static data for state: " + stateId); - DefaultState state = (DefaultState) engine.getState(stateId); - - ui.appendChild(state.describeStatic(this, doc, ui, context, uuid)); - } - } - - - /** - * Determines Facets initial disposition regarding activity (think of - * selection in Client ThemeList GUI). This will be checked one time - * when the facet enters a collections describe document. - * - * @param facetName name of the facet. - * @param index index of the facet. - * @return 0 if not active - */ - @Override - public int getInitialFacetActivity(String outputName, String facetName, int index) { - logger.warn("MINFOArtifact.getInitialFacetActivity: not implemented!"); - return 1; - } - - public int[] getMainChannels() { String data = getDataAsString("main.channel");