Mercurial > dive4elements > gnv-client
comparison gnv-artifacts/src/main/java/de/intevation/gnv/state/MinMaxState.java @ 725:dde7f51dbe1e
Improved exception handling while feeding an artifact.
gnv-artifacts/trunk@757 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Wed, 10 Mar 2010 13:27:14 +0000 |
parents | 65f09139e9b3 |
children | 9a828e5a2390 |
comparison
equal
deleted
inserted
replaced
724:9ba6bb85d6dd | 725:dde7f51dbe1e |
---|---|
1 package de.intevation.gnv.state; | 1 package de.intevation.gnv.state; |
2 | 2 |
3 import de.intevation.artifactdatabase.XMLUtils; | 3 import de.intevation.artifactdatabase.XMLUtils; |
4 | 4 |
5 import de.intevation.artifacts.CallContext; | |
5 import de.intevation.artifacts.CallMeta; | 6 import de.intevation.artifacts.CallMeta; |
6 | 7 |
7 import de.intevation.gnv.artifacts.ressource.RessourceFactory; | 8 import de.intevation.gnv.artifacts.ressource.RessourceFactory; |
8 | 9 |
9 import de.intevation.gnv.geobackend.base.Result; | 10 import de.intevation.gnv.geobackend.base.Result; |
35 * @author Tim Englich (tim.englich@intevation.de) | 36 * @author Tim Englich (tim.englich@intevation.de) |
36 * @author Ingo Weinzierl (ingo.weinzierl@intevation.de) | 37 * @author Ingo Weinzierl (ingo.weinzierl@intevation.de) |
37 */ | 38 */ |
38 public class MinMaxState extends StateBase { | 39 public class MinMaxState extends StateBase { |
39 | 40 |
40 /** | |
41 * The UID of this Class | |
42 */ | |
43 private static final long serialVersionUID = -3525903792105187408L; | |
44 /** | 41 /** |
45 * the logger, used to log exceptions and additonaly information | 42 * the logger, used to log exceptions and additonaly information |
46 */ | 43 */ |
47 private static Logger log = Logger.getLogger(MinMaxState.class); | 44 private static Logger log = Logger.getLogger(MinMaxState.class); |
48 | 45 |
82 /** | 79 /** |
83 * @see de.intevation.gnv.state.StateBase#feed(java.util.Collection, | 80 * @see de.intevation.gnv.state.StateBase#feed(java.util.Collection, |
84 * java.lang.String) | 81 * java.lang.String) |
85 */ | 82 */ |
86 @Override | 83 @Override |
87 public void feed(Collection<InputData> inputData, String uuid) | 84 public Document feed( |
88 throws StateException | 85 CallContext context, |
89 { | 86 Collection<InputData> inputData, |
90 if (inputData == null) | 87 String uuid) |
91 return; | 88 throws StateException { |
89 RessourceFactory resFactory = RessourceFactory.getInstance(); | |
90 | |
91 if (inputData == null) { | |
92 String msg = "No input data given."; | |
93 log.warn(msg); | |
94 return feedFailure(msg); | |
95 } | |
92 | 96 |
93 InputValidator iv = new InputValidator(); | 97 InputValidator iv = new InputValidator(); |
94 Iterator iter = inputData.iterator(); | 98 Iterator iter = inputData.iterator(); |
95 | 99 |
96 Object min = null; | 100 Object min = null; |
97 Object max = null; | 101 Object max = null; |
98 | 102 |
99 while (iter.hasNext()) { | 103 while (iter.hasNext()) { |
100 InputData tmp = (InputData) iter.next(); | 104 InputData tmp = (InputData) iter.next(); |
101 InputValue meta = inputValues.get(tmp.getName()); | 105 InputValue meta = inputValues.get(tmp.getName()); |
106 String type = meta.getType(); | |
102 String value = tmp.getValue(); | 107 String value = tmp.getValue(); |
103 String name = tmp.getName(); | 108 String name = tmp.getName(); |
104 | 109 |
105 if (meta == null) { | 110 if (meta == null) { |
106 log.warn("Input data not expected here. Data will be ignored."); | 111 String msg = "Input data not expected here. Data will be ignored."; |
107 return; | 112 log.warn(msg); |
108 } | 113 return feedFailure(msg); |
109 | 114 } |
110 boolean valid = iv.isInputValid(value, meta.getType()); | 115 |
116 boolean valid = iv.isInputValid(value, type); | |
111 if (!valid) { | 117 if (!valid) { |
112 String msg = "Input is not valid for this state."; | 118 String msg = "Input is not valid for this state."; |
113 log.error(msg); | 119 log.error(msg); |
114 throw new StateException(msg); | 120 return feedFailure(msg); |
115 } | 121 } |
116 | 122 |
117 if (name.equals(MINVALUEFIELDNAME)) { | 123 if (name.equals(MINVALUEFIELDNAME)) { |
118 min = value; | 124 min = value; |
119 } | 125 } |
120 | 126 |
121 if (name.equals(MAXVALUEFIELDNAME)) { | 127 if (name.equals(MAXVALUEFIELDNAME)) { |
122 max = value; | 128 max = value; |
123 } | 129 } |
124 } | 130 |
125 | 131 if (min != null && max != null) { |
126 if (min != null && max != null) { | 132 if (!iv.isInputValid((String) min, (String) max, type)) { |
127 DescribeData values = new DefaultMinMaxDescribeData( | 133 String msg = "Input is not valid for this state."; |
128 dataName, min, max, getID()); | 134 log.error(msg); |
129 | 135 return feedFailure(msg); |
130 this.inputData.put(dataName, new DefaultInputData(dataName, values)); | 136 } |
131 } | 137 } |
138 } | |
139 | |
140 | |
141 | |
142 DescribeData values = new DefaultMinMaxDescribeData( | |
143 dataName, min, max, getID()); | |
144 | |
145 this.inputData.put(dataName, new DefaultInputData(dataName, values)); | |
146 | |
147 return feedSuccess(); | |
132 } | 148 } |
133 | 149 |
134 | 150 |
135 @Override | 151 @Override |
136 protected void appendToStaticNode( | 152 protected void appendToStaticNode( |