comparison gnv-artifacts/src/main/java/de/intevation/gnv/artifacts/GNVArtifactBase.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 078ba6799bd2
children d47901df0a14
comparison
equal deleted inserted replaced
724:9ba6bb85d6dd 725:dde7f51dbe1e
1 /**
2 *
3 */
4 package de.intevation.gnv.artifacts; 1 package de.intevation.gnv.artifacts;
5 2
6 import de.intevation.artifactdatabase.Config; 3 import de.intevation.artifactdatabase.Config;
7 import de.intevation.artifactdatabase.ProxyArtifact; 4 import de.intevation.artifactdatabase.ProxyArtifact;
8 import de.intevation.artifactdatabase.XMLUtils; 5 import de.intevation.artifactdatabase.XMLUtils;
42 import java.util.ArrayList; 39 import java.util.ArrayList;
43 import java.util.Collection; 40 import java.util.Collection;
44 import java.util.HashMap; 41 import java.util.HashMap;
45 import java.util.Iterator; 42 import java.util.Iterator;
46 import java.util.List; 43 import java.util.List;
44 import java.util.Locale;
47 import java.util.Map; 45 import java.util.Map;
48 46
49 import javax.xml.xpath.XPathConstants; 47 import javax.xml.xpath.XPathConstants;
50 48
51 import org.apache.log4j.Logger; 49 import org.apache.log4j.Logger;
342 * de.intevation.artifacts.CallContext) 340 * de.intevation.artifacts.CallContext)
343 */ 341 */
344 @Override 342 @Override
345 public Document feed(Document target, CallContext context) { 343 public Document feed(Document target, CallContext context) {
346 log.debug("GNVArtifactBase.feed"); 344 log.debug("GNVArtifactBase.feed");
347 Document result = XMLUtils.newDocument(); 345 RessourceFactory fac = RessourceFactory.getInstance();
346 Locale[] locales = fac.getLocales();
347 Locale locale = context.getMeta().getPreferredLocale(locales);
348 Document result = XMLUtils.newDocument();
349
348 try { 350 try {
349 if (this.current != null) { 351 if (this.current != null) {
350 Collection<InputData> inputData = this.parseInputData( 352 Collection<InputData> inputData = this.parseInputData(
351 target, 353 target,
352 XPATH_INPUT_DATA); 354 XPATH_INPUT_DATA);
353 355
354 if (!inputData.isEmpty()){ 356 if (!inputData.isEmpty()){
355 current.feed(inputData, super.identifier); 357 result = current.feed(context, inputData, super.identifier);
356 result = new ArtifactXMLUtilities().createSuccessReport(
357 "Feed success", XMLUtils.newDocument());
358 }else{ 358 }else{
359 String msg = "No Inputdata given. Please select at least one Entry."; 359 //String msg = "No Inputdata given. Please select at least one Entry.";
360 String msg = fac.getRessource(
361 locale,
362 EXCEPTION_NO_INPUT,
363 EXCEPTION_NO_INPUT);
364
360 log.warn(msg); 365 log.warn(msg);
361 result = new ArtifactXMLUtilities().createExceptionReport(msg, 366 result = new ArtifactXMLUtilities().createInputExceptionReport(
362 XMLUtils.newDocument()); 367 msg,
368 XMLUtils.newDocument());
363 } 369 }
364 } else { 370 } else {
365 String msg = "No State instantiated"; 371 String msg = "No State instantiated";
366 log.warn(msg); 372 log.warn(msg);
367 result = new ArtifactXMLUtilities().createExceptionReport(msg, 373 result = new ArtifactXMLUtilities().createExceptionReport(msg,

http://dive4elements.wald.intevation.org