felix@2131: package de.intevation.flys.artifacts; felix@2131: felix@2131: import java.util.ArrayList; felix@2131: import java.util.List; felix@2131: felix@2131: import org.apache.log4j.Logger; felix@2131: felix@2131: import org.w3c.dom.Document; felix@2131: felix@2131: import de.intevation.artifacts.Artifact; felix@2131: import de.intevation.artifacts.ArtifactFactory; felix@2131: import de.intevation.artifacts.CallMeta; felix@2131: felix@2131: felix@2131: import de.intevation.flys.artifacts.states.DefaultState; felix@2131: felix@2131: import de.intevation.artifactdatabase.state.Facet; sascha@3556: import de.intevation.artifactdatabase.state.FacetActivity; felix@2131: felix@2131: felix@2131: /** felix@2147: * Artifact to get hydr zones (HYKs). felix@2131: */ felix@2131: public class HYKArtifact extends StaticFLYSArtifact { felix@2131: felix@2131: /** Name of Artifact. */ felix@2131: public static final String HYK_ARTIFACT_NAME = "hyk"; felix@2131: felix@2139: /** Name of data item keeping the hyk id to load formations from. */ felix@2139: public static final String HYK_ID = "hyk_artifact.data.id"; felix@2139: felix@2131: /** Name of data item keeping the km of cs master. */ felix@2131: public static final String HYK_KM = "hyk_artifact.data.km"; felix@2131: felix@2131: /** Own logger. */ felix@2131: private static final Logger logger = felix@2131: Logger.getLogger(HYKArtifact.class); felix@2131: sascha@3556: static { sascha@3556: // TODO: Move to configuration. sascha@3556: FacetActivity.Registry.getInstance() sascha@3556: .register(HYK_ARTIFACT_NAME, FacetActivity.INACTIVE); sascha@3556: } felix@2131: felix@2131: /** Return given name. */ felix@2131: @Override felix@2131: public String getName() { felix@2131: return HYK_ARTIFACT_NAME; felix@2131: } felix@2131: felix@2131: felix@2131: /** Store ids, do super.setup. */ felix@2131: @Override felix@2131: public void setup( felix@2131: String identifier, felix@2131: ArtifactFactory factory, felix@2131: Object context, felix@2131: CallMeta callMeta, felix@2131: Document data) felix@2131: { felix@2131: logger.info("HYKArtifact.setup"); felix@2131: felix@2741: String ids = getDatacageIDValue(data); felix@2131: felix@2139: logger.info("HYKArtifact.setup: id is " + ids); felix@2139: felix@2139: addStringData(HYK_ID, ids); felix@2139: felix@2139: super.setup(identifier, factory, context, callMeta, data); felix@2131: } felix@2131: felix@2131: felix@2131: /** Set km as Data. */ felix@2131: public void setKm(double km) { felix@2131: addStringData(HYK_KM, Double.toString(km)); felix@2131: } felix@2131: felix@2131: ingo@2701: /** Get km from state data. */ ingo@2701: public double getKm() { ingo@2701: Double km = getDataAsDouble(HYK_KM); ingo@2701: if (km == null) { ingo@2701: // XXX returning 0 is to be compatible to older versions that had an ingo@2701: // own method getDataAsDouble that returned 0 if parsing the ingo@2701: // parameter failed. felix@2131: return 0; felix@2131: } ingo@2701: else { ingo@2701: return km; ingo@2701: } felix@2131: } felix@2131: felix@2147: felix@2139: /** Get hyk-id from state data. */ felix@2139: public int getHykId() { felix@2139: return getDataAsInteger(HYK_ID); felix@2139: } felix@2139: felix@2147: felix@2131: /** Do not copy data from daddyfact. */ felix@2131: @Override felix@2131: protected void initialize( felix@2131: Artifact artifact, felix@2131: Object context, felix@2131: CallMeta callMeta) felix@2131: { felix@2131: logger.debug("HYKArtifact.initialize"); felix@2131: WINFOArtifact winfo = (WINFOArtifact) artifact; felix@2131: importData(winfo, "river"); felix@2131: felix@2131: List fs = new ArrayList(); felix@2131: felix@2131: DefaultState state = (DefaultState) getCurrentState(context); felix@2131: state.computeInit(this, hash(), context, callMeta, fs); sascha@3076: if (!fs.isEmpty()) { sascha@3076: logger.debug("Facets to add in HYKArtifact.initialize ."); sascha@3076: facets.put(getCurrentStateId(), fs); sascha@3076: } sascha@3076: else { felix@2131: logger.debug("No facets to add in HYKArtifact.initialize (" felix@2131: + state.getID() + ")."); felix@2131: } felix@2131: } felix@2131: } felix@2131: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :