comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/RiverSelect.java @ 324:cd9e397cc2a8

The inserted river is validated in the feed operation(). flys-artifacts/trunk@1718 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Mon, 18 Apr 2011 13:21:52 +0000
parents 89bd0417418f
children f165c7d5d6db
comparison
equal deleted inserted replaced
323:b33ba2cd4a3e 324:cd9e397cc2a8
1 package de.intevation.flys.artifacts.states; 1 package de.intevation.flys.artifacts.states;
2 2
3 import java.util.List; 3 import java.util.List;
4 import java.util.Map;
4 5
5 import org.apache.log4j.Logger; 6 import org.apache.log4j.Logger;
6 7
7 import org.w3c.dom.Element; 8 import org.w3c.dom.Element;
8 import org.w3c.dom.Node; 9 import org.w3c.dom.Node;
15 import de.intevation.artifactdatabase.ProtocolUtils; 16 import de.intevation.artifactdatabase.ProtocolUtils;
16 import de.intevation.artifactdatabase.data.StateData; 17 import de.intevation.artifactdatabase.data.StateData;
17 18
18 import de.intevation.flys.model.River; 19 import de.intevation.flys.model.River;
19 20
21 import de.intevation.flys.artifacts.FLYSArtifact;
20 import de.intevation.flys.artifacts.model.RiverFactory; 22 import de.intevation.flys.artifacts.model.RiverFactory;
21
22 import de.intevation.flys.artifacts.resources.Resources; 23 import de.intevation.flys.artifacts.resources.Resources;
23 24
24 25
25 /** 26 /**
26 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> 27 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
27 */ 28 */
28 public class RiverSelect extends DefaultState { 29 public class RiverSelect extends DefaultState {
29 30
30 /** The logger used in this class. */ 31 /** The logger used in this class. */
31 private static Logger logger = Logger.getLogger(RiverSelect.class); 32 private static Logger logger = Logger.getLogger(RiverSelect.class);
33
34
35 /** Error message that is thrown if no river was found based on a given
36 * name.*/
37 public static final String ERROR_NO_SUCH_RIVER =
38 "error_feed_no_such_river";
39
40 /** Error message that is thrown if no river was found based on a given
41 * name.*/
42 public static final String ERROR_NO_RIVER_SELECTED =
43 "error_feed_no_river_selected";
44
32 45
33 /** 46 /**
34 * The default constructor that initializes an empty State object. 47 * The default constructor that initializes an empty State object.
35 */ 48 */
36 public RiverSelect() { 49 public RiverSelect() {
114 item.appendChild(label); 127 item.appendChild(label);
115 item.appendChild(value); 128 item.appendChild(value);
116 129
117 return item; 130 return item;
118 } 131 }
132
133
134 @Override
135 public boolean validate(Artifact artifact, CallContext context)
136 throws IllegalArgumentException
137 {
138 logger.debug("RiverSelect.validate");
139
140 Map<String, StateData> data = getData();
141
142 StateData dRiver = data.get("river");
143
144 if (dRiver == null || dRiver.getValue() == null) {
145 throw new IllegalArgumentException(ERROR_NO_RIVER_SELECTED);
146 }
147
148 River river = RiverFactory.getRiver((String) dRiver.getValue());
149
150 if (river == null) {
151 throw new IllegalArgumentException(ERROR_NO_SUCH_RIVER);
152 }
153
154 return true;
155 }
119 } 156 }
120 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 : 157 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :

http://dive4elements.wald.intevation.org