sascha@3552: package de.intevation.flys.artifacts.model.sq; sascha@3552: sascha@3552: import de.intevation.artifactdatabase.state.Facet; sascha@3552: sascha@3552: import de.intevation.artifacts.Artifact; sascha@3552: import de.intevation.artifacts.CallContext; sascha@3552: sascha@3552: import de.intevation.flys.artifacts.FLYSArtifact; sascha@3552: sascha@3552: import de.intevation.flys.artifacts.model.CalculationResult; sascha@3552: import de.intevation.flys.artifacts.model.DataFacet; sascha@3552: import de.intevation.flys.artifacts.model.FacetTypes; sascha@3552: sascha@3552: import de.intevation.flys.artifacts.states.DefaultState.ComputeType; sascha@3552: sascha@3552: import org.apache.log4j.Logger; sascha@3552: sascha@3552: public class SQOutlierMeasurementFacet sascha@3552: extends DataFacet sascha@3552: implements FacetTypes sascha@3552: { sascha@3552: private static final Logger log = sascha@3552: Logger.getLogger(SQOutlierMeasurementFacet.class); sascha@3552: sascha@3552: private int fractionIdx; sascha@3552: sascha@3552: public static final int BITMASK_ITERATION = (1 << 16) - 1; sascha@3552: sascha@3552: public SQOutlierMeasurementFacet() { sascha@3552: } sascha@3552: sascha@3552: public SQOutlierMeasurementFacet( sascha@3552: int idx, sascha@3552: int fractionIdx, sascha@3552: String name, sascha@3552: String description, sascha@3552: String hash, sascha@3552: String stateId sascha@3552: ) { sascha@3552: super(idx, name, description, ComputeType.ADVANCE, hash, stateId); sascha@3552: this.fractionIdx = fractionIdx; sascha@3552: } sascha@3552: sascha@3552: @Override sascha@3552: public Object getData(Artifact artifact, CallContext context) { sascha@3552: log.debug("SQOutlierMeasurementFacet.getData"); sascha@3552: sascha@3552: if (!(artifact instanceof FLYSArtifact)) { sascha@3552: return null; sascha@3552: } sascha@3552: sascha@3552: FLYSArtifact flys = (FLYSArtifact) artifact; sascha@3552: sascha@3552: CalculationResult res = (CalculationResult) flys.compute( sascha@3552: context, ComputeType.ADVANCE, false); sascha@3552: sascha@3552: int idx = this.index >> 16; sascha@3552: int iter = this.index & BITMASK_ITERATION; sascha@3552: sascha@3552: SQResult[] result = (SQResult[]) res.getData(); sascha@3552: SQFractionResult fResult = result[idx].getFraction(fractionIdx); sascha@3552: sascha@3552: return fResult.getMeasurements(iter); sascha@3552: } sascha@3552: sascha@3552: @Override sascha@3552: public Facet deepCopy() { sascha@3552: SQOutlierMeasurementFacet copy = new SQOutlierMeasurementFacet(); sascha@3552: copy.set(this); sascha@3552: return copy; sascha@3552: } sascha@3552: } sascha@3552: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :