sascha@702: package de.intevation.flys.artifacts.model; sascha@702: sascha@702: import de.intevation.artifacts.Artifact; sascha@702: import de.intevation.artifacts.CallContext; sascha@702: sascha@702: import de.intevation.artifactdatabase.state.DefaultFacet; sascha@1061: import de.intevation.artifactdatabase.state.Facet; sascha@702: sascha@702: import de.intevation.flys.artifacts.FLYSArtifact; sascha@702: sascha@702: import de.intevation.flys.artifacts.states.DefaultState.ComputeType; sascha@702: sascha@702: public class DataFacet sascha@702: extends DefaultFacet sascha@702: { sascha@702: protected ComputeType type; sascha@702: protected String hash; ingo@930: protected String stateId; sascha@702: sascha@1061: public DataFacet() { sascha@1061: } sascha@1061: sascha@702: public DataFacet(String name, String description) { sascha@702: this(name, description, ComputeType.ADVANCE); sascha@702: } sascha@702: sascha@702: public DataFacet(String name, String description, ComputeType type) { sascha@702: this(name, description, type, null); sascha@702: } sascha@702: sascha@702: public DataFacet( sascha@702: String name, sascha@742: String description, sascha@702: ComputeType type, sascha@702: String hash sascha@702: ) { sascha@702: super(name, description); sascha@702: this.type = type; sascha@702: this.hash = hash; sascha@702: } sascha@702: ingo@930: ingo@930: public DataFacet( ingo@930: String name, ingo@930: String description, ingo@930: ComputeType type, ingo@930: String hash, ingo@930: String stateId ingo@930: ) { ingo@930: super(name, description); ingo@930: this.type = type; ingo@930: this.hash = hash; ingo@930: this.stateId = stateId; ingo@930: } ingo@930: sascha@1061: @Override sascha@702: public Object getData(Artifact artifact, CallContext context) { sascha@702: FLYSArtifact flys = (FLYSArtifact)artifact; felix@1070: String theHash = (hash != null) ? hash : flys.hash(); ingo@930: ingo@930: return stateId != null && stateId.length() > 0 ingo@930: ? flys.compute(context, stateId, theHash, type, false) ingo@930: : flys.compute(context, theHash, type, false); sascha@702: } sascha@1061: sascha@1061: @Override sascha@1061: public Facet deepCopy() { sascha@1061: DataFacet copy = new DataFacet(); sascha@1061: copy.set(this); sascha@1061: copy.type = type; sascha@1061: copy.hash = hash; sascha@1061: copy.stateId = stateId; sascha@1061: return copy; sascha@1061: } sascha@702: } sascha@702: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :