ingo@2713: package de.intevation.flys.artifacts.model;
ingo@2713: 
ingo@2713: import de.intevation.artifactdatabase.state.Facet;
ingo@2713: 
ingo@2713: import de.intevation.artifacts.Artifact;
ingo@2713: import de.intevation.artifacts.CallContext;
ingo@2713: 
ingo@2713: import de.intevation.flys.artifacts.FLYSArtifact;
ingo@2713: 
ingo@2713: import de.intevation.flys.artifacts.states.DefaultState.ComputeType;
ingo@2713: 
ingo@2713: import org.apache.log4j.Logger;
ingo@2713: 
ingo@2713: /**
ingo@2713:  * Facet of a MiddleBedHeight curve.
ingo@2713:  */
ingo@2713: public class MiddleBedHeightFacet extends DataFacet {
ingo@2713: 
ingo@2713:     private static Logger logger = Logger.getLogger(MiddleBedHeightFacet.class);
ingo@2713: 
ingo@2713: 
ingo@2713:     public MiddleBedHeightFacet() {
ingo@2713:         // required for clone operation deepCopy()
ingo@2713:     }
ingo@2713: 
ingo@2713: 
ingo@2713:     public MiddleBedHeightFacet(
ingo@2713:         int         idx,
ingo@2713:         String      name,
ingo@2713:         String      description,
ingo@2713:         ComputeType type,
ingo@2713:         String      stateId,
ingo@2713:         String      hash
ingo@2713:     ) {
ingo@2713:         super(idx, name, description, type, hash, stateId);
ingo@2713:     }
ingo@2713: 
ingo@2713: 
ingo@2713:     public Object getData(Artifact artifact, CallContext context) {
ingo@2713:         logger.debug("Get data for middle bed height at index: " + index);
ingo@2713: 
ingo@2713:         FLYSArtifact flys = (FLYSArtifact) artifact;
ingo@2713: 
ingo@2713:         CalculationResult res = (CalculationResult)
ingo@2713:             flys.compute(context, hash, stateId, type, false);
ingo@2713: 
ingo@2713:         MiddleBedHeightData[] data = (MiddleBedHeightData[]) res.getData();
ingo@2713: 
ingo@2713:         return data[index];
ingo@2713:     }
ingo@2713: 
ingo@2713: 
ingo@2713:     /** Copy deeply. */
ingo@2713:     @Override
ingo@2713:     public Facet deepCopy() {
ingo@2713:         MiddleBedHeightFacet copy = new MiddleBedHeightFacet();
ingo@2713:         copy.set(this);
ingo@2713:         copy.type    = type;
ingo@2713:         copy.hash    = hash;
ingo@2713:         copy.stateId = stateId;
ingo@2713:         return copy;
ingo@2713:     }
ingo@2713: }
ingo@2713: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :