Mercurial > dive4elements > framework
comparison artifact-database/src/main/java/de/intevation/artifactdatabase/rest/FactoriesResource.java @ 20:ff666592c1c3
Added factory listing '/factories' to web app.
artifacts/trunk@51 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Wed, 09 Sep 2009 14:33:25 +0000 |
parents | |
children | 1cd268e07e44 |
comparison
equal
deleted
inserted
replaced
19:1259d192e3c3 | 20:ff666592c1c3 |
---|---|
1 package de.intevation.artifactdatabase.rest; | |
2 | |
3 | |
4 import de.intevation.artifacts.ArtifactDatabase; | |
5 | |
6 import org.restlet.data.MediaType; | |
7 | |
8 import org.restlet.resource.Get; | |
9 import org.restlet.resource.ServerResource; | |
10 | |
11 import org.restlet.ext.xml.DomRepresentation; | |
12 | |
13 import java.io.IOException; | |
14 | |
15 import de.intevation.artifactdatabase.XMLUtils; | |
16 import de.intevation.artifactdatabase.XMLUtils.ElementCreator; | |
17 | |
18 import de.intevation.artifactdatabase.DefaultArtifact; | |
19 | |
20 import org.w3c.dom.Document; | |
21 import org.w3c.dom.Element; | |
22 | |
23 import org.apache.log4j.Logger; | |
24 | |
25 public class FactoriesResource | |
26 extends ServerResource | |
27 { | |
28 private static final Logger logger = Logger.getLogger(FactoriesResource.class); | |
29 | |
30 public static final String PATH = "/factories"; | |
31 | |
32 @Get | |
33 public DomRepresentation represent() { | |
34 | |
35 Document document = XMLUtils.newDocument(); | |
36 | |
37 ElementCreator ec = new ElementCreator( | |
38 document, | |
39 DefaultArtifact.NAMESPACE_URI, | |
40 DefaultArtifact.NAMESPACE_PREFIX); | |
41 | |
42 ArtifactDatabase db = (ArtifactDatabase)getContext() | |
43 .getAttributes().get("database"); | |
44 | |
45 Element root = ec.create("result"); | |
46 document.appendChild(root); | |
47 | |
48 Element type = ec.create("type"); | |
49 ec.addAttr(type, "name", "factory-list"); | |
50 root.appendChild(type); | |
51 | |
52 Element factories = ec.create("factories"); | |
53 root.appendChild(factories); | |
54 | |
55 String [] factoryNames = db.getArtifactFactoryNames(); | |
56 | |
57 for (int i = 0; i < factoryNames.length; ++i) { | |
58 Element factoryElement = ec.create("factory"); | |
59 ec.addAttr(factoryElement, "name", factoryNames[i]); | |
60 factories.appendChild(factoryElement); | |
61 } | |
62 | |
63 return new DomRepresentation( | |
64 MediaType.APPLICATION_XML, document); | |
65 } | |
66 } | |
67 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8: |