Mercurial > dive4elements > river
view flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/ReferenceCurveFacet.java @ 5200:42bb6ff78d1b 2.9.11
Directly set the connectionInitSqls on the datasource
Somehow the factory fails to set the connectionInitSqls if
we add it to the dbcpProperties. So we now set it directly
author | Andre Heinecke <aheinecke@intevation.de> |
---|---|
date | Fri, 08 Mar 2013 11:48:33 +0100 |
parents | 5642a83420f2 |
children |
line wrap: on
line source
package de.intevation.flys.artifacts.model; import java.util.ArrayList; import java.util.List; import java.util.Collections; import de.intevation.artifactdatabase.state.Facet; import de.intevation.artifacts.Artifact; import de.intevation.artifacts.CallContext; import de.intevation.flys.artifacts.FLYSArtifact; import de.intevation.flys.artifacts.WINFOArtifact; import de.intevation.flys.artifacts.states.DefaultState.ComputeType; import org.apache.log4j.Logger; /** Facet for W-over-Ws. */ public class ReferenceCurveFacet extends DataFacet { private static Logger log = Logger.getLogger(ReferenceCurveFacet.class); public static final String CONTEXT_KEY = "reference.curve.axis.scale"; /** Blackboard data provider key for reference curves start km. */ public static final String BB_REFERENCECURVE_STARTKM = "reference_curve.startkm"; /** Blackboard data provider key for reference curves end kms. */ public static final String BB_REFERENCECURVE_ENDKMS = "reference_curve.endkms"; public ReferenceCurveFacet() { } public ReferenceCurveFacet(int index, String name, String description) { super(index, name, description, ComputeType.ADVANCE, null, null); } public ReferenceCurveFacet( int index, String name, String description, ComputeType type, String stateID, String hash ) { super(index, name, description, type, hash, stateID); } public Object getData(Artifact artifact, CallContext context) { if (log.isDebugEnabled()) { log.debug("Get data for reference curve at index: " + index + " /stateId: " + stateId); } return getWWQQ(artifact, context); } /** * Can provide parameters of reference curve * @param key will respond on BB_REFERENCECURVE START/ENDKMS * @param param ignored * @param context ignored * @return whatever parameters for reference curve */ @Override public Object provideBlackboardData(Artifact artifact, Object key, Object param, CallContext context ) { WINFOArtifact winfo = (WINFOArtifact) artifact; if (key.equals(BB_REFERENCECURVE_STARTKM)) { return winfo.getReferenceStartKm(); } else if (key.equals(BB_REFERENCECURVE_ENDKMS)) { return winfo.getReferenceEndKms(); } else { return null; } } protected WWQQ getWWQQ(Artifact artifact, CallContext context) { FLYSArtifact winfo = (FLYSArtifact)artifact; CalculationResult res = (CalculationResult) winfo.compute(context, hash, stateId, type, false); return ((WWQQ [])res.getData())[index]; } @Override public void set(Facet other) { super.set(other); ReferenceCurveFacet o = (ReferenceCurveFacet)other; type = o.type; hash = o.hash; stateId = o.stateId; } /** Copy deeply. */ @Override public Facet deepCopy() { ReferenceCurveFacet copy = new ReferenceCurveFacet(); copy.set(this); return copy; } @Override public List getStaticDataProviderKeys(Artifact art) { List list = new ArrayList(); list.add(BB_REFERENCECURVE_STARTKM); list.add(BB_REFERENCECURVE_ENDKMS); return list; } @Override public List getDataProviderKeys(Artifact art, CallContext context) { // compute / get data Object obj = context.getContextValue(CONTEXT_KEY); if (!(obj instanceof WWAxisTypes)) { obj = new WWAxisTypes(getWWQQ(art, context)); context.putContextValue(CONTEXT_KEY, obj); } else { ((WWAxisTypes)obj).classify(getWWQQ(art, context)); } return getStaticDataProviderKeys(art);//Collections.emptyList(); } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :