sascha@20: package de.intevation.artifactdatabase.rest; sascha@20: sascha@20: import de.intevation.artifacts.ArtifactDatabase; sascha@20: sascha@20: import org.restlet.data.MediaType; sascha@20: sascha@20: import org.restlet.resource.Get; sascha@20: import org.restlet.resource.ServerResource; sascha@20: sascha@20: import org.restlet.ext.xml.DomRepresentation; sascha@20: sascha@22: import org.restlet.representation.Representation; sascha@22: sascha@20: import de.intevation.artifactdatabase.XMLUtils; sascha@20: import de.intevation.artifactdatabase.XMLUtils.ElementCreator; sascha@20: sascha@20: import de.intevation.artifactdatabase.DefaultArtifact; sascha@20: sascha@20: import org.w3c.dom.Document; sascha@20: import org.w3c.dom.Element; sascha@20: sascha@20: import org.apache.log4j.Logger; sascha@20: sascha@21: /** sascha@21: * @author Sascha L. Teichmann (sascha.teichmann@intevation) sascha@21: */ sascha@20: public class FactoriesResource sascha@20: extends ServerResource sascha@20: { sascha@21: private static Logger logger = Logger.getLogger(FactoriesResource.class); sascha@20: sascha@20: public static final String PATH = "/factories"; sascha@20: sascha@22: @Get sascha@22: public Representation represent() { sascha@20: sascha@20: Document document = XMLUtils.newDocument(); sascha@20: sascha@20: ElementCreator ec = new ElementCreator( sascha@20: document, sascha@20: DefaultArtifact.NAMESPACE_URI, sascha@20: DefaultArtifact.NAMESPACE_PREFIX); sascha@20: sascha@20: ArtifactDatabase db = (ArtifactDatabase)getContext() sascha@20: .getAttributes().get("database"); sascha@20: sascha@20: Element root = ec.create("result"); sascha@20: document.appendChild(root); sascha@20: sascha@20: Element type = ec.create("type"); sascha@20: ec.addAttr(type, "name", "factory-list"); sascha@20: root.appendChild(type); sascha@20: sascha@20: Element factories = ec.create("factories"); sascha@20: root.appendChild(factories); sascha@20: sascha@20: String [] factoryNames = db.getArtifactFactoryNames(); sascha@20: sascha@20: for (int i = 0; i < factoryNames.length; ++i) { sascha@20: Element factoryElement = ec.create("factory"); sascha@20: ec.addAttr(factoryElement, "name", factoryNames[i]); sascha@20: factories.appendChild(factoryElement); sascha@20: } sascha@20: sascha@20: return new DomRepresentation( sascha@20: MediaType.APPLICATION_XML, document); sascha@20: } sascha@20: } sascha@20: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8: