Mercurial > dive4elements > river
comparison flys-artifacts/src/main/java/org/dive4elements/river/artifacts/services/ThemeListingService.java @ 5831:bd047b71ab37
Repaired internal references
author | Sascha L. Teichmann <teichmann@intevation.de> |
---|---|
date | Thu, 25 Apr 2013 12:06:39 +0200 |
parents | flys-artifacts/src/main/java/de/intevation/flys/artifacts/services/ThemeListingService.java@2f7fed1eb4bf |
children |
comparison
equal
deleted
inserted
replaced
5830:160f53ee0870 | 5831:bd047b71ab37 |
---|---|
1 package org.dive4elements.river.artifacts.services; | |
2 | |
3 import java.util.List; | |
4 | |
5 import org.apache.log4j.Logger; | |
6 | |
7 import org.w3c.dom.Document; | |
8 import org.w3c.dom.Element; | |
9 import org.w3c.dom.Node; | |
10 | |
11 import org.dive4elements.artifacts.CallMeta; | |
12 import org.dive4elements.artifacts.GlobalContext; | |
13 | |
14 import org.dive4elements.artifacts.common.utils.XMLUtils; | |
15 | |
16 import org.dive4elements.river.themes.Theme; | |
17 import org.dive4elements.river.themes.ThemeGroup; | |
18 | |
19 import org.dive4elements.river.themes.ThemeFactory; | |
20 import org.dive4elements.river.artifacts.context.FLYSContext; | |
21 | |
22 /** | |
23 * This service provides a list of themes filtered by the theme name. | |
24 * | |
25 * @author <a href="mailto:raimund.renkert@intevation.de">Raimund Renkert</a> | |
26 */ | |
27 public class ThemeListingService extends FLYSService { | |
28 | |
29 /** The logger used in this service.*/ | |
30 private static Logger logger = Logger.getLogger(ThemeListingService.class); | |
31 | |
32 private static final String XPATH_THEME_NAME = "/theme/@name"; | |
33 | |
34 protected Document doProcess( | |
35 Document data, | |
36 GlobalContext context, | |
37 CallMeta callMeta | |
38 ) { | |
39 logger.debug("ThemeListingService.process"); | |
40 String name = XMLUtils.xpathString(data, XPATH_THEME_NAME, null); | |
41 | |
42 if (name == null) { | |
43 logger.warn("No theme name provided."); | |
44 } | |
45 Document result = XMLUtils.newDocument(); | |
46 | |
47 XMLUtils.ElementCreator ec = new XMLUtils.ElementCreator( | |
48 result, | |
49 null, | |
50 null); | |
51 | |
52 List<ThemeGroup> tgs = | |
53 ThemeFactory.getThemeGroups((FLYSContext) context); | |
54 | |
55 Element te = ec.create("themes"); | |
56 | |
57 for (ThemeGroup tg: tgs) { | |
58 Element elem = ec.create("themegroup"); | |
59 if (tg.getName().equals("virtual")) { | |
60 continue; | |
61 } | |
62 ec.addAttr(elem, "name", tg.getName()); | |
63 Theme theme = tg.getThemeByName(name); | |
64 Document d = theme.toXML(); | |
65 Node imported = result.importNode(d.getDocumentElement(), true); | |
66 elem.appendChild(imported); | |
67 te.appendChild(elem); | |
68 } | |
69 | |
70 result.appendChild(te); | |
71 return result; | |
72 } | |
73 } | |
74 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |