You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@clerezza.apache.org by mi...@apache.org on 2010/04/13 20:26:44 UTC

svn commit: r933733 - /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

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;
+	}
+
+}