Package org.example.clerezza.combined.tutorial

Source Code of org.example.clerezza.combined.tutorial.TutorialApp

package org.example.clerezza.combined.tutorial;
/*
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements.  See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership.  The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License.  You may obtain a copy of the License at
*
*   http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied.  See the License for the
* specific language governing permissions and limitations
* under the License.
*
*/


import java.io.InputStream;
import java.net.URISyntaxException;
import java.net.URL;
import java.util.Iterator;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.WebApplicationException;
import javax.ws.rs.core.MediaType;

import org.osgi.service.component.ComponentContext;

import org.apache.clerezza.platform.typerendering.seedsnipe.SeedsnipeRenderlet;
import org.apache.clerezza.platform.typerendering.RenderletManager;
import org.apache.clerezza.rdf.ontologies.FOAF;
import org.apache.clerezza.rdf.utils.GraphNode;
import org.apache.clerezza.rdf.core.Graph;
import org.apache.clerezza.rdf.core.MGraph;
import org.apache.clerezza.rdf.core.NonLiteral;
import org.apache.clerezza.rdf.core.Triple;
import org.apache.clerezza.rdf.core.TripleCollection;
import org.apache.clerezza.rdf.core.UriRef;
import org.apache.clerezza.rdf.core.access.NoSuchEntityException;
import org.apache.clerezza.rdf.core.access.TcManager;
import org.apache.clerezza.rdf.core.serializedform.Parser;

/**
* Get Persons by their email
*
* @scr.component
* @scr.service interface="java.lang.Object"
* @scr.property name="javax.ws.rs" type="Boolean" value="true"
*/

@Path("/foaf")
public class TutorialApp {
   
    /**
     * @scr.reference
     */
    TcManager tcManager;
   
    /**
     * @scr.reference
     */
    private RenderletManager renderletManager;
   
    private UriRef graphName = new UriRef("http://localhost.mygraph");

    @GET
    @Path("find")
    @Produces("application/rdf+xml")
    public Graph getPersonRdf(@QueryParam("mbox") String mboxString) {
        MGraph mGraph = tcManager.getMGraph(graphName);
        NonLiteral person = getPersonByMbox(mboxString, mGraph);
        return new GraphNode(person, mGraph).getNodeContext();
    }

    @GET
    @Path("find")
    @Produces("application/xhtml+xml")
    public GraphNode getPersonHtml(@QueryParam("mbox") String mboxString) {
        MGraph mGraph = tcManager.getMGraph(graphName);
        NonLiteral person = getPersonByMbox(mboxString, mGraph);
        return new GraphNode(person, mGraph);
    }

    private NonLiteral getPersonByMbox(String mboxString, MGraph mGraph) {
        Iterator<Triple> iter = mGraph.filter(null, FOAF.mbox, new UriRef(mboxString));
        NonLiteral person = null;
        while(iter.hasNext()) {
            person = iter.next().getSubject();
        }
        return person;
    }
   
    /**
     * The activate method is called when SCR activates the component configuration.
     * This method gets the system graph or create a new one if it doesn't exist.
     *
     * @param componentContext
     */
    protected void activate(ComponentContext componentContext) {
       
        URL templateURL = getClass().getResource("tutorial.xhtml");   
        try {
            renderletManager.registerRenderlet(SeedsnipeRenderlet.class
                    .getName(), new UriRef(templateURL.toURI().toString()),
                    FOAF.Person, null, MediaType.APPLICATION_XHTML_XML_TYPE,
                    true);
        } catch (URISyntaxException ex) {
            throw new WebApplicationException(ex);
        }
        TripleCollection tc;
        try {
            tcManager.getMGraph(graphName);
        } catch (NoSuchEntityException nsee) {
            tc = tcManager.createMGraph(graphName);
            InputStream fin = null;
            fin = getClass().getResourceAsStream("data.turtle");
            Parser parser = Parser.getInstance();
            tc.addAll(parser.parse(fin, "text/turtle"));
        }
    }
}
TOP

Related Classes of org.example.clerezza.combined.tutorial.TutorialApp

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.