felix@2723: package de.intevation.flys.artifacts; felix@2723: felix@2723: import java.util.ArrayList; felix@2723: import java.util.List; felix@2723: felix@2723: import org.apache.log4j.Logger; felix@2723: felix@2723: import org.w3c.dom.Document; felix@2723: felix@2723: import de.intevation.artifactdatabase.state.Facet; felix@2723: felix@2723: import de.intevation.artifacts.Artifact; felix@2723: import de.intevation.artifacts.ArtifactFactory; felix@2723: import de.intevation.artifacts.ArtifactNamespaceContext; felix@2723: import de.intevation.artifacts.CallMeta; felix@2723: felix@2723: import de.intevation.artifacts.common.utils.XMLUtils; felix@2723: felix@2723: import de.intevation.flys.artifacts.model.FacetTypes; felix@2723: felix@2723: import de.intevation.flys.artifacts.states.DefaultState; felix@2723: felix@2723: felix@2723: felix@2723: /** felix@2723: * Artifact to store user-added points. felix@2723: */ felix@2723: public class GaugeDischargeArtifact felix@2723: extends WINFOArtifact felix@2723: implements FacetTypes felix@2723: { felix@2723: /** The logger for this class. */ felix@2723: private static Logger logger = Logger.getLogger(GaugeDischargeArtifact.class); felix@2723: felix@2723: /** The name of the artifact. */ felix@2723: public static final String ARTIFACT_NAME = "historicalq"; felix@2723: felix@2723: // TODO make this one globally available felix@2723: public static final String XPATH_DATA = felix@2723: "/art:action/art:ids/@value"; felix@2723: felix@2723: /** felix@2723: * Trivial Constructor. felix@2723: */ felix@2723: public GaugeDischargeArtifact() { felix@2723: logger.debug("GaugeDischargeArtifact.HistoricalQArtifact()"); felix@2723: } felix@2723: felix@2723: felix@2723: /** felix@2723: * Gets called from factory, to set things up. felix@2723: * Especially, when loaded via datacage mechanisms, provide the felix@2723: * data document. felix@2723: * @param data filled with stuff from dc, if any. felix@2723: */ felix@2723: @Override felix@2723: public void setup( felix@2723: String identifier, felix@2723: ArtifactFactory factory, felix@2723: Object context, felix@2723: CallMeta callMeta, felix@2723: Document data) felix@2723: { felix@2723: logger.debug("GaugeDischargeArtifact.setup"); felix@2723: super.setup(identifier, factory, context, callMeta, data); felix@2723: String ids = XMLUtils.xpathString( felix@2723: data, XPATH_DATA, ArtifactNamespaceContext.INSTANCE); felix@2723: logger.debug("id for gaugedischarge: " + ids); felix@2723: } felix@2723: felix@2723: felix@2723: /** Return the name of this artifact. */ felix@2723: public String getName() { felix@2723: return ARTIFACT_NAME; felix@2723: } felix@2723: felix@2723: felix@2723: /** Access state data storing the jsonstring with points. felix@2723: public String getPointsData(String facetName) { felix@2723: return getDataAsString(facetName + ".data"); felix@2723: }*/ felix@2723: felix@2723: felix@2723: /** felix@2723: * Setup state and facet, copy from master artifact. felix@2723: */ felix@2723: @Override felix@2723: protected void initialize(Artifact art, Object context, CallMeta meta) { felix@2723: logger.debug("GaugeDischargeArtifact.initialize"); felix@2723: List fs = new ArrayList(); felix@2723: FLYSArtifact artifact = (FLYSArtifact) art; felix@2723: felix@2723: // Get the location(s) felix@2723: importData(artifact, "ld_mode"); felix@2723: importData(artifact, "ld_from"); felix@2723: importData(artifact, "ld_to"); felix@2723: importData(artifact, "ld_locations"); felix@2723: felix@2723: DefaultState state = (DefaultState) getCurrentState(context); felix@2723: state.computeInit(this, hash(), context, meta, fs); felix@2723: if (!fs.isEmpty()) { felix@2723: logger.debug("Facets to add in GaugeDischargeArtifact.initialize ."); felix@2723: facets.put(getCurrentStateId(), fs); felix@2723: } felix@2723: else { felix@2723: logger.debug("No facets to add in GaugeDischargeArtifact.initialize (" felix@2723: + state.getID() + ")."); felix@2723: } felix@2723: } felix@2723: felix@2723: felix@2723: felix@2723: /** felix@2723: * Determines Facets initial disposition regarding activity (think of felix@2723: * selection in Client ThemeList GUI). This will be checked one time felix@2723: * when the facet enters a collections describe document. felix@2723: * felix@2723: * @param facetName name of the facet. felix@2723: * @param index index of the facet. felix@2723: * @return 0 if not active felix@2723: */ felix@2723: @Override felix@2723: public int getInitialFacetActivity( felix@2723: String outputName, felix@2723: String facetName, felix@2723: int index) felix@2723: { felix@2723: return 1; felix@2723: } felix@2723: } felix@2723: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :