Author: reto
Date: Wed Dec 16 07:19:47 2009
New Revision: 891138

URL: http://svn.apache.org/viewvc?rev=891138&view=rev
Log:
merged down

Added:
    
incubator/clerezza/issues/CLEREZZA-26/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/MetaDataGenerator.java
      - copied unchanged from r891033, 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/MetaDataGenerator.java
Modified:
    incubator/clerezza/issues/CLEREZZA-26/org.apache.clerezza.platform.content/ 
  (props changed)
    
incubator/clerezza/issues/CLEREZZA-26/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/AbstractDiscobitsHandler.java
    
incubator/clerezza/issues/CLEREZZA-26/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/DiscobitsHandler.java
    
incubator/clerezza/issues/CLEREZZA-26/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/DiscobitsTypeHandler.java
    
incubator/clerezza/issues/CLEREZZA-26/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/SimpleDiscobitsHandler.java

Propchange: 
incubator/clerezza/issues/CLEREZZA-26/org.apache.clerezza.platform.content/
------------------------------------------------------------------------------
--- svn:mergeinfo (added)
+++ svn:mergeinfo Wed Dec 16 07:19:47 2009
@@ -0,0 +1 @@
+/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.webapp.parent/org.apache.clerezza.platform.content:890392-891033

Modified: 
incubator/clerezza/issues/CLEREZZA-26/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/AbstractDiscobitsHandler.java
URL: 
http://svn.apache.org/viewvc/incubator/clerezza/issues/CLEREZZA-26/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/AbstractDiscobitsHandler.java?rev=891138&r1=891137&r2=891138&view=diff
==============================================================================
--- 
incubator/clerezza/issues/CLEREZZA-26/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/AbstractDiscobitsHandler.java
 (original)
+++ 
incubator/clerezza/issues/CLEREZZA-26/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/AbstractDiscobitsHandler.java
 Wed Dec 16 07:19:47 2009
@@ -27,7 +27,6 @@
 import org.apache.clerezza.rdf.core.LiteralFactory;
 import org.apache.clerezza.rdf.core.MGraph;
 import org.apache.clerezza.rdf.core.NonLiteral;
-import org.apache.clerezza.rdf.core.Resource;
 import org.apache.clerezza.rdf.core.Triple;
 import org.apache.clerezza.rdf.core.TypedLiteral;
 import org.apache.clerezza.rdf.core.UriRef;
@@ -47,6 +46,14 @@
         */
        protected abstract MGraph getMGraph();
 
+       /**
+        * A <code>Set</code> containing <code>MetaDataGenerator</code>s to be 
used
+        * to add meta data to data putted by the handler.
+        *
+        * @return a Set containing meta data generators
+        */
+       protected abstract Set<MetaDataGenerator> getMetaDataGenerators();
+
        @Override
        public void put(UriRef infoDiscoBitUri, MediaType mediaType,
                        byte[] data) {
@@ -58,11 +65,14 @@
                infoDiscoBitNode.addProperty(DISCOBITS.infoBit, dataLiteral);
                TypedLiteral mediaTypeLiteral = 
LiteralFactory.getInstance().createTypedLiteral(mediaType.toString());
                
infoDiscoBitNode.addProperty(DISCOBITS.mediaType,mediaTypeLiteral);
+               for(MetaDataGenerator generator : getMetaDataGenerators()) {
+                       generator.generate(infoDiscoBitNode, data, mediaType);
+               }
        }
 
        @Override
        public  void remove(NonLiteral node) {
-               MGraph mGraph = getMGraph();
+               MGraph mGraph = getMGraph();            
                Iterator<Triple> properties = mGraph.filter(node, null, null);
                //copying properties to set, as we're modifying underlying graph
                Set<Triple> propertiesSet = new HashSet<Triple>();
@@ -75,28 +85,19 @@
                        UriRef predicate = triple.getPredicate();
                        if (predicate.equals(DISCOBITS.contains)) {
                                try {
-                                       GraphNode graphNode = new 
GraphNode((NonLiteral)triple.getObject(), mGraph);
+                                       GraphNode containedNode = new 
GraphNode((NonLiteral)triple.getObject(), mGraph);
                                        //The following includes triple
-                                       graphNode.deleteNodeContext();
+                                       containedNode.deleteNodeContext();
                                } catch (ClassCastException e) {
                                        throw new RuntimeException("The value 
of "+predicate+" is expected not to be a literal");
                                }
                                //as some other properties of node could have 
been in the context of the object
                                remove(node);
                                return;
-                       }
-                       if 
(predicate.getUnicodeString().startsWith("http://discobits.org/ontology#";)) {
-                               mGraph.remove(triple);
-                               continue;
-                       }
-                       if (predicate.equals(RDF.type)) {
-                               Resource object = triple.getObject();
-                               if ((object instanceof UriRef)
-                                               && 
((UriRef)object).getUnicodeString().startsWith("http://discobits.org/ontology#";))
 {
-                                       mGraph.remove(triple);
-                               }
-                       }
+                       }                       
                }
+               GraphNode graphNode = new GraphNode(node, mGraph);
+               graphNode.deleteNodeContext();
        }
 
        @Override
@@ -120,5 +121,4 @@
                }
                return MediaType.valueOf(infoDiscobit.getContentType());
        }
-
 }

