Mercurial > dive4elements > river
view flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/sq/StaticSQRelationFacet.java @ 5501:9a14eac637ec
New Artifact and static state for sq relation.
author | Raimund Renkert <rrenkert@intevation.de> |
---|---|
date | Thu, 28 Mar 2013 15:17:02 +0100 |
parents | |
children |
line wrap: on
line source
package de.intevation.flys.artifacts.states.sq; import de.intevation.artifactdatabase.state.DefaultFacet; import de.intevation.artifactdatabase.state.Facet; import de.intevation.artifacts.Artifact; import de.intevation.artifacts.CallContext; import de.intevation.flys.artifacts.math.fitting.Function; import de.intevation.flys.artifacts.math.fitting.FunctionFactory; import de.intevation.flys.artifacts.model.sq.SQFunction; import de.intevation.flys.artifacts.model.sq.StaticSQRelation; public class StaticSQRelationFacet extends DefaultFacet implements Facet { public static final String FUNCTION = "sq-pow"; private StaticSQRelation relation; public StaticSQRelationFacet( int ndx, String name, String description, StaticSQRelation relation) { super(ndx, name, description); this.relation = relation; } @Override public Object getData(Artifact artifact, CallContext context) { double qmax = relation.getQmax(); double[] coeffs = new double[] {relation.getA(), relation.getB()}; Function func = FunctionFactory.getInstance().getFunction(FUNCTION); de.intevation.flys.artifacts.math.Function function = func.instantiate(coeffs); SQFunction sqf = new SQFunction(function, 0, qmax); return sqf; } @Override public Facet deepCopy() { StaticSQRelationFacet copy = new StaticSQRelationFacet(index, name, description, relation); copy.set(this); return copy; } }