Author: mir
Date: Wed Apr  7 17:57:52 2010
New Revision: 931630

URL: http://svn.apache.org/viewvc?rev=931630&view=rev
Log:
CLEREZZA-187: implemented typerendering support for DataTypes (of typed 
literals)

Added:
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/resources/org/apache/clerezza/platform/content/XmlLiteral.ssp
Modified:
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/DiscobitTemplating.java
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/RenderletRendererFactoryImpl.java
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/test/java/org/apache/clerezza/platform/typerendering/RendereringTest.java

Modified: 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/DiscobitTemplating.java
URL: 
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/DiscobitTemplating.java?rev=931630&r1=931629&r2=931630&view=diff
==============================================================================
--- 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/DiscobitTemplating.java
 (original)
+++ 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/DiscobitTemplating.java
 Wed Apr  7 17:57:52 2010
@@ -26,6 +26,7 @@ import javax.ws.rs.core.MediaType;
 
 import org.osgi.service.component.ComponentContext;
 import org.apache.clerezza.platform.typerendering.RenderletManager;
+import 
org.apache.clerezza.platform.typerendering.scalaserverpages.ScalaServerPagesRenderlet;
 import org.apache.clerezza.platform.typerendering.seedsnipe.SeedsnipeRenderlet;
 import org.apache.clerezza.rdf.core.UriRef;
 import org.apache.clerezza.rdf.ontologies.DISCOBITS;
@@ -66,5 +67,11 @@ public class DiscobitTemplating {
 
                
renderletManager.registerRenderlet(TitledContentRenderlet.class.getName(),
                                null, DISCOBITS.TitledContent, "naked", 
MediaType.APPLICATION_XHTML_XML_TYPE, true);
+
+               // registre renderlet for XMLLiteral datatype.
+               
renderletManager.registerRenderlet(ScalaServerPagesRenderlet.class.getName(),
+                               new 
UriRef(getClass().getResource("XmlLiteral.ssp").toString()),
+                               new 
UriRef("http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral";), null,
+                               MediaType.APPLICATION_XHTML_XML_TYPE, true);
        }
 }

Added: 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/resources/org/apache/clerezza/platform/content/XmlLiteral.ssp
URL: 
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/resources/org/apache/clerezza/platform/content/XmlLiteral.ssp?rev=931630&view=auto
==============================================================================
--- 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/resources/org/apache/clerezza/platform/content/XmlLiteral.ssp
 (added)
+++ 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/resources/org/apache/clerezza/platform/content/XmlLiteral.ssp
 Wed Apr  7 17:57:52 2010
@@ -0,0 +1,14 @@
+import _root_.scala.xml._
+
+{
+       var elem:Elem = null
+       val lexicalForm:String = res*;
+       try {           
+               elem = XML.loadString(lexicalForm)
+               elem
+       } catch {
+         case e: Exception =>
+               val elem:Elem = XML.loadString("<span>" + lexicalForm + 
"</span>")
+               elem
+       }
+}

Modified: 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/RenderletRendererFactoryImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/RenderletRendererFactoryImpl.java?rev=931630&r1=931629&r2=931630&view=diff
==============================================================================
--- 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/RenderletRendererFactoryImpl.java
 (original)
+++ 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/RenderletRendererFactoryImpl.java
 Wed Apr  7 17:57:52 2010
@@ -97,15 +97,19 @@ public class RenderletRendererFactoryImp
 
        @Override
        public Renderer createRenderer(GraphNode resource, String mode, 
List<MediaType> acceptableMediaTypes) {
-               // extract rdf types
-               Set<UriRef> rdfTypes = new HashSet<UriRef>();
-               Iterator<UriRef> it = resource.getUriRefObjects(RDF.type);
-               while (it.hasNext()) {
-                       final UriRef rdfType = it.next();
-                       rdfTypes.add(rdfType);
+               Set<UriRef> types = new HashSet<UriRef>();
+               if (resource.getNode() instanceof TypedLiteral) {
+                       types.add(((TypedLiteral) 
resource.getNode()).getDataType());
+               } else {
+                       // extract rdf types
+                       Iterator<UriRef> it = 
resource.getUriRefObjects(RDF.type);
+                       while (it.hasNext()) {
+                               final UriRef rdfType = it.next();
+                               types.add(rdfType);
+                       }
+                       types.add(RDFS.Resource);
                }
-               rdfTypes.add(RDFS.Resource);
-               return getRenderer(rdfTypes, mode, acceptableMediaTypes);
+               return getRenderer(types, mode, acceptableMediaTypes);
        }
 
        private RendererImpl getRenderer(final Set<UriRef> rdfTypes,

Modified: 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/test/java/org/apache/clerezza/platform/typerendering/RendereringTest.java
URL: 
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/test/java/org/apache/clerezza/platform/typerendering/RendereringTest.java?rev=931630&r1=931629&r2=931630&view=diff
==============================================================================
--- 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/test/java/org/apache/clerezza/platform/typerendering/RendereringTest.java
 (original)
+++ 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/test/java/org/apache/clerezza/platform/typerendering/RendereringTest.java
 Wed Apr  7 17:57:52 2010
@@ -39,6 +39,7 @@ import org.apache.clerezza.rdf.core.Trip
 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.core.impl.TypedLiteralImpl;
 import org.apache.clerezza.rdf.ontologies.RDF;
 import org.apache.clerezza.rdf.ontologies.RDFS;
 import org.apache.clerezza.rdf.utils.GraphNode;
@@ -133,7 +134,6 @@ public abstract class RendereringTest {
                
                RenderletManager renderletManager = createNewRenderletManager();
                MediaType mediaType = new MediaType ("application", "test");
-
                renderletManager = createNewRenderletManager();
                String result;
                // register renderlet and rendering specification with no mode.
@@ -257,6 +257,16 @@ public abstract class RendereringTest {
                        Assert.assertTrue(false);
                } catch (RenderletNotFoundException ex) {}
        }
+
+       @Test
+       public void typedLiteralRenderingTest() throws Exception{
+               MediaType mediaType = new MediaType ("application", "test");
+               RenderletManager renderletManager = createNewRenderletManager();
+               renderletManager.registerRenderlet(renderletMockA.pid, 
renderSpecUriA, rdfTypeX, mode1, mediaType, true);
+               GraphNode typedLiteral = new GraphNode(new 
TypedLiteralImpl("bla", rdfTypeX), new SimpleMGraph());
+               String result = renderWithSetting(typedLiteral, mode1, 
mediaType);
+               Assert.assertEquals(renderletMockA.outputForRenderSpecUriA + 
mediaType.toString(), result);
+       }
        
        @Test
        public void testGetMediaType() {
@@ -295,11 +305,16 @@ public abstract class RendereringTest {
        
        private List<MediaType> createMediaTypeList(MediaType... mediaTypes) {
                return Arrays.asList(mediaTypes);
-       }       
-       
+       }
+
        private String renderWithSetting(String mode, MediaType mediaType,
                        UriRef... types) throws IOException {
                GraphNode resource = createGraphNode(types);
+               return renderWithSetting(resource, mode, mediaType);
+       }
+       
+       private String renderWithSetting(GraphNode resource, String mode, 
MediaType mediaType) throws IOException {
+               
                ByteArrayOutputStream baos = new ByteArrayOutputStream();
                Renderer renderer = 
getRendererFactory().createRenderer(resource, mode,
                                Collections.singletonList(mediaType));


Reply via email to