Author: mir
Date: Tue Apr 13 18:26:44 2010
New Revision: 933733

URL: http://svn.apache.org/viewvc?rev=933733&view=rev
Log:
CLEREZZA-191: forgot to add RenderletDefition

Added:
    
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/RenderletDefinition.java

Added: 
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/RenderletDefinition.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/RenderletDefinition.java?rev=933733&view=auto
==============================================================================
--- 
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/RenderletDefinition.java
 (added)
+++ 
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/RenderletDefinition.java
 Tue Apr 13 18:26:44 2010
@@ -0,0 +1,176 @@
+/*
+ *  Copyright 2010 mir.
+ * 
+ *  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
+ * 
+ *  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.
+ */
+package org.apache.clerezza.platform.typerendering;
+
+import java.util.Iterator;
+import java.util.regex.Pattern;
+import javax.ws.rs.core.MediaType;
+import org.apache.clerezza.platform.typerendering.ontologies.TYPERENDERING;
+import org.apache.clerezza.rdf.core.BNode;
+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;
+import org.apache.clerezza.rdf.ontologies.RDF;
+import org.apache.clerezza.rdf.utils.GraphNode;
+
+/**
+ *
+ * @author mir
+ */
+public class RenderletDefinition {
+
+       private BNode rederletDefinition;
+       private String renderlet;
+       private UriRef renderingSpecification;
+       private UriRef rdfType;
+       private String mode;
+       private Pattern modePattern;
+       private MediaType mediaType;
+       private boolean builtIn;
+       private MGraph configGraph;
+
+       public RenderletDefinition(BNode renderletDefinition, MGraph 
configGraph) {
+               this.configGraph = configGraph;
+               this.rederletDefinition = renderletDefinition;
+               renderlet = getRenderletName(renderletDefinition);
+               renderingSpecification = 
getRenderingSpecification(renderletDefinition);
+               rdfType = getRenderRdfType(renderletDefinition);
+               mode = getMode(renderletDefinition);
+               if (mode != null) {
+                       modePattern = Pattern.compile(mode);
+               }
+               mediaType = getMediaType(renderletDefinition);
+               GraphNode node =
+                               new GraphNode(renderletDefinition, configGraph);
+               builtIn = node.hasProperty(RDF.type,
+                               TYPERENDERING.BuiltInRenderletDefinition);
+       }
+
+       public BNode getNode() {
+               return rederletDefinition;
+       }
+
+       public boolean isBuiltIn() {
+               return builtIn;
+       }
+
+       public MediaType getMediaType() {
+               return mediaType;
+       }
+
+       public Pattern getModePattern() {
+               return modePattern;
+       }
+
+       public String getMode() {
+               return mode;
+       }
+
+       public UriRef getRdfType() {
+               return rdfType;
+       }
+
+       public UriRef getRenderingSpecification() {
+               return renderingSpecification;
+       }
+
+       public String getRenderlet() {
+               return renderlet;
+       }
+
+       /**
+        * Returns the mode of the specified renderlet definition. Returns
+        * null if the renderlet definition has no renderlet-mode.
+        *
+        * @param contentGraph
+        * @param renderletDef
+        * @return
+        */
+       private String getMode(Resource renderletDef) {
+               Iterator<Triple> renderletModeIter = configGraph.filter(
+                               (NonLiteral) renderletDef, 
TYPERENDERING.renderingMode, null);
+               if (renderletModeIter.hasNext()) {
+                       TypedLiteral renderletMode = (TypedLiteral) 
renderletModeIter.next().getObject();
+                       return 
LiteralFactory.getInstance().createObject(String.class,
+                                       renderletMode);
+               }
+               return null;
+       }
+
+       private MediaType getMediaType(Resource renderletDef) {
+               Iterator<Triple> mediaTypeIter = configGraph.filter(
+                               (NonLiteral) renderletDef, 
TYPERENDERING.mediaType, null);
+               if (mediaTypeIter.hasNext()) {
+                       TypedLiteral renderletMode = (TypedLiteral) 
mediaTypeIter.next().getObject();
+                       String mediaTypeStr = 
LiteralFactory.getInstance().createObject(String.class,
+                                       renderletMode);
+                       return MediaType.valueOf(mediaTypeStr);
+               }
+               return null;
+       }
+
+       /**
+        * Returns the rendering specification of the specified renderlet 
definition.
+        * Returns null if the renderlet definition has no rendering 
specification.
+
+        * @param renderletDef
+        * @return
+        */
+       private UriRef getRenderingSpecification(Resource renderletDef) {
+               Iterator<Triple> renderSpecIter = configGraph.filter(
+                               (NonLiteral) renderletDef, 
TYPERENDERING.renderingSpecification, null);
+               if (renderSpecIter.hasNext()) {
+                       return (UriRef) renderSpecIter.next().getObject();
+               }
+               return null;
+       }
+
+       private String getRenderletName(Resource renderletDef) {
+
+               Iterator<Triple> renderletModeIter = configGraph.filter(
+                               (NonLiteral) renderletDef, 
TYPERENDERING.renderlet, null);
+               if (renderletModeIter.hasNext()) {
+                       TypedLiteral renderletMode = (TypedLiteral) 
renderletModeIter.next().getObject();
+                       String renderletName = 
LiteralFactory.getInstance().createObject(String.class,
+                                       renderletMode);
+                       return renderletName;
+               }
+               return null;
+       }
+
+       /**
+        * Returns the renderlet rdf-type of the specified renderlet definition.
+        * Returns null if the renderlet definition has no renderlet rdf-type.
+        *
+        * @param renderletDef
+        * @return
+        */
+       private UriRef getRenderRdfType(Resource renderletDef) {
+               Iterator<Triple> renderedTypeIter = configGraph.filter(
+                               (NonLiteral) renderletDef, 
TYPERENDERING.renderedType, null);
+
+               if (renderedTypeIter.hasNext()) {
+                       return (UriRef) renderedTypeIter.next().getObject();
+               }
+               return null;
+       }
+
+}


Reply via email to