Author: reto
Date: Mon Jan 25 17:40:09 2010
New Revision: 902892

URL: http://svn.apache.org/viewvc?rev=902892&view=rev
Log:
CLEREZZA-70: Incorporated review comments

Added:
    
incubator/clerezza/issues/CLEREZZA-70/org.apache.clerezza.rdf.utils/src/test/java/org/apache/clerezza/rdf/utils/MGraphUtilsTest.java
Modified:
    
incubator/clerezza/issues/CLEREZZA-70/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/Editor.java
    
incubator/clerezza/issues/CLEREZZA-70/org.apache.clerezza.platform.content/src/main/resources/org/apache/clerezza/platform/content/staticweb/scripts/tria-disco.js
    
incubator/clerezza/issues/CLEREZZA-70/org.apache.clerezza.rdf.utils/src/main/java/org/apache/clerezza/rdf/utils/MGraphUtils.java

Modified: 
incubator/clerezza/issues/CLEREZZA-70/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/Editor.java
URL: 
http://svn.apache.org/viewvc/incubator/clerezza/issues/CLEREZZA-70/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/Editor.java?rev=902892&r1=902891&r2=902892&view=diff
==============================================================================
--- 
incubator/clerezza/issues/CLEREZZA-70/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/Editor.java
 (original)
+++ 
incubator/clerezza/issues/CLEREZZA-70/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/Editor.java
 Mon Jan 25 17:40:09 2010
@@ -39,6 +39,9 @@
 
 import org.osgi.framework.Bundle;
 import org.osgi.service.component.ComponentContext;
+import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Property;
+import org.apache.felix.scr.annotations.Service;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.apache.clerezza.jaxrs.utils.TrailingSlash;
@@ -58,11 +61,11 @@
  * using the Discobits ontology
  *
  * @author rbn
- * @scr.component
- * @scr.service interface="java.lang.Object"
- * @scr.property name="javax.ws.rs" type="Boolean" value="true"
  *
  */
+...@component
+...@service(Object.class)
+...@property(name="javax.ws.rs", boolValue=true)
 @Path("tools/editor")
 public class Editor {
        
@@ -117,25 +120,19 @@
                        tcManager.getMGraph(graphUri);
                return new GraphNode(uri, mGraph);
        }
-       /*
-        * note that without specifying consumes the subsequent method using
-        * @FormParam is never selected
+
+       /**
+        * replaces the subgraph serialized with RDF/XML in <code>revokedString
+        * </code> with the one from <code>assertedString</code>.
+        *
+        * @param graphUri the graph within which the replacement has to take 
place or null
+        * for the content graph
+        * @param assertedString the asserted Graph as RDF/XML
+        * @param revokedString the revoked Graph as RDF/XML
         */
-       /*...@post
-       @Path("post")
-       @Consumes({"application/rdf+xml", 
"text/rdf+n3","application/n-triples","application/turtle","application/n3","text/n3","text/turtle"})
-       public void postDiscobit(@QueryParam("resource") UriRef uri, 
-                       @QueryParam("graph") UriRef graphUri, Graph graph) {
-               final MGraph mGraph = graphUri == null ? 
cgProvider.getContentGraph() :
-                       tcManager.getMGraph(graphUri);
-               new SimpleDiscobitsHandler(mGraph).remove(uri);
-               mGraph.addAll(graph);
-       }*/
-       
        @POST
        @Path("post")
-       public void postDiscobit(@QueryParam("resource") UriRef uri,
-                       @QueryParam("graph") UriRef graphUri,
+       public void postDiscobit(@QueryParam("graph") UriRef graphUri,
                        @FormParam("assert") String assertedString,
                        @FormParam("revoke") String revokedString) {
                MessageBodyReader<Graph> graphReader = 
providers.getMessageBodyReader(Graph.class, Graph.class, null,rdfXmlType);

Modified: 
incubator/clerezza/issues/CLEREZZA-70/org.apache.clerezza.platform.content/src/main/resources/org/apache/clerezza/platform/content/staticweb/scripts/tria-disco.js
URL: 
http://svn.apache.org/viewvc/incubator/clerezza/issues/CLEREZZA-70/org.apache.clerezza.platform.content/src/main/resources/org/apache/clerezza/platform/content/staticweb/scripts/tria-disco.js?rev=902892&r1=902891&r2=902892&view=diff
==============================================================================
--- 
incubator/clerezza/issues/CLEREZZA-70/org.apache.clerezza.platform.content/src/main/resources/org/apache/clerezza/platform/content/staticweb/scripts/tria-disco.js
 (original)
+++ 
incubator/clerezza/issues/CLEREZZA-70/org.apache.clerezza.platform.content/src/main/resources/org/apache/clerezza/platform/content/staticweb/scripts/tria-disco.js
 Mon Jan 25 17:40:09 2010
@@ -5,9 +5,9 @@
 
 TriaDisco.putData = function(rdfSymbol, store, previousStore, 
noContainerCreation) {
     var xhr = Util.XMLHTTPFactory();
-    var postUrl = "post?resource="+rdfSymbol.uri;
+    var postUrl = "post";
        if (TriaDisco.graphUri != null) {
-               postUrl += "&graph="+TriaDisco.graphUri
+               postUrl += "?graph="+TriaDisco.graphUri
        }
     xhr.open('POST', postUrl, false);
 

Modified: 
incubator/clerezza/issues/CLEREZZA-70/org.apache.clerezza.rdf.utils/src/main/java/org/apache/clerezza/rdf/utils/MGraphUtils.java
URL: 
http://svn.apache.org/viewvc/incubator/clerezza/issues/CLEREZZA-70/org.apache.clerezza.rdf.utils/src/main/java/org/apache/clerezza/rdf/utils/MGraphUtils.java?rev=902892&r1=902891&r2=902892&view=diff
==============================================================================
--- 
incubator/clerezza/issues/CLEREZZA-70/org.apache.clerezza.rdf.utils/src/main/java/org/apache/clerezza/rdf/utils/MGraphUtils.java
 (original)
+++ 
incubator/clerezza/issues/CLEREZZA-70/org.apache.clerezza.rdf.utils/src/main/java/org/apache/clerezza/rdf/utils/MGraphUtils.java
 Mon Jan 25 17:40:09 2010
@@ -1,18 +1,20 @@
 /*
- *  Copyright 2010 reto.
+ * 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
  *
- *  Licensed 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
  *
- *       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.
- *  under the License.
+ * 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.clerezza.rdf.utils;
@@ -72,9 +74,6 @@
                        }
                        final GraphNode objectGN = new 
GraphNode(triple.getObject(), unGroundedTriples);
                        NonLiteral subject = triple.getSubject();
-                       if (subject instanceof BNode) {
-                               subject = null;
-                       }
                        Graph context = objectGN.getNodeContext();
                        Iterator<Triple> potentialIter = mGraph.filter(subject, 
triple.getPredicate(), null);
                        while (potentialIter.hasNext()) {
@@ -98,7 +97,7 @@
                        if (triple == null) {
                                break;
                        }
-                       final GraphNode subjectGN = new 
GraphNode(triple.getObject(), unGroundedTriples);
+                       final GraphNode subjectGN = new 
GraphNode(triple.getSubject(), unGroundedTriples);
                        Resource object = triple.getObject();
                        if (object instanceof BNode) {
                                object = null;

Added: 
incubator/clerezza/issues/CLEREZZA-70/org.apache.clerezza.rdf.utils/src/test/java/org/apache/clerezza/rdf/utils/MGraphUtilsTest.java
URL: 
http://svn.apache.org/viewvc/incubator/clerezza/issues/CLEREZZA-70/org.apache.clerezza.rdf.utils/src/test/java/org/apache/clerezza/rdf/utils/MGraphUtilsTest.java?rev=902892&view=auto
==============================================================================
--- 
incubator/clerezza/issues/CLEREZZA-70/org.apache.clerezza.rdf.utils/src/test/java/org/apache/clerezza/rdf/utils/MGraphUtilsTest.java
 (added)
+++ 
incubator/clerezza/issues/CLEREZZA-70/org.apache.clerezza.rdf.utils/src/test/java/org/apache/clerezza/rdf/utils/MGraphUtilsTest.java
 Mon Jan 25 17:40:09 2010
@@ -0,0 +1,115 @@
+/*
+ * 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.clerezza.rdf.utils;
+
+import org.apache.clerezza.rdf.core.BNode;
+import org.apache.clerezza.rdf.core.MGraph;
+import org.apache.clerezza.rdf.core.UriRef;
+import org.apache.clerezza.rdf.core.impl.SimpleMGraph;
+import org.apache.clerezza.rdf.core.impl.TripleImpl;
+import org.apache.clerezza.rdf.utils.MGraphUtils.NoSuchSubGraphException;
+import org.junit.Assert;
+import org.junit.Test;
+
+/**
+ *
+ * @author reto
+ */
+public class MGraphUtilsTest {
+
+       final UriRef u1 = new UriRef("http://ex.org/1";);
+       final UriRef u2 = new UriRef("http://ex.org/2";);
+       final UriRef u3 = new UriRef("http://ex.org/3";);
+
+       @Test
+       public void removeSubGraph() throws NoSuchSubGraphException {
+               MGraph baseGraph = new SimpleMGraph();
+               {
+                       BNode bNode1 = new BNode();
+                       BNode bNode2 = new BNode();
+                       baseGraph.add(new TripleImpl(u1, u2, bNode2));
+                       baseGraph.add(new TripleImpl(bNode2, u2, bNode2));
+                       baseGraph.add(new TripleImpl(bNode2, u2, bNode1));
+                       baseGraph.add(new TripleImpl(u3, u2, u1));
+               }
+
+               MGraph subGraph = new SimpleMGraph();
+               {
+                       BNode bNode1 = new BNode();
+                       BNode bNode2 = new BNode();
+                       subGraph.add(new TripleImpl(u1, u2, bNode2));
+                       subGraph.add(new TripleImpl(bNode2, u2, bNode2));
+                       subGraph.add(new TripleImpl(bNode2, u2, bNode1));
+               }
+               MGraphUtils.removeSubGraph(baseGraph, subGraph);
+               Assert.assertEquals(1, baseGraph.size());
+       }
+       
+       /** It is required that the subgraph comprises the whole context of the 
Bnodes it ioncludes
+        * 
+        * @throws 
org.apache.clerezza.rdf.utils.MGraphUtils.NoSuchSubGraphException
+        */
+       @Test(expected=NoSuchSubGraphException.class)
+       public void removeIncompleteSubGraph() throws NoSuchSubGraphException {
+               MGraph baseGraph = new SimpleMGraph();
+               {
+                       BNode bNode1 = new BNode();
+                       BNode bNode2 = new BNode();
+                       baseGraph.add(new TripleImpl(u1, u2, bNode2));
+                       baseGraph.add(new TripleImpl(bNode2, u2, bNode2));
+                       baseGraph.add(new TripleImpl(bNode2, u2, bNode1));
+                       baseGraph.add(new TripleImpl(u3, u2, u1));
+               }
+
+               MGraph subGraph = new SimpleMGraph();
+               {
+                       BNode bNode1 = new BNode();
+                       BNode bNode2 = new BNode();
+                       subGraph.add(new TripleImpl(u1, u2, bNode2));
+                       subGraph.add(new TripleImpl(bNode2, u2, bNode2));
+               }
+               MGraphUtils.removeSubGraph(baseGraph, subGraph);
+       }
+
+       @Test(expected=NoSuchSubGraphException.class)
+       public void removeInvalidSubGraph() throws NoSuchSubGraphException {
+               MGraph baseGraph = new SimpleMGraph();
+               {
+                       BNode bNode1 = new BNode();
+                       BNode bNode2 = new BNode();
+                       baseGraph.add(new TripleImpl(u1, u2, bNode2));
+                       baseGraph.add(new TripleImpl(bNode2, u2, bNode2));
+                       baseGraph.add(new TripleImpl(bNode2, u2, bNode1));
+                       baseGraph.add(new TripleImpl(u3, u2, u1));
+               }
+
+               MGraph subGraph = new SimpleMGraph();
+               {
+                       BNode bNode1 = new BNode();
+                       BNode bNode2 = new BNode();
+                       subGraph.add(new TripleImpl(u1, u2, bNode2));
+                       subGraph.add(new TripleImpl(bNode2, u2, bNode2));
+                       baseGraph.add(new TripleImpl(bNode2, u2, bNode1));
+                       baseGraph.add(new TripleImpl(bNode2, u2, new BNode()));
+               }
+               MGraphUtils.removeSubGraph(baseGraph, subGraph);
+       }
+
+}


Reply via email to