You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@clerezza.apache.org by re...@apache.org on 2009/12/16 08:19:48 UTC
svn commit: r891138 - in
/incubator/clerezza/issues/CLEREZZA-26/org.apache.clerezza.platform.content:
./ src/main/java/org/apache/clerezza/platform/content/
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;
+ }
+
}