ingo@696: package de.intevation.flys.artifacts.model;
ingo@696: 
sascha@2196: import de.intevation.artifactdatabase.state.Facet;
ingo@696: 
ingo@696: import de.intevation.artifacts.Artifact;
ingo@696: import de.intevation.artifacts.CallContext;
ingo@696: 
felix@2122: import de.intevation.flys.artifacts.FLYSArtifact;
ingo@696: 
sascha@697: import de.intevation.flys.artifacts.states.DefaultState.ComputeType;
ingo@696: 
sascha@2196: import org.apache.log4j.Logger;
felix@2017: 
felix@1721: /**
felix@1721:  * Facet of a Waterlevel (WQKms).
felix@1721:  */
felix@2122: public class WaterlevelFacet extends DataFacet {
ingo@696: 
ingo@696:     private static Logger logger = Logger.getLogger(WaterlevelFacet.class);
ingo@696: 
ingo@696:     public WaterlevelFacet(int index, String name, String description) {
felix@2122:         super(index, name, description, ComputeType.ADVANCE, null, null);
ingo@696:     }
ingo@696: 
sascha@722:     public WaterlevelFacet(
sascha@742:         int         index,
sascha@742:         String      name,
sascha@722:         String      description,
sascha@722:         ComputeType type,
sascha@722:         String      stateID,
sascha@722:         String      hash
sascha@722: 
sascha@722:     ) {
felix@2125:         super(index, name, description, type, hash, stateID);
felix@2122:     }
felix@2122: 
felix@2122:     public WaterlevelFacet() {
sascha@722:     }
ingo@696: 
felix@1136: 
felix@1136:     /**
felix@1136:      * Get waterlevel data.
felix@1136:      * @return a WQKms at given index.
felix@1136:      */
ingo@696:     public Object getData(Artifact artifact, CallContext context) {
sascha@2196: 
sascha@2196:         if (logger.isDebugEnabled()) {
sascha@2196:             logger.debug("Get data for waterlevels at index: " + index +
sascha@2196:                 " /stateId: " + stateId);
sascha@2196:         }
ingo@696: 
felix@2122:         FLYSArtifact winfo = (FLYSArtifact)artifact;
ingo@696: 
sascha@709:         CalculationResult res = (CalculationResult)
felix@2122:             winfo.compute(context, hash, stateId, type, false);
sascha@709: 
sascha@709:         WQKms [] wqkms = (WQKms [])res.getData();
ingo@696: 
ingo@696:         return wqkms[index];
ingo@696:     }
sascha@1061: 
felix@1136: 
felix@1136:     /** Copy deeply. */
felix@1136:     @Override
sascha@1061:     public Facet deepCopy() {
sascha@1061:         WaterlevelFacet copy = new WaterlevelFacet();
sascha@1061:         copy.set(this);
sascha@1061:         copy.type    = type;
felix@2125:         copy.hash    = hash;
felix@2122:         copy.stateId = stateId;
sascha@1061:         return copy;
sascha@1061:     }
ingo@696: }
ingo@696: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :