diff artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/CalculationSelectSinfo.java @ 8854:7bbfb24e6eec

SINFO - first prototype of BArt Fließtiefen
author gernotbelger
date Thu, 18 Jan 2018 18:34:41 +0100
parents
children 28df64078f27
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/CalculationSelectSinfo.java	Thu Jan 18 18:34:41 2018 +0100
@@ -0,0 +1,76 @@
+/* Copyright (C) 2017 by Bundesanstalt für Gewässerkunde
+ * Software engineering by Intevation GmbH
+ *
+ * This file is Free Software under the GNU AGPL (>=v3)
+ * and comes with ABSOLUTELY NO WARRANTY! Check out the
+ * documentation coming with Dive4Elements River for details.
+ */
+
+package org.dive4elements.river.artifacts.sinfo;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.apache.log4j.Logger;
+import org.dive4elements.artifacts.Artifact;
+import org.dive4elements.artifacts.CallContext;
+import org.dive4elements.artifacts.CallMeta;
+import org.dive4elements.artifacts.common.utils.XMLUtils;
+import org.dive4elements.river.artifacts.resources.Resources;
+import org.dive4elements.river.artifacts.states.DefaultState;
+import org.w3c.dom.Element;
+
+/**
+ * @author Gernot Belger
+ */
+public class CalculationSelectSinfo extends DefaultState {
+
+	private static final long serialVersionUID = 1L;
+
+	/** The log that is used in this class. */
+    private static Logger log = Logger.getLogger(CalculationSelectSinfo.class);
+
+    public CalculationSelectSinfo() {
+    }
+
+
+    @Override
+    protected Element[] createItems(
+        XMLUtils.ElementCreator cr,
+        Artifact    artifact,
+        String      name,
+        CallContext context)
+    {
+        final CallMeta meta   = context.getMeta();
+        
+        final Collection<Element> calcs = new ArrayList<>(SinfoCalcMode.values().length);
+
+        for (final SinfoCalcMode calcMode : SinfoCalcMode.values()) {
+        	final String calc = calcMode.name();
+        	
+        	final String label = Resources.getMsg(meta, calc, calc);
+        	
+        	final Element element = createItem(
+        			cr, new String[] {
+        					label,
+        					calc
+        			});
+        	calcs.add(element);
+		}
+        
+        return calcs.toArray(new Element[calcs.size()]);
+    }
+
+    @Override
+    public boolean validate(Artifact artifact)
+    throws IllegalArgumentException
+    {
+        log.debug("CalculationSelect.validate");
+
+        final SINFOArtifact sinfo = (SINFOArtifact) artifact;
+        /* throws an exception if calculation mode is invalid */
+        sinfo.getCalculationMode();
+        return true;
+    }
+}
+// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :

http://dive4elements.wald.intevation.org