comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/services/MetaDataService.java @ 415:7c018f466d6d

Datacage: Added river parameter to meta data services. flys-artifacts/trunk@1879 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Tue, 10 May 2011 12:43:12 +0000
parents fc3cf0ef777e
children 24b53f9aa9dc
comparison
equal deleted inserted replaced
414:0385bcc4229a 415:7c018f466d6d
7 import java.sql.SQLException; 7 import java.sql.SQLException;
8 8
9 import org.w3c.dom.Document; 9 import org.w3c.dom.Document;
10 10
11 import org.apache.log4j.Logger; 11 import org.apache.log4j.Logger;
12
13 import java.util.Map;
14 import java.util.HashMap;
12 15
13 import de.intevation.artifacts.CallMeta; 16 import de.intevation.artifacts.CallMeta;
14 import de.intevation.artifacts.ServiceFactory; 17 import de.intevation.artifacts.ServiceFactory;
15 18
16 import de.intevation.artifactdatabase.DefaultService; 19 import de.intevation.artifactdatabase.DefaultService;
28 public class MetaDataService 31 public class MetaDataService
29 extends DefaultService 32 extends DefaultService
30 { 33 {
31 private static Logger log = Logger.getLogger(MetaDataService.class); 34 private static Logger log = Logger.getLogger(MetaDataService.class);
32 35
36 public static final String XPATH_RIVER = "//river/@name";
37
33 public static final String META_DATA_TEMPLATE = "/metadata/template.xml"; 38 public static final String META_DATA_TEMPLATE = "/metadata/template.xml";
34 39
35 protected Builder builder; 40 protected Builder builder;
36 41
37 public MetaDataService() { 42 public MetaDataService() {
43 }
44
45 protected static Map<String, Object> extractParameters(Document data) {
46 HashMap<String, Object> parameters = new HashMap<String, Object>();
47
48 String river = XMLUtils.xpathString(data, XPATH_RIVER, null);
49
50 if (river == null || (river = river.trim()).length() == 0) {
51 river = "%"; // matches all rivers
52 }
53
54 parameters.put("river", river);
55
56 return parameters;
38 } 57 }
39 58
40 @Override 59 @Override
41 public Document process( 60 public Document process(
42 Document data, 61 Document data,
50 if (builder == null) { 69 if (builder == null) {
51 log.error("MetaDataService is not setup properly."); 70 log.error("MetaDataService is not setup properly.");
52 return result; 71 return result;
53 } 72 }
54 73
74 final Map<String, Object> parameters = extractParameters(data);
75
55 Session session = SessionHolder.acquire(); 76 Session session = SessionHolder.acquire();
56 try { 77 try {
57 session.doWork(new Work() { 78 session.doWork(new Work() {
58 @Override 79 @Override
59 public void execute(Connection connection) 80 public void execute(Connection connection)
60 throws SQLException 81 throws SQLException
61 { 82 {
62 log.debug("MetaDataService.execute"); 83 log.debug("MetaDataService.execute");
63 builder.build(connection, result); 84 builder.build(connection, result, parameters);
64 } 85 }
65 }); 86 });
66 } 87 }
67 finally { 88 finally {
68 session.close(); 89 session.close();

http://dive4elements.wald.intevation.org