felix@1629: package de.intevation.flys.artifacts; felix@1629: felix@1629: import de.intevation.artifactdatabase.state.Facet; felix@1629: import de.intevation.artifactdatabase.state.Output; felix@1629: felix@1629: import de.intevation.artifacts.Artifact; felix@1629: import de.intevation.artifacts.CallMeta; felix@1629: felix@1629: import de.intevation.flys.artifacts.states.DefaultState; felix@1629: felix@1629: import java.util.ArrayList; felix@1629: import java.util.List; felix@1629: felix@1629: import org.apache.log4j.Logger; felix@1629: felix@1629: felix@1629: /** felix@1629: * Clone of an WINFOArtifact to expose waterlevels only. felix@1629: * @TODO Straighten inheritance-line (waterlevel-WINFO or vice versa). felix@1629: */ felix@1629: public class WaterlevelArtifact extends WINFOArtifact { felix@1629: felix@1629: /** The logger for this class. */ felix@1629: private static Logger logger = Logger.getLogger(WaterlevelArtifact.class); felix@1629: felix@1629: /** The name of the artifact. */ felix@1629: public static final String ARTIFACT_NAME = "waterlevel"; felix@1629: felix@1629: felix@1629: /** felix@1629: * The default constructor. felix@1629: */ felix@1629: public WaterlevelArtifact() { felix@1629: } felix@1629: felix@1629: felix@1629: /** felix@1629: * Clone important stuff of an WINFOArtifact (called from factory). felix@1629: */ felix@1629: protected void initialize(Artifact artifact, felix@1629: Object context, felix@1629: CallMeta meta) { felix@1629: WINFOArtifact winfo = (WINFOArtifact) artifact; felix@1629: this.data = winfo.cloneData(); felix@1629: logger.debug("Cloned data of winfo artifact."); felix@1629: // Statically add Facets. felix@1629: List fs = new ArrayList(); felix@1629: DefaultState state = (DefaultState) getCurrentState(context); felix@1629: state.computeInit(this, hash(), context, meta, fs); felix@1629: if (!fs.isEmpty()) { felix@1629: logger.debug("Facets to add in WaterlevelArtifact.initialize ."); felix@1629: facets.put(getCurrentStateId(), fs); felix@1629: } felix@1629: else { felix@1629: logger.debug("No facets to add in WaterlevelArtifact.initialize ("+state.getID()+")."); felix@1629: } felix@1629: this.filterFacets = null; felix@1629: } felix@1629: felix@1629: felix@1629: /** felix@1629: * Prevent filtering from taking place. felix@1629: */ felix@1629: @Override felix@1629: protected List filterOutputs(List outs) { felix@1629: return outs; felix@1629: } felix@1629: felix@1629: felix@1629: /** felix@1629: * Returns the name of the concrete artifact. felix@1629: * felix@1629: * @return the name of the concrete artifact. felix@1629: */ felix@1629: public String getName() { felix@1629: return ARTIFACT_NAME; felix@1629: } felix@1629: } felix@1629: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :