Mercurial > dive4elements > river
view artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/BedDiffHeightSubFacet.java @ 8750:69b0a71b4845
(issue1448) Make sq time intervals distinct only for non epoch loads
Previously it was random if the loads choosen to be part of the
distinct sq time interval loads set were epoch loads or not.
This led to wrong results beeing removed in the isEpoch check
afterwards.
author | Andre Heinecke <andre.heinecke@intevation.de> |
---|---|
date | Fri, 19 Jun 2015 16:35:13 +0200 |
parents | 6d8d7425a6b5 |
children | a805211690f7 |
line wrap: on
line source
package org.dive4elements.river.artifacts.model.minfo; import org.apache.log4j.Logger; import org.dive4elements.artifactdatabase.state.Facet; import org.dive4elements.artifacts.Artifact; import org.dive4elements.artifacts.CallContext; import org.dive4elements.river.model.BedHeight; import org.dive4elements.river.artifacts.D4EArtifact; import org.dive4elements.river.artifacts.access.RiverAccess; import org.dive4elements.river.artifacts.resources.Resources; import org.dive4elements.river.artifacts.model.CalculationResult; import org.dive4elements.river.artifacts.model.DataFacet; import org.dive4elements.river.artifacts.model.FacetTypes; import org.dive4elements.river.artifacts.states.DefaultState.ComputeType; public class BedDiffHeightSubFacet extends DataFacet implements FacetTypes { private static Logger log = Logger.getLogger(BedDiffHeightSubFacet.class); public BedDiffHeightSubFacet() { } public BedDiffHeightSubFacet(int idx, String name, String description, ComputeType type, String stateId, String hash) { super(idx, name, description, type, hash, stateId); this.metaData.put("X", "chart.longitudinal.section.xaxis.label"); this.metaData.put("Y", "chart.bedheight_middle.section.yaxis.label"); } public Object getData(Artifact artifact, CallContext context) { log.debug("Get data for bed density at index: " + index); D4EArtifact flys = (D4EArtifact) artifact; CalculationResult res = (CalculationResult) flys.compute(context, hash, stateId, type, false); BedDiffYearResult[] resultData = (BedDiffYearResult[]) res.getData(); // TODO CAST TO SPECIFIC CLASS if (resultData != null && resultData.length > index) { BedDiffYearResult data = resultData[index]; BedHeight second = BedHeight.getBedHeightById( data.getIdSecond()); this.addMetaData(Resources.getMsg( context.getMeta(), "meta.bedheight.cur.elevation"), second.getCurElevationModel().getName()); if (second.getOldElevationModel() != null) { this.addMetaData(Resources.getMsg( context.getMeta(), "meta.bedheight.old.elevation"), second.getOldElevationModel().getName()); } this.addMetaData(Resources.getMsg( context.getMeta(), "meta.bedheight.river.elevation"), new RiverAccess(flys).getRiver().getWstUnit().getName()); return data.getHeights2Data(); } return null; } /** Copy deeply. */ @Override public Facet deepCopy() { BedDiffHeightSubFacet copy = new BedDiffHeightSubFacet(); copy.set(this); copy.type = type; copy.hash = hash; copy.stateId = stateId; return copy; } }