Mercurial > dive4elements > river
comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java @ 123:ebb1cb69d847
The operations feed() and advance() return the current description of the artifact now.
flys-artifacts/trunk@1449 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Thu, 10 Mar 2011 08:38:05 +0000 |
parents | d3b8b0b1d010 |
children | 43f03f6047b9 |
comparison
equal
deleted
inserted
replaced
122:d3b8b0b1d010 | 123:ebb1cb69d847 |
---|---|
142 * | 142 * |
143 * @return a document that contains a SUCCESS or FAILURE message. | 143 * @return a document that contains a SUCCESS or FAILURE message. |
144 */ | 144 */ |
145 @Override | 145 @Override |
146 public Document feed(Document target, CallContext context) { | 146 public Document feed(Document target, CallContext context) { |
147 logger.info("FLYSArtifact.feed()"); | |
148 | |
147 Document doc = XMLUtils.newDocument(); | 149 Document doc = XMLUtils.newDocument(); |
148 | 150 |
149 XMLUtils.ElementCreator creator = new XMLUtils.ElementCreator( | 151 XMLUtils.ElementCreator creator = new XMLUtils.ElementCreator( |
150 doc, | 152 doc, |
151 ArtifactNamespaceContext.NAMESPACE_URI, | 153 ArtifactNamespaceContext.NAMESPACE_URI, |
154 Element result = creator.create("result"); | 156 Element result = creator.create("result"); |
155 doc.appendChild(result); | 157 doc.appendChild(result); |
156 | 158 |
157 try { | 159 try { |
158 saveData(target, XPATH_FEED_INPUT); | 160 saveData(target, XPATH_FEED_INPUT); |
159 creator.addAttr(result, "type", OPERATION_SUCCESSFUL, true); | 161 return describe(target, context); |
160 } | 162 } |
161 catch (IllegalArgumentException iae) { | 163 catch (IllegalArgumentException iae) { |
162 creator.addAttr(result, "type", OPERATION_FAILED, true); | 164 creator.addAttr(result, "type", OPERATION_FAILED, true); |
163 | 165 |
164 // TODO I18N this message - getMessage() returns a lookup string, no | 166 // TODO I18N this message - getMessage() returns a lookup string, no |
178 * @param context The CallContext. | 180 * @param context The CallContext. |
179 * | 181 * |
180 * @return a document that contains a SUCCESS or FAILURE message. | 182 * @return a document that contains a SUCCESS or FAILURE message. |
181 */ | 183 */ |
182 public Document advance(Document target, CallContext context) { | 184 public Document advance(Document target, CallContext context) { |
185 logger.info("FLYSArtifact.advance()"); | |
186 | |
183 Document doc = XMLUtils.newDocument(); | 187 Document doc = XMLUtils.newDocument(); |
184 | 188 |
185 XMLUtils.ElementCreator ec = new XMLUtils.ElementCreator( | 189 XMLUtils.ElementCreator ec = new XMLUtils.ElementCreator( |
186 doc, | 190 doc, |
187 ArtifactNamespaceContext.NAMESPACE_URI, | 191 ArtifactNamespaceContext.NAMESPACE_URI, |
188 ArtifactNamespaceContext.NAMESPACE_PREFIX); | 192 ArtifactNamespaceContext.NAMESPACE_PREFIX); |
189 | 193 |
190 Element result = ec.create("result"); | 194 Element result = ec.create("result"); |
191 doc.appendChild(result); | |
192 | 195 |
193 String targetState = XMLUtils.xpathString( | 196 String targetState = XMLUtils.xpathString( |
194 target, XPATH_ADVANCE_TARGET, ArtifactNamespaceContext.INSTANCE); | 197 target, XPATH_ADVANCE_TARGET, ArtifactNamespaceContext.INSTANCE); |
195 | 198 |
196 if (isStateReachable(targetState, context)) { | 199 if (isStateReachable(targetState, context)) { |
199 Vector<String> prev = getPreviousStateIds(); | 202 Vector<String> prev = getPreviousStateIds(); |
200 prev.add(getCurrentStateId()); | 203 prev.add(getCurrentStateId()); |
201 | 204 |
202 setCurrentStateId(targetState); | 205 setCurrentStateId(targetState); |
203 | 206 |
204 ec.addAttr(result, "type", OPERATION_SUCCESSFUL, true); | 207 return describe(target, context); |
205 | |
206 return doc; | |
207 } | 208 } |
208 | 209 |
209 // TODO IMPLEMENT STEP BACK! | 210 // TODO IMPLEMENT STEP BACK! |
210 | 211 |
211 logger.warn("Advance: Cannot advance to '" + targetState + "'"); | 212 logger.warn("Advance: Cannot advance to '" + targetState + "'"); |
212 | |
213 ec.addAttr(result, "type", OPERATION_FAILED, true); | 213 ec.addAttr(result, "type", OPERATION_FAILED, true); |
214 | |
215 doc.appendChild(result); | |
214 | 216 |
215 return doc; | 217 return doc; |
216 } | 218 } |
217 | 219 |
218 | 220 |