view src/main/java/de/mpiwg/itgroup/annotations/restlet/AnnotationStoreGroups.java @ 18:aafa3884b2c4

new AnnotationStore restlet for HTML-UI. reorganisation of classes.
author casties
date Wed, 05 Sep 2012 18:05:54 +0200
parents
children f0f55ab768c9
line wrap: on
line source

/**
 * 
 */
package de.mpiwg.itgroup.annotations.restlet;

import java.util.List;

import javax.servlet.ServletContext;

import org.apache.log4j.Logger;
import org.restlet.data.Form;
import org.restlet.data.MediaType;
import org.restlet.representation.Representation;
import org.restlet.representation.StringRepresentation;
import org.restlet.resource.Get;
import org.restlet.resource.ServerResource;

import de.mpiwg.itgroup.annotations.Group;
import de.mpiwg.itgroup.annotations.neo4j.AnnotationStore;

/**
 * @author casties
 *
 */
public class AnnotationStoreGroups extends ServerResource {

    public static Logger logger = Logger.getLogger(AnnotationStoreGroups.class);

    private AnnotationStore store;

    @Get("html")
    public Representation doGetHTML(Representation entity){
        Form form = getRequest().getResourceRef().getQueryAsForm();
        // id from URI /annotations/groups/{id}
        String id = (String) getRequest().getAttributes().get("id");
        logger.debug("group-id=" + id);
        String retString="<html><body>\n<h1>Groups</h1>\n<table>";
        store = getAnnotationStore();
        if (id == null) {
            // list all groups
            List<Group> groups = store.getGroups("*");
            for (Group group : groups) {
                retString += String.format("<tr><td>uri=%s</td></tr>\n", group.getUri());
            }
            
        }
        retString += "</table>\n</body>\n</html>";
        
        logger.debug("sending:");
        logger.debug(retString);
        return new StringRepresentation(retString,MediaType.TEXT_HTML);
    }

    protected AnnotationStore getAnnotationStore() {
        if (store == null) {
            ServletContext sc = (ServletContext) getContext().getServerDispatcher().getContext().getAttributes()
                    .get("org.restlet.ext.servlet.ServletContext");
            logger.debug("Getting AnnotationStore from Context");
            store = (AnnotationStore) sc.getAttribute(BaseRestlet.ANNSTORE_KEY);
        }
        return store;
    }
}