Modified: 
incubator/clerezza/issues/CLEREZZA-26/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/DiscobitsHandler.java
URL: 
http://svn.apache.org/viewvc/incubator/clerezza/issues/CLEREZZA-26/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/DiscobitsHandler.java?rev=891138&r1=891137&r2=891138&view=diff
==============================================================================
--- 
incubator/clerezza/issues/CLEREZZA-26/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/DiscobitsHandler.java
 (original)
+++ 
incubator/clerezza/issues/CLEREZZA-26/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/DiscobitsHandler.java
 Wed Dec 16 07:19:47 2009
@@ -43,7 +43,8 @@
                        byte[] data);
 
        /**
-        * removes InfoDiscoBits (aka binary contents) and other DiscoBits.
+        * Removes InfoDiscoBits (aka binary contents), other DiscoBits and
+        * the context of the specified node.
         * 
         * @param node
         */

Modified: 
incubator/clerezza/issues/CLEREZZA-26/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/DiscobitsTypeHandler.java
URL: 
http://svn.apache.org/viewvc/incubator/clerezza/issues/CLEREZZA-26/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/DiscobitsTypeHandler.java?rev=891138&r1=891137&r2=891138&view=diff
==============================================================================
--- 
incubator/clerezza/issues/CLEREZZA-26/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/DiscobitsTypeHandler.java
 (original)
+++ 
incubator/clerezza/issues/CLEREZZA-26/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/DiscobitsTypeHandler.java
 Wed Dec 16 07:19:47 2009
@@ -18,9 +18,12 @@
  */
 package org.apache.clerezza.platform.content;
 
+import java.util.Collections;
+import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
 
+import java.util.Set;
 import javax.ws.rs.GET;
 import javax.ws.rs.PUT;
 import javax.ws.rs.Produces;
@@ -33,6 +36,13 @@
 import javax.ws.rs.core.Response.Status;
 import javax.ws.rs.ext.RuntimeDelegate;
 
+import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Property;
+import org.apache.felix.scr.annotations.Reference;
+import org.apache.felix.scr.annotations.ReferenceCardinality;
+import org.apache.felix.scr.annotations.ReferencePolicy;
+import org.apache.felix.scr.annotations.Service;
+import org.apache.felix.scr.annotations.Services;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.apache.clerezza.platform.graphprovider.content.ContentGraphProvider;
@@ -51,24 +61,29 @@
  * TypeHanlder to allow HTTP GET and PUT.
  *
  * @author reto, tho
- * 
- * @scr.component
- * @scr.service interface="java.lang.Object"
- * @scr.service 
interface="org.apache.clerezza.platform.content.DiscobitsHandler"
- * @scr.property name="org.apache.clerezza.platform.typehandler" 
type="Boolean" value="true"
- * 
  */
+...@component
+...@services({
+       @Service(Object.class),
+       @Service(DiscobitsHandler.class)
+})
+...@property(name="org.apache.clerezza.platform.typehandler", boolValue=true)
+...@reference(name="metaDataGenerator",
+       policy=ReferencePolicy.DYNAMIC,
+       cardinality=ReferenceCardinality.OPTIONAL_MULTIPLE,
+       referenceInterface=MetaDataGenerator.class
+)
 @SupportedTypes(types = { "http://www.w3.org/2000/01/rdf-schema#Resource"; }, 
prioritize = false)
 public class DiscobitsTypeHandler extends AbstractDiscobitsHandler
                implements DiscobitsHandler {
 
-       /**
-        * @scr.reference
-        */
+       @Reference
        private ContentGraphProvider cgProvider;
        
        private static final Logger logger = 
LoggerFactory.getLogger(DiscobitsTypeHandler.class);
 
+       private Set<MetaDataGenerator> metaDataGenerators =
+                       Collections.synchronizedSet(new 
HashSet<MetaDataGenerator>());
 
        /**
         * TypeHandle method for rdf types "TitledContext", "InfoDiscoBit",
@@ -122,9 +137,21 @@
                return Response.status(Status.CREATED).build();
        }
 
+       protected void bindMetaDataGenerator(MetaDataGenerator generator) {
+               metaDataGenerators.add(generator);
+       }
+
+       protected void unbindMetaDataGenerator(MetaDataGenerator generator) {
+               metaDataGenerators.remove(generator);
+       }
+
        @Override
        protected MGraph getMGraph() {
                return cgProvider.getContentGraph();
        }
 
+       @Override
+       protected Set<MetaDataGenerator> getMetaDataGenerators() {
+               return metaDataGenerators;
+       }
 }

Modified: 
incubator/clerezza/issues/CLEREZZA-26/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/SimpleDiscobitsHandler.java
URL: 
http://svn.apache.org/viewvc/incubator/clerezza/issues/CLEREZZA-26/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/SimpleDiscobitsHandler.java?rev=891138&r1=891137&r2=891138&view=diff
==============================================================================
--- 
incubator/clerezza/issues/CLEREZZA-26/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/SimpleDiscobitsHandler.java
 (original)
+++ 
incubator/clerezza/issues/CLEREZZA-26/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/SimpleDiscobitsHandler.java
 Wed Dec 16 07:19:47 2009
@@ -18,6 +18,7 @@
  */
 package org.apache.clerezza.platform.content;
 
+import java.util.Set;
 import org.apache.clerezza.rdf.core.MGraph;
 
 /**
@@ -37,4 +38,9 @@
                return mGraph;
        }
 
+       @Override
+       protected Set<MetaDataGenerator> getMetaDataGenerators() {
+               return null;
+       }
+
 }


Reply via email to