You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stanbol.apache.org by su...@apache.org on 2011/07/19 21:37:40 UTC
svn commit: r1148497 [2/6] - in
/incubator/stanbol/trunk/ontologymanager/store:
launchers/fise/src/main/bundles/ web/ web/src/ web/src/main/
web/src/main/java/ web/src/main/java/org/ web/src/main/java/org/apache/
web/src/main/java/org/apache/stanbol/ w...
Added: incubator/stanbol/trunk/ontologymanager/store/web/src/main/java/org/apache/stanbol/ontologymanager/store/rest/resources/OntologyClasses.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/store/web/src/main/java/org/apache/stanbol/ontologymanager/store/rest/resources/OntologyClasses.java?rev=1148497&view=auto
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/store/web/src/main/java/org/apache/stanbol/ontologymanager/store/rest/resources/OntologyClasses.java (added)
+++ incubator/stanbol/trunk/ontologymanager/store/web/src/main/java/org/apache/stanbol/ontologymanager/store/rest/resources/OntologyClasses.java Tue Jul 19 19:37:37 2011
@@ -0,0 +1,145 @@
+/*
+ * 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.
+ */
+package org.apache.stanbol.ontologymanager.store.rest.resources;
+
+import java.net.URI;
+
+import javax.servlet.ServletContext;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.FormParam;
+import javax.ws.rs.GET;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
+import javax.ws.rs.WebApplicationException;
+import javax.ws.rs.core.Context;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+import javax.ws.rs.core.Response.Status;
+
+import org.apache.stanbol.commons.web.base.ContextHelper;
+import org.apache.stanbol.commons.web.base.resource.BaseStanbolResource;
+import org.apache.stanbol.ontologymanager.store.api.LockManager;
+import org.apache.stanbol.ontologymanager.store.api.PersistenceStore;
+import org.apache.stanbol.ontologymanager.store.api.ResourceManager;
+import org.apache.stanbol.ontologymanager.store.model.ClassMetaInformation;
+import org.apache.stanbol.ontologymanager.store.model.ClassesForOntology;
+import org.apache.stanbol.ontologymanager.store.rest.LockManagerImp;
+import org.apache.stanbol.ontologymanager.store.rest.ResourceManagerImp;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.sun.jersey.api.view.Viewable;
+
+@Path("/ontology/{ontologyPath:.+}/classes/")
+public class OntologyClasses extends BaseStanbolResource{
+ private static final Logger logger = LoggerFactory.getLogger(OntologyClasses.class);
+
+ private static final String VIEWABLE_PATH = "/org/apache/stanbol/ontologymanager/store/rest/resources/ontologyClasses";
+
+ private PersistenceStore persistenceStore;
+
+ // HTML View Variable
+ private ClassesForOntology metadata;
+
+ public OntologyClasses(@Context ServletContext context) {
+ this.persistenceStore = ContextHelper.getServiceFromContext(PersistenceStore.class, context);
+ }
+
+ @GET
+ @Produces(MediaType.APPLICATION_XML)
+ public Response retrieveOntologyClasses(@PathParam("ontologyPath") String ontologyPath) {
+ Response response = null;
+ LockManager lockManager = LockManagerImp.getInstance();
+ lockManager.obtainReadLockFor(ontologyPath);
+ try {
+
+ ResourceManager resourceManager = ResourceManagerImp.getInstance();
+ String ontologyURI = resourceManager.getOntologyURIForPath(ontologyPath);
+ if (ontologyURI == null) {
+ throw new WebApplicationException(Response.Status.NOT_FOUND);
+ }
+ try {
+ ClassesForOntology classesForOntology = persistenceStore
+ .retrieveClassesOfOntology(ontologyURI);
+ response = Response.ok(classesForOntology, MediaType.APPLICATION_XML_TYPE).build();
+ } catch (Exception e) {
+ logger.error("Error ", e);
+ throw new WebApplicationException(Response.Status.INTERNAL_SERVER_ERROR);
+ }
+ } finally {
+ lockManager.releaseReadLockFor(ontologyPath);
+ }
+ return response;
+ }
+
+ @POST
+ @Produces(MediaType.APPLICATION_XML)
+ @Consumes("application/x-www-form-urlencoded")
+ public Response generateClass(@PathParam("ontologyPath") String ontologyPath,
+ @FormParam("classURI") String classURI) {
+ Response response = null;
+ LockManager lockManager = LockManagerImp.getInstance();
+ lockManager.obtainWriteLockFor(ontologyPath);
+ try {
+ ResourceManager resourceManager = ResourceManagerImp.getInstance();
+ String ontologyURI = resourceManager.getOntologyURIForPath(ontologyPath);
+ if (ontologyURI == null) {
+ throw new WebApplicationException(Response.Status.NOT_FOUND);
+ }
+ try {
+ ClassMetaInformation classMetaInformation = persistenceStore.generateClassForOntology(
+ ontologyURI, classURI);
+ response = Response.ok(classMetaInformation, MediaType.APPLICATION_XML_TYPE).build();
+ } catch (Exception e) {
+ logger.error("Error ", e);
+ throw new WebApplicationException(Response.Status.INTERNAL_SERVER_ERROR);
+ }
+ } finally {
+ lockManager.releaseWriteLockFor(ontologyPath);
+ }
+ return response;
+ }
+
+ // HTML View Methods
+ @GET
+ @Produces(MediaType.TEXT_HTML+";qs=2")
+ public Viewable getViewable(@PathParam("ontologyPath") String ontologyPath) {
+ this.metadata = ((ClassesForOntology) this.retrieveOntologyClasses(ontologyPath).getEntity());
+ return new Viewable(VIEWABLE_PATH, this);
+ }
+
+ @POST
+ @Produces(MediaType.TEXT_HTML+";qs=2")
+ @Consumes(MediaType.APPLICATION_FORM_URLENCODED)
+ public Response createAndRedirect(@PathParam("ontologyPath") String ontologyPath,
+ @FormParam("classURI") String classURI) {
+ Response response = this.generateClass(ontologyPath, classURI);
+ ClassMetaInformation cmi = (ClassMetaInformation) response.getEntity();
+ try {
+ return Response.seeOther(URI.create(cmi.getHref())).build();
+ } catch (Exception e) {
+ throw new WebApplicationException(Status.INTERNAL_SERVER_ERROR);
+ }
+ }
+
+ public ClassesForOntology getMetadata() {
+ return metadata;
+ }
+
+}
Added: incubator/stanbol/trunk/ontologymanager/store/web/src/main/java/org/apache/stanbol/ontologymanager/store/rest/resources/OntologyDatatypeProperties.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/store/web/src/main/java/org/apache/stanbol/ontologymanager/store/rest/resources/OntologyDatatypeProperties.java?rev=1148497&view=auto
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/store/web/src/main/java/org/apache/stanbol/ontologymanager/store/rest/resources/OntologyDatatypeProperties.java (added)
+++ incubator/stanbol/trunk/ontologymanager/store/web/src/main/java/org/apache/stanbol/ontologymanager/store/rest/resources/OntologyDatatypeProperties.java Tue Jul 19 19:37:37 2011
@@ -0,0 +1,148 @@
+/*
+ * 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.
+ */
+package org.apache.stanbol.ontologymanager.store.rest.resources;
+
+import java.net.URI;
+
+import javax.servlet.ServletContext;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.FormParam;
+import javax.ws.rs.GET;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
+import javax.ws.rs.WebApplicationException;
+import javax.ws.rs.core.Context;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+import javax.ws.rs.core.Response.Status;
+
+import org.apache.stanbol.commons.web.base.ContextHelper;
+import org.apache.stanbol.commons.web.base.resource.BaseStanbolResource;
+import org.apache.stanbol.ontologymanager.store.api.LockManager;
+import org.apache.stanbol.ontologymanager.store.api.PersistenceStore;
+import org.apache.stanbol.ontologymanager.store.api.ResourceManager;
+import org.apache.stanbol.ontologymanager.store.model.DatatypePropertiesForOntology;
+import org.apache.stanbol.ontologymanager.store.model.PropertyMetaInformation;
+import org.apache.stanbol.ontologymanager.store.rest.LockManagerImp;
+import org.apache.stanbol.ontologymanager.store.rest.ResourceManagerImp;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.sun.jersey.api.view.Viewable;
+
+
+@Path("/ontology/{ontologyPath:.+}/datatypeProperties")
+public class OntologyDatatypeProperties extends BaseStanbolResource {
+ private static final Logger logger = LoggerFactory.getLogger(OntologyDatatypeProperties.class);
+ private static final String VIEWABLE_PATH = "/org/apache/stanbol/ontologymanager/store/rest/resources/ontologyDatatypeProperties";
+
+ private PersistenceStore persistenceStore;
+
+ // HTML View Variables
+ private DatatypePropertiesForOntology metadata;
+
+ public OntologyDatatypeProperties(@Context ServletContext context) {
+ this.persistenceStore = ContextHelper.getServiceFromContext(PersistenceStore.class, context);
+ }
+
+ @GET
+ @Produces(MediaType.APPLICATION_XML)
+ public Response retrieveOntologyDatatypeProperties(@PathParam("ontologyPath") String ontologyPath) {
+ Response response = null;
+ LockManager lockManager = LockManagerImp.getInstance();
+ lockManager.obtainReadLockFor(ontologyPath);
+ try {
+ ResourceManager resourceManager = ResourceManagerImp.getInstance();
+ String ontologyURI = resourceManager.getOntologyURIForPath(ontologyPath);
+ if (ontologyURI == null) {
+ throw new WebApplicationException(Response.Status.NOT_FOUND);
+ }
+ try {
+ DatatypePropertiesForOntology datatypePropertiesForOntology = persistenceStore
+ .retrieveDatatypePropertiesOfOntology(ontologyURI);
+ response = Response.ok(datatypePropertiesForOntology, MediaType.APPLICATION_XML_TYPE).build();
+ } catch (Exception e) {
+ logger.error("Error ", e);
+ throw new WebApplicationException(Response.Status.INTERNAL_SERVER_ERROR);
+ }
+ } finally {
+ lockManager.releaseReadLockFor(ontologyPath);
+ }
+ return response;
+ }
+
+ @POST
+ @Produces(MediaType.APPLICATION_XML)
+ @Consumes(MediaType.APPLICATION_FORM_URLENCODED)
+ public Response generateDatatypeProperty(@PathParam("ontologyPath") String ontologyPath,
+ @FormParam("datatypePropertyURI") String datatypePropertyURI) {
+ Response response = null;
+ LockManager lockManager = LockManagerImp.getInstance();
+ lockManager.obtainWriteLockFor(ontologyPath);
+ try {
+
+ ResourceManager resourceManager = ResourceManagerImp.getInstance();
+ String ontologyURI = resourceManager.getOntologyURIForPath(ontologyPath);
+ if (ontologyURI == null) {
+ throw new WebApplicationException(Response.Status.NOT_FOUND);
+ }
+ try {
+ PropertyMetaInformation datatypePropertyMetaInformation = persistenceStore
+ .generateDatatypePropertyForOntology(ontologyURI, datatypePropertyURI);
+ response = Response.ok(datatypePropertyMetaInformation, MediaType.APPLICATION_XML_TYPE)
+ .build();
+
+ } catch (Exception e) {
+ logger.error("Error ", e);
+ throw new WebApplicationException(Response.Status.INTERNAL_SERVER_ERROR);
+ }
+ } finally {
+ lockManager.releaseWriteLockFor(ontologyPath);
+ }
+ return response;
+ }
+
+ // HTML View Methods
+ public DatatypePropertiesForOntology getMetadata() {
+ return metadata;
+ }
+
+ @GET
+ @Produces(MediaType.TEXT_HTML+";qs=2")
+ public Viewable getViewable(@PathParam("ontologyPath") String ontologyPath) {
+ Response response = retrieveOntologyDatatypeProperties(ontologyPath);
+ metadata = (DatatypePropertiesForOntology) response.getEntity();
+ return new Viewable(VIEWABLE_PATH, this);
+ }
+
+ @POST
+ @Produces(MediaType.TEXT_HTML)
+ @Consumes(MediaType.APPLICATION_FORM_URLENCODED)
+ public Response createAndRedirect(@PathParam("ontologyPath") String ontologyPath,
+ @FormParam("datatypePropertyURI") String datatypePropertyURI) {
+ Response response = this.generateDatatypeProperty(ontologyPath, datatypePropertyURI);
+ PropertyMetaInformation pmi = (PropertyMetaInformation) response.getEntity();
+ try {
+ return Response.seeOther(URI.create(pmi.getHref())).build();
+ } catch (Exception e) {
+ throw new WebApplicationException(Status.INTERNAL_SERVER_ERROR);
+ }
+
+ }
+}
Added: incubator/stanbol/trunk/ontologymanager/store/web/src/main/java/org/apache/stanbol/ontologymanager/store/rest/resources/OntologyImports.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/store/web/src/main/java/org/apache/stanbol/ontologymanager/store/rest/resources/OntologyImports.java?rev=1148497&view=auto
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/store/web/src/main/java/org/apache/stanbol/ontologymanager/store/rest/resources/OntologyImports.java (added)
+++ incubator/stanbol/trunk/ontologymanager/store/web/src/main/java/org/apache/stanbol/ontologymanager/store/rest/resources/OntologyImports.java Tue Jul 19 19:37:37 2011
@@ -0,0 +1,154 @@
+/*
+ * 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.
+ */
+package org.apache.stanbol.ontologymanager.store.rest.resources;
+
+import java.net.URI;
+import java.net.URISyntaxException;
+
+import javax.servlet.ServletContext;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.DELETE;
+import javax.ws.rs.FormParam;
+import javax.ws.rs.GET;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
+import javax.ws.rs.QueryParam;
+import javax.ws.rs.WebApplicationException;
+import javax.ws.rs.core.Context;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+import javax.ws.rs.core.Response.Status;
+
+import org.apache.stanbol.commons.web.base.ContextHelper;
+import org.apache.stanbol.commons.web.base.resource.BaseStanbolResource;
+import org.apache.stanbol.ontologymanager.store.api.LockManager;
+import org.apache.stanbol.ontologymanager.store.api.PersistenceStore;
+import org.apache.stanbol.ontologymanager.store.api.ResourceManager;
+import org.apache.stanbol.ontologymanager.store.model.ImportsForOntology;
+import org.apache.stanbol.ontologymanager.store.rest.LockManagerImp;
+import org.apache.stanbol.ontologymanager.store.rest.ResourceManagerImp;
+
+import com.sun.jersey.api.view.Viewable;
+
+@Path("/ontology/{ontologyPath:.+}/imports")
+public class OntologyImports extends BaseStanbolResource {
+
+ private static final String VIEWABLE_PATH = "/org/apache/stanbol/ontologymanager/store/rest/resources/ontologyImports";
+
+ private PersistenceStore store;
+ // HTML View Variable
+ private ImportsForOntology metadata;
+
+ public OntologyImports(@Context ServletContext context) {
+ this.store = ContextHelper.getServiceFromContext(PersistenceStore.class, context);
+ }
+
+ @GET
+ @Produces(MediaType.APPLICATION_XML)
+ public Response getImports(@PathParam("ontologyPath") String ontologyPath) {
+ LockManager lockManager = LockManagerImp.getInstance();
+ lockManager.obtainReadLockFor(ontologyPath);
+ try {
+ ResourceManager resourceManager = ResourceManagerImp.getInstance();
+ String ontologyURI = resourceManager.getOntologyURIForPath(ontologyPath);
+ if (ontologyURI == null) {
+ throw new WebApplicationException(Response.Status.NOT_FOUND);
+ }
+ try {
+ ImportsForOntology imports = store.retrieveOntologyImports(ontologyPath);
+ return Response.ok(imports).build();
+ } catch (Exception e) {
+ throw new WebApplicationException(Status.INTERNAL_SERVER_ERROR);
+ }
+ } finally {
+ lockManager.releaseReadLockFor(ontologyPath);
+ }
+ }
+
+ @POST
+ @Produces(MediaType.APPLICATION_XML)
+ @Consumes(MediaType.APPLICATION_FORM_URLENCODED)
+ public Response addImport(@PathParam("ontologyPath") String ontologyPath,
+ @FormParam("importURI") String importURI) {
+ LockManager lockManager = LockManagerImp.getInstance();
+ lockManager.obtainWriteLockFor(ontologyPath);
+ try {
+ ResourceManager resourceManager = ResourceManagerImp.getInstance();
+ String ontologyURI = resourceManager.getOntologyURIForPath(ontologyPath);
+ if (ontologyURI == null) {
+ throw new WebApplicationException(Response.Status.NOT_FOUND);
+ }
+ try {
+ store.addOntologyImport(ontologyURI, importURI);
+ return Response.ok().build();
+ } catch (Exception e) {
+ throw new WebApplicationException(Status.INTERNAL_SERVER_ERROR);
+ }
+ } finally {
+ lockManager.releaseWriteLockFor(ontologyPath);
+ }
+ }
+
+ @DELETE
+ public Response removeImport(@PathParam("ontologyPath") String ontologyPath,
+ @QueryParam("importURI") String importURI) {
+ LockManager lockManager = LockManagerImp.getInstance();
+ lockManager.obtainWriteLockFor(ontologyPath);
+ try {
+ ResourceManager resourceManager = ResourceManagerImp.getInstance();
+ String ontologyURI = resourceManager.getOntologyURIForPath(ontologyPath);
+ if (ontologyURI == null) {
+ throw new WebApplicationException(Response.Status.NOT_FOUND);
+ }
+ try {
+ store.removeOntologyImport(ontologyURI, importURI);
+ return Response.ok().build();
+ } catch (Exception e) {
+ throw new WebApplicationException(Status.INTERNAL_SERVER_ERROR);
+ }
+ } finally {
+ lockManager.releaseWriteLockFor(ontologyPath);
+ }
+ }
+
+ // HTMLViewMethod
+ @GET
+ @Produces(MediaType.TEXT_HTML + ";qs=2")
+ public Viewable getHTMLImports(@PathParam("ontologyPath") String ontologyPath) {
+ Response res = getImports(ontologyPath);
+ this.metadata = (ImportsForOntology) res.getEntity();
+ return new Viewable(VIEWABLE_PATH, this);
+ }
+
+ public ImportsForOntology getMetadata() {
+ return metadata;
+ }
+
+ @POST
+ @Produces(MediaType.TEXT_HTML+";qs=2")
+ @Consumes(MediaType.APPLICATION_FORM_URLENCODED)
+ public Response addImportHTML(@PathParam("ontologyPath") String ontologyPath,
+ @FormParam("importURI") String importURI) throws URISyntaxException {
+ addImport(ontologyPath, importURI);
+ this.metadata = (ImportsForOntology) getImports(ontologyPath).getEntity();
+ return Response.seeOther(new URI(metadata.getOntologyMetaInformation().getHref() + "/imports"))
+ .build();
+ }
+
+}
Added: incubator/stanbol/trunk/ontologymanager/store/web/src/main/java/org/apache/stanbol/ontologymanager/store/rest/resources/OntologyIndividuals.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/store/web/src/main/java/org/apache/stanbol/ontologymanager/store/rest/resources/OntologyIndividuals.java?rev=1148497&view=auto
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/store/web/src/main/java/org/apache/stanbol/ontologymanager/store/rest/resources/OntologyIndividuals.java (added)
+++ incubator/stanbol/trunk/ontologymanager/store/web/src/main/java/org/apache/stanbol/ontologymanager/store/rest/resources/OntologyIndividuals.java Tue Jul 19 19:37:37 2011
@@ -0,0 +1,147 @@
+/*
+ * 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.
+ */
+package org.apache.stanbol.ontologymanager.store.rest.resources;
+
+import java.net.URI;
+
+import javax.servlet.ServletContext;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.FormParam;
+import javax.ws.rs.GET;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
+import javax.ws.rs.WebApplicationException;
+import javax.ws.rs.core.Context;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+import javax.ws.rs.core.Response.Status;
+
+import org.apache.stanbol.commons.web.base.ContextHelper;
+import org.apache.stanbol.commons.web.base.resource.BaseStanbolResource;
+import org.apache.stanbol.ontologymanager.store.api.LockManager;
+import org.apache.stanbol.ontologymanager.store.api.PersistenceStore;
+import org.apache.stanbol.ontologymanager.store.api.ResourceManager;
+import org.apache.stanbol.ontologymanager.store.model.IndividualMetaInformation;
+import org.apache.stanbol.ontologymanager.store.model.IndividualsForOntology;
+import org.apache.stanbol.ontologymanager.store.rest.LockManagerImp;
+import org.apache.stanbol.ontologymanager.store.rest.ResourceManagerImp;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.sun.jersey.api.view.Viewable;
+
+@Path("/ontology/{ontologyPath:.+}/individuals")
+public class OntologyIndividuals extends BaseStanbolResource{
+ private static final Logger logger = LoggerFactory.getLogger(OntologyIndividuals.class);
+ public static final String VIEWABLE_PATH = "/org/apache/stanbol/ontologymanager/store/rest/resources/ontologyIndividuals";
+
+ private PersistenceStore persistenceStore;
+
+ // HTML Variable
+ private IndividualsForOntology metadata;
+
+ public OntologyIndividuals(@Context ServletContext context) {
+ this.persistenceStore = ContextHelper.getServiceFromContext(PersistenceStore.class, context);
+ }
+
+ @GET
+ @Produces(MediaType.APPLICATION_XML)
+ public Response retrieveOntologyIndividuals(@PathParam("ontologyPath") String ontologyPath) {
+ Response response = null;
+ LockManager lockManager = LockManagerImp.getInstance();
+ lockManager.obtainReadLockFor(ontologyPath);
+ try {
+
+ ResourceManager resourceManager = ResourceManagerImp.getInstance();
+ String ontologyURI = resourceManager.getOntologyURIForPath(ontologyPath);
+ if (ontologyURI == null) {
+ throw new WebApplicationException(Response.Status.NOT_FOUND);
+ }
+ try {
+ IndividualsForOntology individualsForOntology = persistenceStore
+ .retrieveIndividualsOfOntology(ontologyURI);
+ response = Response.ok(individualsForOntology, MediaType.APPLICATION_XML_TYPE).build();
+ } catch (Exception e) {
+ logger.error("Error ", e);
+ throw new WebApplicationException(Response.Status.INTERNAL_SERVER_ERROR);
+ }
+ } finally {
+ lockManager.releaseReadLockFor(ontologyPath);
+ }
+ return response;
+ }
+
+ @POST
+ @Produces(MediaType.APPLICATION_XML)
+ @Consumes(MediaType.APPLICATION_FORM_URLENCODED)
+ public Response generateIndividual(@PathParam("ontologyPath") String ontologyPath,
+ @FormParam("classURI") String classURI,
+ @FormParam("individualURI") String individualURI) {
+ Response response = null;
+ LockManager lockManager = LockManagerImp.getInstance();
+ lockManager.obtainWriteLockFor(ontologyPath);
+ try {
+
+ ResourceManager resourceManager = ResourceManagerImp.getInstance();
+ String ontologyURI = resourceManager.getOntologyURIForPath(ontologyPath);
+ if (ontologyURI == null) {
+ throw new WebApplicationException(Response.Status.NOT_FOUND);
+ }
+ try {
+ IndividualMetaInformation individualMetaInformation = persistenceStore
+ .generateIndividualForOntology(ontologyURI, classURI, individualURI);
+ response = Response.ok(individualMetaInformation, MediaType.APPLICATION_XML_TYPE).build();
+ } catch (Exception e) {
+ logger.error("Error ", e);
+ throw new WebApplicationException(Response.Status.INTERNAL_SERVER_ERROR);
+ }
+ } finally {
+ lockManager.releaseWriteLockFor(ontologyPath);
+ }
+ return response;
+ }
+
+ // HTML View Methods
+ public IndividualsForOntology getMetadata() {
+ return metadata;
+ }
+
+ @GET
+ @Produces(MediaType.TEXT_HTML+";qs=2")
+ public Viewable getViewable(@PathParam("ontologyPath") String ontologyPath) {
+ Response response = retrieveOntologyIndividuals(ontologyPath);
+ metadata = (IndividualsForOntology) response.getEntity();
+ return new Viewable(VIEWABLE_PATH, this);
+ }
+
+ @POST
+ @Consumes(MediaType.APPLICATION_FORM_URLENCODED)
+ @Produces(MediaType.TEXT_HTML+";qs=2")
+ public Response createAndRedirect(@PathParam("ontologyPath") String ontologyPath,
+ @FormParam("classURI") String classURI,
+ @FormParam("individualURI") String individualURI) {
+ Response response = generateIndividual(ontologyPath, classURI, individualURI);
+ IndividualMetaInformation imi = (IndividualMetaInformation) response.getEntity();
+ try {
+ return Response.seeOther(URI.create(imi.getHref())).build();
+ } catch (Exception e) {
+ throw new WebApplicationException(Status.INTERNAL_SERVER_ERROR);
+ }
+ }
+}
Added: incubator/stanbol/trunk/ontologymanager/store/web/src/main/java/org/apache/stanbol/ontologymanager/store/rest/resources/OntologyObjectProperties.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/store/web/src/main/java/org/apache/stanbol/ontologymanager/store/rest/resources/OntologyObjectProperties.java?rev=1148497&view=auto
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/store/web/src/main/java/org/apache/stanbol/ontologymanager/store/rest/resources/OntologyObjectProperties.java (added)
+++ incubator/stanbol/trunk/ontologymanager/store/web/src/main/java/org/apache/stanbol/ontologymanager/store/rest/resources/OntologyObjectProperties.java Tue Jul 19 19:37:37 2011
@@ -0,0 +1,144 @@
+/*
+ * 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.
+ */
+package org.apache.stanbol.ontologymanager.store.rest.resources;
+
+import java.net.URI;
+
+import javax.servlet.ServletContext;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.FormParam;
+import javax.ws.rs.GET;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
+import javax.ws.rs.WebApplicationException;
+import javax.ws.rs.core.Context;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+import javax.ws.rs.core.Response.Status;
+
+import org.apache.stanbol.commons.web.base.ContextHelper;
+import org.apache.stanbol.commons.web.base.resource.BaseStanbolResource;
+import org.apache.stanbol.ontologymanager.store.api.LockManager;
+import org.apache.stanbol.ontologymanager.store.api.PersistenceStore;
+import org.apache.stanbol.ontologymanager.store.api.ResourceManager;
+import org.apache.stanbol.ontologymanager.store.model.ObjectPropertiesForOntology;
+import org.apache.stanbol.ontologymanager.store.model.PropertyMetaInformation;
+import org.apache.stanbol.ontologymanager.store.rest.LockManagerImp;
+import org.apache.stanbol.ontologymanager.store.rest.ResourceManagerImp;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.sun.jersey.api.view.Viewable;
+
+@Path("/ontology/{ontologyPath:.+}/objectProperties")
+public class OntologyObjectProperties extends BaseStanbolResource{
+ private static final Logger logger = LoggerFactory.getLogger(OntologyObjectProperties.class);
+ private static final String VIEWABLE_PATH = "/org/apache/stanbol/ontologymanager/store/rest/resources/ontologyObjectProperties";
+
+ private PersistenceStore persistenceStore;
+
+ // HTML View Variable
+ private ObjectPropertiesForOntology metadata;
+
+ public OntologyObjectProperties(@Context ServletContext context) {
+ this.persistenceStore = ContextHelper.getServiceFromContext(PersistenceStore.class, context);
+ }
+
+ @GET
+ @Produces(MediaType.APPLICATION_XML)
+ public Response retrieveOntologyObjectProperties(@PathParam("ontologyPath") String ontologyPath) {
+ Response response = null;
+ LockManager lockManager = LockManagerImp.getInstance();
+ lockManager.obtainReadLockFor(ontologyPath);
+ try {
+ ResourceManager resourceManager = ResourceManagerImp.getInstance();
+ String ontologyURI = resourceManager.getOntologyURIForPath(ontologyPath);
+ if (ontologyURI == null) {
+ throw new WebApplicationException(Response.Status.NOT_FOUND);
+ }
+ try {
+ ObjectPropertiesForOntology objectPropertiesForOntology = persistenceStore
+ .retrieveObjectPropertiesOfOntology(ontologyURI);
+ response = Response.ok(objectPropertiesForOntology, MediaType.APPLICATION_XML_TYPE).build();
+ } catch (Exception e) {
+ logger.error("Error ", e);
+ throw new WebApplicationException(Response.Status.INTERNAL_SERVER_ERROR);
+ }
+ } finally {
+ lockManager.releaseReadLockFor(ontologyPath);
+ }
+ return response;
+ }
+
+ @POST
+ @Produces(MediaType.APPLICATION_XML)
+ @Consumes(MediaType.APPLICATION_FORM_URLENCODED)
+ public Response generateDatatypeProperty(@PathParam("ontologyPath") String ontologyPath,
+ @FormParam("objectPropertyURI") String objectPropertyURI) {
+ Response response = null;
+ LockManager lockManager = LockManagerImp.getInstance();
+ lockManager.obtainWriteLockFor(ontologyPath);
+ try {
+ ResourceManager resourceManager = ResourceManagerImp.getInstance();
+ String ontologyURI = resourceManager.getOntologyURIForPath(ontologyPath);
+ if (ontologyURI == null) {
+ throw new WebApplicationException(Response.Status.NOT_FOUND);
+ }
+ try {
+ PropertyMetaInformation objectPropertyMetaInformation = persistenceStore
+ .generateObjectPropertyForOntology(ontologyURI, objectPropertyURI);
+ response = Response.ok(objectPropertyMetaInformation, MediaType.APPLICATION_XML_TYPE).build();
+ } catch (Exception e) {
+ logger.error("Error ", e);
+ throw new WebApplicationException(Response.Status.INTERNAL_SERVER_ERROR);
+ }
+ } finally {
+ lockManager.releaseWriteLockFor(ontologyPath);
+ }
+ return response;
+ }
+
+ // HTML View Methods
+
+ public ObjectPropertiesForOntology getMetadata() {
+ return metadata;
+ }
+
+ @GET
+ @Produces(MediaType.TEXT_HTML+";qs=2")
+ public Viewable getViewable(@PathParam("ontologyPath") String ontologyPath) {
+ Response response = retrieveOntologyObjectProperties(ontologyPath);
+ metadata = (ObjectPropertiesForOntology) response.getEntity();
+ return new Viewable(VIEWABLE_PATH, this);
+ }
+
+ @POST
+ @Produces(MediaType.TEXT_HTML+";qs=2")
+ @Consumes(MediaType.APPLICATION_FORM_URLENCODED)
+ public Response createAndRedirect(@PathParam("ontologyPath") String ontologyPath,
+ @FormParam("objectPropertyURI") String objectPropertyURI) {
+ Response response = this.generateDatatypeProperty(ontologyPath, objectPropertyURI);
+ PropertyMetaInformation pmi = (PropertyMetaInformation) response.getEntity();
+ try {
+ return Response.seeOther(URI.create(pmi.getHref())).build();
+ } catch (Exception e) {
+ throw new WebApplicationException(Status.INTERNAL_SERVER_ERROR);
+ }
+ }
+}
Added: incubator/stanbol/trunk/ontologymanager/store/web/src/main/java/org/apache/stanbol/ontologymanager/store/rest/resources/ParticularClass.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/store/web/src/main/java/org/apache/stanbol/ontologymanager/store/rest/resources/ParticularClass.java?rev=1148497&view=auto
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/store/web/src/main/java/org/apache/stanbol/ontologymanager/store/rest/resources/ParticularClass.java (added)
+++ incubator/stanbol/trunk/ontologymanager/store/web/src/main/java/org/apache/stanbol/ontologymanager/store/rest/resources/ParticularClass.java Tue Jul 19 19:37:37 2011
@@ -0,0 +1,119 @@
+/*
+ * 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.
+ */
+package org.apache.stanbol.ontologymanager.store.rest.resources;
+
+import javax.servlet.ServletContext;
+import javax.ws.rs.DELETE;
+import javax.ws.rs.DefaultValue;
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
+import javax.ws.rs.QueryParam;
+import javax.ws.rs.WebApplicationException;
+import javax.ws.rs.core.Context;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+
+import org.apache.stanbol.commons.web.base.ContextHelper;
+import org.apache.stanbol.commons.web.base.resource.BaseStanbolResource;
+import org.apache.stanbol.ontologymanager.store.api.LockManager;
+import org.apache.stanbol.ontologymanager.store.api.PersistenceStore;
+import org.apache.stanbol.ontologymanager.store.model.ClassContext;
+import org.apache.stanbol.ontologymanager.store.rest.LockManagerImp;
+import org.apache.stanbol.ontologymanager.store.rest.ResourceManagerImp;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.sun.jersey.api.view.Viewable;
+
+@Path("/ontology/{ontologyPath:.+}/classes/{classPath:.+}/")
+public class ParticularClass extends BaseStanbolResource {
+ private static final Logger logger = LoggerFactory.getLogger(ParticularClass.class);
+
+ private static final String VIEWABLE_PATH = "/org/apache/stanbol/ontologymanager/store/rest/resources/particularClass";
+
+ private PersistenceStore persistenceStore;
+
+ // View Variables
+ private ClassContext metadata;
+
+ public ParticularClass(@Context ServletContext context) {
+ this.persistenceStore = ContextHelper.getServiceFromContext(PersistenceStore.class, context);
+ }
+
+ @GET
+ @Produces(MediaType.APPLICATION_XML)
+ public Response retrieveClassContext(@PathParam("ontologyPath") String ontologyPath,
+ @PathParam("classPath") String classPath,
+ @DefaultValue("false") @QueryParam("withInferredAxioms") boolean withInferredAxioms) {
+ Response response = null;
+ LockManager lockManager = LockManagerImp.getInstance();
+ lockManager.obtainReadLockFor(ontologyPath);
+ try {
+ ResourceManagerImp resourceManager = ResourceManagerImp.getInstance();
+ String classURI = resourceManager.getResourceURIForPath(ontologyPath, classPath);
+ if (classURI == null) {
+ throw new WebApplicationException(Response.Status.NOT_FOUND);
+ }
+ try {
+ ClassContext classContext = persistenceStore.generateClassContext(classURI,
+ withInferredAxioms);
+ response = Response.ok(classContext, MediaType.APPLICATION_XML).build();
+ } catch (Exception e) {
+ logger.error("Error ", e);
+ throw new WebApplicationException(Response.Status.INTERNAL_SERVER_ERROR);
+ }
+ } finally {
+ lockManager.releaseReadLockFor(ontologyPath);
+ }
+ return response;
+ }
+
+ // The Java method will process HTTP DELETE requests
+ @DELETE
+ public void delete(@PathParam("ontologyPath") String ontologyPath,
+ @PathParam("classPath") String classPath) {
+ LockManager lockManager = LockManagerImp.getInstance();
+ lockManager.obtainWriteLockFor(ontologyPath);
+ try {
+ ResourceManagerImp resourceManager = ResourceManagerImp.getInstance();
+ String resourceURI = resourceManager.getResourceURIForPath(ontologyPath, classPath);
+ persistenceStore.deleteResource(resourceURI);
+ } catch (Exception e) {
+ logger.error("Error ", e);
+ throw new WebApplicationException(Response.Status.INTERNAL_SERVER_ERROR);
+ } finally {
+ lockManager.releaseWriteLockFor(ontologyPath);
+ }
+ }
+
+ // HTML View Methods
+ public ClassContext getMetadata() {
+ return metadata;
+ }
+
+ @GET
+ @Produces(MediaType.TEXT_HTML + ";qs=2")
+ public Viewable getViewable(@PathParam("ontologyPath") String ontologyPath,
+ @PathParam("classPath") String classPath,
+ @DefaultValue("false") @QueryParam("withInferredAxioms") boolean withInferredAxioms) {
+ metadata = (ClassContext) retrieveClassContext(ontologyPath, classPath, withInferredAxioms)
+ .getEntity();
+ return new Viewable(VIEWABLE_PATH, this);
+ }
+}
Added: incubator/stanbol/trunk/ontologymanager/store/web/src/main/java/org/apache/stanbol/ontologymanager/store/rest/resources/ParticularClassDisjointClasses.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/store/web/src/main/java/org/apache/stanbol/ontologymanager/store/rest/resources/ParticularClassDisjointClasses.java?rev=1148497&view=auto
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/store/web/src/main/java/org/apache/stanbol/ontologymanager/store/rest/resources/ParticularClassDisjointClasses.java (added)
+++ incubator/stanbol/trunk/ontologymanager/store/web/src/main/java/org/apache/stanbol/ontologymanager/store/rest/resources/ParticularClassDisjointClasses.java Tue Jul 19 19:37:37 2011
@@ -0,0 +1,103 @@
+/*
+ * 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.
+ */
+package org.apache.stanbol.ontologymanager.store.rest.resources;
+
+import java.util.List;
+
+import javax.servlet.ServletContext;
+import javax.ws.rs.DELETE;
+import javax.ws.rs.FormParam;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.WebApplicationException;
+import javax.ws.rs.core.Context;
+import javax.ws.rs.core.Response;
+import javax.ws.rs.core.Response.Status;
+
+import org.apache.stanbol.commons.web.base.ContextHelper;
+import org.apache.stanbol.commons.web.base.resource.BaseStanbolResource;
+import org.apache.stanbol.ontologymanager.store.api.LockManager;
+import org.apache.stanbol.ontologymanager.store.api.PersistenceStore;
+import org.apache.stanbol.ontologymanager.store.rest.LockManagerImp;
+import org.apache.stanbol.ontologymanager.store.rest.ResourceManagerImp;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@Path("/ontology/{ontologyPath:.+}/classes/{classPath:.+}/disjointClasses/")
+public class ParticularClassDisjointClasses extends BaseStanbolResource{
+
+ private static final Logger logger = LoggerFactory.getLogger(ParticularClassDisjointClasses.class);
+
+ private PersistenceStore persistenceStore;
+
+ public ParticularClassDisjointClasses(@Context ServletContext context) {
+ this.persistenceStore = ContextHelper.getServiceFromContext(PersistenceStore.class, context);
+ }
+
+ @POST
+ public Response addDisjointClasses(@PathParam("ontologyPath") String ontologyPath,
+ @PathParam("classPath") String classPath,
+ @FormParam("disjointClassURIs") List<String> disjointClassURIs) {
+ LockManager lockManager = LockManagerImp.getInstance();
+ lockManager.obtainWriteLockFor(ontologyPath);
+ try {
+ ResourceManagerImp resourceManager = ResourceManagerImp.getInstance();
+ String classURI = resourceManager.getResourceURIForPath(ontologyPath, classPath);
+ if (classURI == null) {
+ throw new WebApplicationException(Status.NOT_FOUND);
+ } else {
+ for (String disjointClassURI : disjointClassURIs) {
+ try {
+ persistenceStore.addDisjointClass(classURI, disjointClassURI);
+ } catch (Exception e) {
+ throw new WebApplicationException(Status.INTERNAL_SERVER_ERROR);
+ }
+ }
+ }
+ } finally {
+ lockManager.releaseWriteLockFor(ontologyPath);
+ }
+ return Response.ok().build();
+ }
+
+ @DELETE
+ @Path("/{disjointClassPath:.+}")
+ public Response removeDisjointClass(@PathParam("ontologyPath") String ontologyPath,
+ @PathParam("classPath") String classPath,
+ @PathParam("disjointClassPath") String disjointClassPath) {
+ LockManager lockManager = LockManagerImp.getInstance();
+ lockManager.obtainWriteLockFor(ontologyPath);
+ try {
+ ResourceManagerImp resourceManager = ResourceManagerImp.getInstance();
+ String classURI = resourceManager.getResourceURIForPath(ontologyPath, classPath);
+ String disjointClassURI = resourceManager.convertEntityRelativePathToURI(disjointClassPath);
+ if (classURI == null) {
+ throw new WebApplicationException(Status.NOT_FOUND);
+ } else {
+ try {
+ persistenceStore.deleteDisjointClass(classURI, disjointClassURI);
+ } catch (Exception e) {
+ throw new WebApplicationException(Status.INTERNAL_SERVER_ERROR);
+ }
+ }
+ } finally {
+ lockManager.releaseWriteLockFor(ontologyPath);
+ }
+ return Response.ok().build();
+ }
+}
Added: incubator/stanbol/trunk/ontologymanager/store/web/src/main/java/org/apache/stanbol/ontologymanager/store/rest/resources/ParticularClassEquivalentClasses.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/store/web/src/main/java/org/apache/stanbol/ontologymanager/store/rest/resources/ParticularClassEquivalentClasses.java?rev=1148497&view=auto
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/store/web/src/main/java/org/apache/stanbol/ontologymanager/store/rest/resources/ParticularClassEquivalentClasses.java (added)
+++ incubator/stanbol/trunk/ontologymanager/store/web/src/main/java/org/apache/stanbol/ontologymanager/store/rest/resources/ParticularClassEquivalentClasses.java Tue Jul 19 19:37:37 2011
@@ -0,0 +1,103 @@
+/*
+ * 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.
+ */
+package org.apache.stanbol.ontologymanager.store.rest.resources;
+
+import java.util.List;
+
+import javax.servlet.ServletContext;
+import javax.ws.rs.DELETE;
+import javax.ws.rs.FormParam;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.WebApplicationException;
+import javax.ws.rs.core.Context;
+import javax.ws.rs.core.Response;
+import javax.ws.rs.core.Response.Status;
+
+import org.apache.stanbol.commons.web.base.ContextHelper;
+import org.apache.stanbol.commons.web.base.resource.BaseStanbolResource;
+import org.apache.stanbol.ontologymanager.store.api.LockManager;
+import org.apache.stanbol.ontologymanager.store.api.PersistenceStore;
+import org.apache.stanbol.ontologymanager.store.rest.LockManagerImp;
+import org.apache.stanbol.ontologymanager.store.rest.ResourceManagerImp;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@Path("/ontology/{ontologyPath:.+}/classes/{classPath:.+}/equivalentClasses/")
+public class ParticularClassEquivalentClasses extends BaseStanbolResource{
+
+ private static final Logger logger = LoggerFactory.getLogger(ParticularClassEquivalentClasses.class);
+
+ private PersistenceStore persistenceStore;
+
+ public ParticularClassEquivalentClasses(@Context ServletContext context) {
+ this.persistenceStore = ContextHelper.getServiceFromContext(PersistenceStore.class, context);
+ }
+
+ @POST
+ public Response addEquivalentClasses(@PathParam("ontologyPath") String ontologyPath,
+ @PathParam("classPath") String classPath,
+ @FormParam("equivalentClassURIs") List<String> equivalentClassURIs) {
+ LockManager lockManager = LockManagerImp.getInstance();
+ lockManager.obtainWriteLockFor(ontologyPath);
+ try {
+ ResourceManagerImp resourceManager = ResourceManagerImp.getInstance();
+ String classURI = resourceManager.getResourceURIForPath(ontologyPath, classPath);
+ if (classURI == null) {
+ throw new WebApplicationException(Status.NOT_FOUND);
+ } else {
+ for (String equivalentClassURI : equivalentClassURIs) {
+ try {
+ persistenceStore.addEquivalentClass(classURI, equivalentClassURI);
+ } catch (Exception e) {
+ throw new WebApplicationException(Status.INTERNAL_SERVER_ERROR);
+ }
+ }
+ }
+ } finally {
+ lockManager.releaseWriteLockFor(ontologyPath);
+ }
+ return Response.ok().build();
+ }
+
+ @DELETE
+ @Path("/{equivalentClassPath:.+}")
+ public Response removeEquivalentClass(@PathParam("ontologyPath") String ontologyPath,
+ @PathParam("classPath") String classPath,
+ @PathParam("equivalentClassPath") String equivalentClassPath) {
+ LockManager lockManager = LockManagerImp.getInstance();
+ lockManager.obtainWriteLockFor(ontologyPath);
+ try {
+ ResourceManagerImp resourceManager = ResourceManagerImp.getInstance();
+ String classURI = resourceManager.getResourceURIForPath(ontologyPath, classPath);
+ String equivalentClassURI = resourceManager.convertEntityRelativePathToURI(equivalentClassPath);
+ if (classURI == null) {
+ throw new WebApplicationException(Status.NOT_FOUND);
+ } else {
+ try {
+ persistenceStore.deleteEquivalentClass(classURI, equivalentClassURI);
+ } catch (Exception e) {
+ throw new WebApplicationException(Status.INTERNAL_SERVER_ERROR);
+ }
+ }
+ } finally {
+ lockManager.releaseWriteLockFor(ontologyPath);
+ }
+ return Response.ok().build();
+ }
+}
Added: incubator/stanbol/trunk/ontologymanager/store/web/src/main/java/org/apache/stanbol/ontologymanager/store/rest/resources/ParticularClassSuperClasses.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/store/web/src/main/java/org/apache/stanbol/ontologymanager/store/rest/resources/ParticularClassSuperClasses.java?rev=1148497&view=auto
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/store/web/src/main/java/org/apache/stanbol/ontologymanager/store/rest/resources/ParticularClassSuperClasses.java (added)
+++ incubator/stanbol/trunk/ontologymanager/store/web/src/main/java/org/apache/stanbol/ontologymanager/store/rest/resources/ParticularClassSuperClasses.java Tue Jul 19 19:37:37 2011
@@ -0,0 +1,102 @@
+/*
+ * 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.
+ */
+package org.apache.stanbol.ontologymanager.store.rest.resources;
+
+import java.util.List;
+
+import javax.servlet.ServletContext;
+import javax.ws.rs.DELETE;
+import javax.ws.rs.FormParam;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.WebApplicationException;
+import javax.ws.rs.core.Context;
+import javax.ws.rs.core.Response;
+import javax.ws.rs.core.Response.Status;
+
+import org.apache.stanbol.commons.web.base.ContextHelper;
+import org.apache.stanbol.commons.web.base.resource.BaseStanbolResource;
+import org.apache.stanbol.ontologymanager.store.api.LockManager;
+import org.apache.stanbol.ontologymanager.store.api.PersistenceStore;
+import org.apache.stanbol.ontologymanager.store.rest.LockManagerImp;
+import org.apache.stanbol.ontologymanager.store.rest.ResourceManagerImp;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@Path("/ontology/{ontologyPath:.+}/classes/{classPath:.+}/superClasses/")
+public class ParticularClassSuperClasses extends BaseStanbolResource{
+ private static final Logger logger = LoggerFactory.getLogger(ParticularClassSuperClasses.class);
+
+ private PersistenceStore persistenceStore;
+
+ public ParticularClassSuperClasses(@Context ServletContext context) {
+ this.persistenceStore = ContextHelper.getServiceFromContext(PersistenceStore.class, context);
+ }
+
+ @POST
+ public Response addSuperClasses(@PathParam("ontologyPath") String ontologyPath,
+ @PathParam("classPath") String classPath,
+ @FormParam("superClassURIs") List<String> superClassURIs) {
+ LockManager lockManager = LockManagerImp.getInstance();
+ lockManager.obtainWriteLockFor(ontologyPath);
+ try {
+ ResourceManagerImp resourceManager = ResourceManagerImp.getInstance();
+ String classURI = resourceManager.getResourceURIForPath(ontologyPath, classPath);
+ if (classURI == null) {
+ throw new WebApplicationException(Status.NOT_FOUND);
+ } else {
+ for (String superClassURI : superClassURIs) {
+ try {
+ persistenceStore.makeSubClassOf(classURI, superClassURI);
+ } catch (Exception e) {
+ throw new WebApplicationException(Status.INTERNAL_SERVER_ERROR);
+ }
+ }
+ }
+ } finally {
+ lockManager.releaseWriteLockFor(ontologyPath);
+ }
+ return Response.ok().build();
+ }
+
+ @DELETE
+ @Path("/{superClassPath:.+}/")
+ public Response removeSuperClass(@PathParam("ontologyPath") String ontologyPath,
+ @PathParam("classPath") String classPath,
+ @PathParam("superClassPath") String superClassPath) {
+ LockManager lockManager = LockManagerImp.getInstance();
+ lockManager.obtainWriteLockFor(ontologyPath);
+ try {
+ ResourceManagerImp resourceManager = ResourceManagerImp.getInstance();
+ String classURI = resourceManager.getResourceURIForPath(ontologyPath, classPath);
+ String superClassURI = resourceManager.convertEntityRelativePathToURI(superClassPath);
+ if (classURI == null) {
+ throw new WebApplicationException(Status.NOT_FOUND);
+ } else {
+ try {
+ persistenceStore.deleteSuperClass(classURI, superClassURI);
+ } catch (Exception e) {
+ throw new WebApplicationException(Status.INTERNAL_SERVER_ERROR);
+ }
+ }
+ } finally {
+ lockManager.releaseWriteLockFor(ontologyPath);
+ }
+ return Response.ok().build();
+ }
+}
Added: incubator/stanbol/trunk/ontologymanager/store/web/src/main/java/org/apache/stanbol/ontologymanager/store/rest/resources/ParticularDatatypeProperty.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/store/web/src/main/java/org/apache/stanbol/ontologymanager/store/rest/resources/ParticularDatatypeProperty.java?rev=1148497&view=auto
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/store/web/src/main/java/org/apache/stanbol/ontologymanager/store/rest/resources/ParticularDatatypeProperty.java (added)
+++ incubator/stanbol/trunk/ontologymanager/store/web/src/main/java/org/apache/stanbol/ontologymanager/store/rest/resources/ParticularDatatypeProperty.java Tue Jul 19 19:37:37 2011
@@ -0,0 +1,183 @@
+/*
+ * 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.
+ */
+package org.apache.stanbol.ontologymanager.store.rest.resources;
+
+import java.net.URI;
+
+import javax.servlet.ServletContext;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.DELETE;
+import javax.ws.rs.DefaultValue;
+import javax.ws.rs.FormParam;
+import javax.ws.rs.GET;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
+import javax.ws.rs.QueryParam;
+import javax.ws.rs.WebApplicationException;
+import javax.ws.rs.core.Context;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+
+import org.apache.stanbol.commons.web.base.ContextHelper;
+import org.apache.stanbol.commons.web.base.resource.BaseStanbolResource;
+import org.apache.stanbol.ontologymanager.store.api.LockManager;
+import org.apache.stanbol.ontologymanager.store.api.PersistenceStore;
+import org.apache.stanbol.ontologymanager.store.model.DatatypePropertyContext;
+import org.apache.stanbol.ontologymanager.store.rest.LockManagerImp;
+import org.apache.stanbol.ontologymanager.store.rest.ResourceManagerImp;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.sun.jersey.api.view.Viewable;
+
+@Path("/ontology/{ontologyPath:.+}/datatypeProperties/{datatypePropertyPath:.+}")
+public class ParticularDatatypeProperty extends BaseStanbolResource{
+ private static final Logger logger = LoggerFactory.getLogger(ParticularDatatypeProperty.class);
+
+ private static final String VIEWABLE_PATH = "/org/apache/stanbol/ontologymanager/store/rest/resources/particularDatatypeProperty";
+
+ private PersistenceStore persistenceStore;
+
+ // HTML View Variable
+ private DatatypePropertyContext metadata;
+
+ public ParticularDatatypeProperty(@Context ServletContext context) {
+ this.persistenceStore = ContextHelper.getServiceFromContext(PersistenceStore.class, context);
+ }
+
+ @GET
+ @Produces(MediaType.APPLICATION_XML)
+ public Response retrieveDatatypePropertyContext(@PathParam("ontologyPath") String ontologyPath,
+ @PathParam("datatypePropertyPath") String datatypePropertyPath,
+ @DefaultValue("false") @QueryParam("withInferredAxioms") boolean withInferredAxioms) {
+ Response response = null;
+ LockManager lockManager = LockManagerImp.getInstance();
+ lockManager.obtainReadLockFor(ontologyPath);
+ try {
+ ResourceManagerImp resourceManager = ResourceManagerImp.getInstance();
+ String datatypePropertyURI = resourceManager.getResourceURIForPath(ontologyPath,
+ datatypePropertyPath);
+ if (datatypePropertyURI == null) {
+ throw new WebApplicationException(Response.Status.NOT_FOUND);
+ }
+ try {
+ DatatypePropertyContext datatypePropertyContext = persistenceStore
+ .generateDatatypePropertyContext(datatypePropertyURI, withInferredAxioms);
+ response = Response.ok(datatypePropertyContext, MediaType.APPLICATION_XML_TYPE).build();
+ } catch (Exception e) {
+ logger.error("Error ", e);
+ throw new WebApplicationException(Response.Status.INTERNAL_SERVER_ERROR);
+ }
+ } finally {
+ lockManager.releaseReadLockFor(ontologyPath);
+ }
+ return response;
+ }
+
+ @POST
+ @Consumes(MediaType.APPLICATION_FORM_URLENCODED)
+ public Response makeSubClassOf(@PathParam("ontologyPath") String ontologyPath,
+ @PathParam("datatypePropertyPath") String datatypePropertyPath,
+ @FormParam("isFunctional") Boolean isFunctional) {
+ Response response = null;
+ LockManager lockManager = LockManagerImp.getInstance();
+ lockManager.obtainWriteLockFor(ontologyPath);
+ try {
+
+ ResourceManagerImp resourceManager = ResourceManagerImp.getInstance();
+ String datatypePropertyURI = resourceManager.getResourceURIForPath(ontologyPath,
+ datatypePropertyPath);
+ if (datatypePropertyURI == null) {
+ throw new WebApplicationException(Response.Status.NOT_FOUND);
+ }
+ try {
+ if (isFunctional != null) {
+ persistenceStore.setPropertyAttributes(datatypePropertyURI, isFunctional, null, null,
+ null);
+ }
+ DatatypePropertyContext datatypePropertyContext = persistenceStore
+ .generateDatatypePropertyContext(datatypePropertyURI, false);
+
+ response = Response.ok(datatypePropertyContext, MediaType.APPLICATION_XML_TYPE).build();
+ } catch (Exception e) {
+ logger.error("Error ", e);
+ throw new WebApplicationException(Response.Status.INTERNAL_SERVER_ERROR);
+ }
+ } finally {
+ lockManager.releaseWriteLockFor(ontologyPath);
+ }
+ return response;
+ }
+
+ // FIXME Handle PS errors properly and return correct responses
+
+ // The Java method will process HTTP DELETE requests
+ @DELETE
+ public void delete(@PathParam("ontologyPath") String ontologyPath,
+ @PathParam("datatypePropertyPath") String datatypePropertyPath) {
+ LockManager lockManager = LockManagerImp.getInstance();
+ lockManager.obtainWriteLockFor(ontologyPath);
+ try {
+
+ ResourceManagerImp resourceManager = ResourceManagerImp.getInstance();
+ String resourceURI = resourceManager.getResourceURIForPath(ontologyPath, datatypePropertyPath);
+ persistenceStore.deleteResource(resourceURI);
+ } catch (Exception e) {
+ logger.error("Error ", e);
+ throw new WebApplicationException(Response.Status.INTERNAL_SERVER_ERROR);
+ } finally {
+ lockManager.releaseWriteLockFor(ontologyPath);
+ }
+ }
+
+ // HTML View Methods
+ public DatatypePropertyContext getMetadata() {
+ return metadata;
+ }
+
+ @GET
+ @Produces(MediaType.TEXT_HTML+";qs=2")
+ public Viewable getViewable(@PathParam("ontologyPath") String ontologyPath,
+ @PathParam("datatypePropertyPath") String datatypePropertyPath,
+ @DefaultValue("false") @QueryParam("withInferredAxioms") boolean withInferredAxioms) {
+ Response response = retrieveDatatypePropertyContext(ontologyPath, datatypePropertyPath,
+ withInferredAxioms);
+ metadata = (DatatypePropertyContext) response.getEntity();
+ return new Viewable(VIEWABLE_PATH, this);
+ }
+
+ @POST
+ @Produces(MediaType.TEXT_HTML+";qs=2")
+ @Consumes(MediaType.APPLICATION_FORM_URLENCODED)
+ public Response getViewable(@PathParam("ontologyPath") String ontologyPath,
+ @PathParam("datatypePropertyPath") String datatypePropertyPath,
+ @FormParam("isFunctional") Boolean isFunctional) {
+ metadata = (DatatypePropertyContext) makeSubClassOf(ontologyPath, datatypePropertyPath, /*
+ * domainURIs,
+ * rangeURIs,
+ * subPropertyOf
+ * ,
+ */
+ isFunctional).getEntity();
+ Response response = Response.seeOther(URI.create(metadata.getPropertyMetaInformation().getHref()))
+ .build();
+ return response;
+ }
+
+}
Added: incubator/stanbol/trunk/ontologymanager/store/web/src/main/java/org/apache/stanbol/ontologymanager/store/rest/resources/ParticularDatatypePropertyDomains.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/store/web/src/main/java/org/apache/stanbol/ontologymanager/store/rest/resources/ParticularDatatypePropertyDomains.java?rev=1148497&view=auto
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/store/web/src/main/java/org/apache/stanbol/ontologymanager/store/rest/resources/ParticularDatatypePropertyDomains.java (added)
+++ incubator/stanbol/trunk/ontologymanager/store/web/src/main/java/org/apache/stanbol/ontologymanager/store/rest/resources/ParticularDatatypePropertyDomains.java Tue Jul 19 19:37:37 2011
@@ -0,0 +1,110 @@
+/*
+ * 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.
+ */
+package org.apache.stanbol.ontologymanager.store.rest.resources;
+
+import java.util.List;
+
+import javax.servlet.ServletContext;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.DELETE;
+import javax.ws.rs.FormParam;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.WebApplicationException;
+import javax.ws.rs.core.Context;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+import javax.ws.rs.core.Response.Status;
+
+import org.apache.stanbol.commons.web.base.ContextHelper;
+import org.apache.stanbol.commons.web.base.resource.BaseStanbolResource;
+import org.apache.stanbol.ontologymanager.store.api.LockManager;
+import org.apache.stanbol.ontologymanager.store.api.PersistenceStore;
+import org.apache.stanbol.ontologymanager.store.rest.LockManagerImp;
+import org.apache.stanbol.ontologymanager.store.rest.ResourceManagerImp;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@Path("/ontology/{ontologyPath:.+}/datatypeProperties/{datatypePropertyPath:.+}/domains")
+public class ParticularDatatypePropertyDomains extends BaseStanbolResource{
+ private static final Logger logger = LoggerFactory.getLogger(ParticularDatatypePropertyDomains.class);
+
+ private PersistenceStore persistenceStore;
+
+ public ParticularDatatypePropertyDomains(@Context ServletContext context) {
+ this.persistenceStore = ContextHelper.getServiceFromContext(PersistenceStore.class, context);
+ }
+
+ @POST
+ @Consumes(MediaType.APPLICATION_FORM_URLENCODED)
+ public Response addDomains(@PathParam("ontologyPath") String ontologyPath,
+ @PathParam("datatypePropertyPath") String datatypePropertyPath,
+ @FormParam("domainURIs") List<String> domainURIs) {
+ LockManager lockManager = LockManagerImp.getInstance();
+ lockManager.obtainWriteLockFor(ontologyPath);
+ try {
+
+ ResourceManagerImp resourceManager = ResourceManagerImp.getInstance();
+ String datatypePropertyURI = resourceManager.getResourceURIForPath(ontologyPath,
+ datatypePropertyPath);
+ if (datatypePropertyURI == null) {
+ throw new WebApplicationException(Status.NOT_FOUND);
+ } else {
+ for (String domainURI : domainURIs) {
+ try {
+ persistenceStore.addDomain(datatypePropertyURI, domainURI);
+ } catch (Exception e) {
+ throw new WebApplicationException(Status.INTERNAL_SERVER_ERROR);
+ }
+ }
+ }
+ } finally {
+ lockManager.releaseWriteLockFor(ontologyPath);
+ }
+ return Response.ok().build();
+ }
+
+ @DELETE
+ @Path("/{domainPath:.+}")
+ public Response deleteDomain(@PathParam("ontologyPath") String ontologyPath,
+ @PathParam("datatypePropertyPath") String datatypePropertyPath,
+ @PathParam("domainPath") String domainPath) {
+ LockManager lockManager = LockManagerImp.getInstance();
+ lockManager.obtainWriteLockFor(ontologyPath);
+ try {
+
+ ResourceManagerImp resourceManager = ResourceManagerImp.getInstance();
+ String datatypePropertyURI = resourceManager.getResourceURIForPath(ontologyPath,
+ datatypePropertyPath);
+ String domainURI = resourceManager.convertEntityRelativePathToURI(domainPath);
+ if (datatypePropertyURI == null) {
+ throw new WebApplicationException(Status.NOT_FOUND);
+ } else {
+ try {
+ persistenceStore.deleteDomain(datatypePropertyURI, domainURI);
+ } catch (Exception e) {
+ throw new WebApplicationException(Status.INTERNAL_SERVER_ERROR);
+ }
+ }
+ } finally {
+ lockManager.releaseWriteLockFor(ontologyPath);
+ }
+ return Response.ok().build();
+
+ }
+}
Added: incubator/stanbol/trunk/ontologymanager/store/web/src/main/java/org/apache/stanbol/ontologymanager/store/rest/resources/ParticularDatatypePropertyRanges.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/store/web/src/main/java/org/apache/stanbol/ontologymanager/store/rest/resources/ParticularDatatypePropertyRanges.java?rev=1148497&view=auto
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/store/web/src/main/java/org/apache/stanbol/ontologymanager/store/rest/resources/ParticularDatatypePropertyRanges.java (added)
+++ incubator/stanbol/trunk/ontologymanager/store/web/src/main/java/org/apache/stanbol/ontologymanager/store/rest/resources/ParticularDatatypePropertyRanges.java Tue Jul 19 19:37:37 2011
@@ -0,0 +1,109 @@
+/*
+ * 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.
+ */
+package org.apache.stanbol.ontologymanager.store.rest.resources;
+
+import java.util.List;
+
+import javax.servlet.ServletContext;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.DELETE;
+import javax.ws.rs.FormParam;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.WebApplicationException;
+import javax.ws.rs.core.Context;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+import javax.ws.rs.core.Response.Status;
+
+import org.apache.stanbol.commons.web.base.ContextHelper;
+import org.apache.stanbol.commons.web.base.resource.BaseStanbolResource;
+import org.apache.stanbol.ontologymanager.store.api.LockManager;
+import org.apache.stanbol.ontologymanager.store.api.PersistenceStore;
+import org.apache.stanbol.ontologymanager.store.rest.LockManagerImp;
+import org.apache.stanbol.ontologymanager.store.rest.ResourceManagerImp;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@Path("/ontology/{ontologyPath:.+}/datatypeProperties/{datatypePropertyPath:.+}/ranges")
+public class ParticularDatatypePropertyRanges extends BaseStanbolResource{
+ private static final Logger logger = LoggerFactory.getLogger(ParticularDatatypePropertyRanges.class);
+
+ private PersistenceStore persistenceStore;
+
+ public ParticularDatatypePropertyRanges(@Context ServletContext context) {
+ this.persistenceStore = ContextHelper.getServiceFromContext(PersistenceStore.class, context);
+ }
+
+ @POST
+ @Consumes(MediaType.APPLICATION_FORM_URLENCODED)
+ public Response addRanges(@PathParam("ontologyPath") String ontologyPath,
+ @PathParam("datatypePropertyPath") String datatypePropertyPath,
+ @FormParam("rangeURIs") List<String> rangeURIs) {
+ LockManager lockManager = LockManagerImp.getInstance();
+ lockManager.obtainWriteLockFor(ontologyPath);
+ try {
+
+ ResourceManagerImp resourceManager = ResourceManagerImp.getInstance();
+ String datatypePropertyURI = resourceManager.getResourceURIForPath(ontologyPath,
+ datatypePropertyPath);
+ if (datatypePropertyURI == null) {
+ throw new WebApplicationException(Status.NOT_FOUND);
+ } else {
+ for (String domainURI : rangeURIs) {
+ try {
+ persistenceStore.addRange(datatypePropertyURI, domainURI);
+ } catch (Exception e) {
+ throw new WebApplicationException(Status.INTERNAL_SERVER_ERROR);
+ }
+ }
+ }
+ } finally {
+ lockManager.releaseWriteLockFor(ontologyPath);
+ }
+ return Response.ok().build();
+ }
+
+ @DELETE
+ @Path("/{rangePath:.+}")
+ public Response deleteRange(@PathParam("ontologyPath") String ontologyPath,
+ @PathParam("datatypePropertyPath") String datatypePropertyPath,
+ @PathParam("rangePath") String rangePath) {
+ LockManager lockManager = LockManagerImp.getInstance();
+ lockManager.obtainWriteLockFor(ontologyPath);
+ try {
+ ResourceManagerImp resourceManager = ResourceManagerImp.getInstance();
+ String datatypePropertyURI = resourceManager.getResourceURIForPath(ontologyPath,
+ datatypePropertyPath);
+ String rangeURI = resourceManager.convertEntityRelativePathToURI(rangePath);
+ if (datatypePropertyURI == null) {
+ throw new WebApplicationException(Status.NOT_FOUND);
+ } else {
+ try {
+ persistenceStore.deleteRange(datatypePropertyURI, rangeURI);
+ } catch (Exception e) {
+ throw new WebApplicationException(Status.INTERNAL_SERVER_ERROR);
+ }
+ }
+ } finally {
+ lockManager.releaseWriteLockFor(ontologyPath);
+ }
+ return Response.ok().build();
+
+ }
+}
Added: incubator/stanbol/trunk/ontologymanager/store/web/src/main/java/org/apache/stanbol/ontologymanager/store/rest/resources/ParticularDatatypePropertySuperProperties.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/ontologymanager/store/web/src/main/java/org/apache/stanbol/ontologymanager/store/rest/resources/ParticularDatatypePropertySuperProperties.java?rev=1148497&view=auto
==============================================================================
--- incubator/stanbol/trunk/ontologymanager/store/web/src/main/java/org/apache/stanbol/ontologymanager/store/rest/resources/ParticularDatatypePropertySuperProperties.java (added)
+++ incubator/stanbol/trunk/ontologymanager/store/web/src/main/java/org/apache/stanbol/ontologymanager/store/rest/resources/ParticularDatatypePropertySuperProperties.java Tue Jul 19 19:37:37 2011
@@ -0,0 +1,108 @@
+/*
+ * 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.
+ */
+package org.apache.stanbol.ontologymanager.store.rest.resources;
+
+import java.util.List;
+
+import javax.servlet.ServletContext;
+import javax.ws.rs.DELETE;
+import javax.ws.rs.FormParam;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.WebApplicationException;
+import javax.ws.rs.core.Context;
+import javax.ws.rs.core.Response;
+import javax.ws.rs.core.Response.Status;
+
+import org.apache.stanbol.commons.web.base.ContextHelper;
+import org.apache.stanbol.commons.web.base.resource.BaseStanbolResource;
+import org.apache.stanbol.ontologymanager.store.api.LockManager;
+import org.apache.stanbol.ontologymanager.store.api.PersistenceStore;
+import org.apache.stanbol.ontologymanager.store.rest.LockManagerImp;
+import org.apache.stanbol.ontologymanager.store.rest.ResourceManagerImp;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@Path("/ontology/{ontologyPath:.+}/datatypeProperties/{datatypePropertyPath:.+}/superProperties")
+public class ParticularDatatypePropertySuperProperties extends BaseStanbolResource{
+ private static final Logger logger = LoggerFactory
+ .getLogger(ParticularDatatypePropertySuperProperties.class);
+
+ private PersistenceStore persistenceStore;
+
+ public ParticularDatatypePropertySuperProperties(@Context ServletContext context) {
+ this.persistenceStore = ContextHelper.getServiceFromContext(PersistenceStore.class, context);
+ }
+
+ @POST
+ public Response addSuperProperties(@PathParam("ontologyPath") String ontologyPath,
+ @PathParam("datatypePropertyPath") String datatypePropertyPath,
+ @FormParam("superPropertyURIs") List<String> superPropertyURIs) {
+ LockManager lockManager = LockManagerImp.getInstance();
+ lockManager.obtainWriteLockFor(ontologyPath);
+ try {
+
+ ResourceManagerImp resourceManager = ResourceManagerImp.getInstance();
+ String datatypePropertyURI = resourceManager.getResourceURIForPath(ontologyPath,
+ datatypePropertyPath);
+ if (datatypePropertyURI == null) {
+ throw new WebApplicationException(Status.NOT_FOUND);
+ } else {
+ for (String superPropertyURI : superPropertyURIs) {
+ try {
+ persistenceStore.makeSubPropertyOf(datatypePropertyURI, superPropertyURI);
+ } catch (Exception e) {
+ throw new WebApplicationException(Status.INTERNAL_SERVER_ERROR);
+ }
+ }
+ }
+ } finally {
+ lockManager.releaseWriteLockFor(ontologyPath);
+ }
+ return Response.ok().build();
+ }
+
+ @DELETE
+ @Path("/{superPropertyPath:.+}")
+ public Response deleteSuperProperty(@PathParam("ontologyPath") String ontologyPath,
+ @PathParam("datatypePropertyPath") String datatypePropertyPath,
+ @PathParam("superPropertyPath") String superPropertyPath) {
+ LockManager lockManager = LockManagerImp.getInstance();
+ lockManager.obtainWriteLockFor(ontologyPath);
+ try {
+
+ ResourceManagerImp resourceManager = ResourceManagerImp.getInstance();
+ String datatypePropertyURI = resourceManager.getResourceURIForPath(ontologyPath,
+ datatypePropertyPath);
+ String superPropertyURI = resourceManager.convertEntityRelativePathToURI(superPropertyPath);
+ if (datatypePropertyURI == null) {
+ throw new WebApplicationException(Status.NOT_FOUND);
+ } else {
+ try {
+ persistenceStore.deleteSuperPropertyAssertion(datatypePropertyURI, superPropertyURI);
+ } catch (Exception e) {
+ throw new WebApplicationException(Status.INTERNAL_SERVER_ERROR);
+ }
+ }
+ } finally {
+ lockManager.releaseWriteLockFor(ontologyPath);
+ }
+ return Response.ok().build();
+
+ }
+}