gernotbelger@9276: /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde gernotbelger@9276: * Software engineering by Intevation GmbH gernotbelger@9276: * gernotbelger@9276: * This file is Free Software under the GNU AGPL (>=v3) gernotbelger@9276: * and comes with ABSOLUTELY NO WARRANTY! Check out the gernotbelger@9276: * documentation coming with Dive4Elements River for details. gernotbelger@9276: */ gernotbelger@9276: package org.dive4elements.river.artifacts.bundu.bezugswst; gernotbelger@9276: gernotbelger@9276: import org.apache.log4j.Logger; gernotbelger@9276: import org.dive4elements.artifacts.Artifact; gernotbelger@9277: import org.dive4elements.artifacts.CallContext; gernotbelger@9277: import org.dive4elements.artifacts.common.utils.XMLUtils; gernotbelger@9276: import org.dive4elements.river.artifacts.D4EArtifact; gernotbelger@9276: import org.dive4elements.river.artifacts.states.WQAdapted; gernotbelger@9277: import org.w3c.dom.Element; gernotbelger@9276: gernotbelger@9276: /** gernotbelger@9276: * State to input W/Q data for fixings gernotbelger@9277: * gernotbelger@9276: * @author Andre Heinecke gernotbelger@9276: */ gernotbelger@9276: public class BunduWstWQFixing extends WQAdapted { gernotbelger@9276: gernotbelger@9288: private static final long serialVersionUID = 1L; gernotbelger@9288: gernotbelger@9276: /** The log used in this state. */ gernotbelger@9276: private static Logger log = Logger.getLogger(BunduWstWQFixing.class); gernotbelger@9276: gernotbelger@9277: @Override gernotbelger@9277: protected String getUIProvider() { gernotbelger@9277: return "bundu_wst_wq_panel"; gernotbelger@9277: } gernotbelger@9277: gernotbelger@9276: @Override gernotbelger@9276: public boolean validate(final Artifact artifact) throws IllegalArgumentException { gernotbelger@9276: gernotbelger@9288: // Validation is done on client side. No wrong inputs should arrive here. gernotbelger@9288: // Validation in Super is not suitable for this case gernotbelger@9276: return true; gernotbelger@9276: } gernotbelger@9276: gernotbelger@9277: // adding bezugsjahr and dauer to client gernotbelger@9276: @Override gernotbelger@9277: protected Element[] createItems(final XMLUtils.ElementCreator ec, final Artifact artifact, final String name, final CallContext context) { gernotbelger@9277: gernotbelger@9277: final Element[] defaultElements = super.createItems(ec, artifact, name, context); gernotbelger@9288: if (name.equals("bundu.wst.mode")) { // random-name eines DataItems vom state (s. bundu.xml), sodass verhindert wird, dass an alle DataItems gernotbelger@9288: // length+bezugsjahr drangehängt werden gernotbelger@9288: final BunduAccess access = new BunduAccess((D4EArtifact) artifact); gernotbelger@9277: gernotbelger@9288: final int bezugsjahr = access.getBezugsJahr(); gernotbelger@9288: final int qSeriesLength = access.getQSeriesLength(); gernotbelger@9288: final String[] keys = new String[] { "ignore_q_series_length", "ignore_bezugsjahr" }; gernotbelger@9288: final String[] values = new String[] { String.valueOf(qSeriesLength), String.valueOf(bezugsjahr) }; gernotbelger@9277: gernotbelger@9288: return FixationChoice.appendElements(ec, defaultElements, keys, values); gernotbelger@9288: } else gernotbelger@9288: return defaultElements; gernotbelger@9276: } gernotbelger@9288: }