You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stanbol.apache.org by sf...@apache.org on 2010/12/12 16:13:37 UTC

svn commit: r1044832 [5/14] - in /incubator/stanbol/trunk/rick: indexing/dbPedia/src/main/java/eu/iksproject/rick/indexing/dbPedia/cli/ indexing/genericRdf/src/main/java/eu/iksproject/rick/indexing/rdf/ indexing/geonames/src/main/java/eu/iksproject/ric...

Modified: incubator/stanbol/trunk/rick/jersey/src/main/java/eu/iksproject/rick/jersey/writers/QueryResultsToRDF.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/rick/jersey/src/main/java/eu/iksproject/rick/jersey/writers/QueryResultsToRDF.java?rev=1044832&r1=1044831&r2=1044832&view=diff
==============================================================================
--- incubator/stanbol/trunk/rick/jersey/src/main/java/eu/iksproject/rick/jersey/writers/QueryResultsToRDF.java (original)
+++ incubator/stanbol/trunk/rick/jersey/src/main/java/eu/iksproject/rick/jersey/writers/QueryResultsToRDF.java Sun Dec 12 15:13:35 2010
@@ -15,71 +15,71 @@ import eu.iksproject.rick.servicesapi.mo
 import eu.iksproject.rick.servicesapi.query.QueryResultList;
 
 final class QueryResultsToRDF {
-	
-	private QueryResultsToRDF() { /* do not create instances of utility classes */}
 
-	static final UriRef queryResultList = new UriRef(RdfResourceEnum.QueryResultSet.getUri());
-	static final UriRef queryResult = new UriRef(RdfResourceEnum.queryResult.getUri());
-	
-	static MGraph toRDF(QueryResultList<?> resultList){
-		final MGraph resultGraph;
-		Class<?> type = resultList.getType();
-		if(String.class.isAssignableFrom(type)){
-			resultGraph = new SimpleMGraph(); //create a new Graph
-			for(Object result : resultList){
-				//add a triple to each reference in the result set
-				resultGraph.add(new TripleImpl(queryResultList, queryResult, new UriRef(result.toString())));
-			}
-		} else {
-			//first determine the type of the resultList
-			final boolean isSignType;
-			if(Representation.class.isAssignableFrom(type)){
-				isSignType = false;
-			} else if(Representation.class.isAssignableFrom(type)){
-				isSignType = true;
-			} else {
-				//incompatible type -> throw an Exception
-				throw new IllegalArgumentException("Parsed type "+type+" is not supported");
-			}
-			//special treatment for RdfQueryResultList for increased performance
-			if(resultList instanceof RdfQueryResultList){
-				resultGraph = ((RdfQueryResultList)resultList).getResultGraph();
-				if(isSignType){ //if we build a ResultList for Signs, that we need to do more things
-					//first remove all triples representing results
-					Iterator<Triple> resultTripleIt = resultGraph.filter(queryResultList, queryResult, null);
-					while(resultTripleIt.hasNext()){
-						resultTripleIt.next();
-						resultTripleIt.remove();
-					}
-					//now add the Sign specific triples and add result triples
-					//to the Sign IDs
-					for(Object result: resultList){
-						UriRef signId = new UriRef(((Sign)result).getId());
-						SignToRDF.addSignTriplesToGraph(resultGraph, (Sign)result);
-						resultGraph.add(new TripleImpl(queryResultList, queryResult, signId));
-					}
-				}
-			} else { //any other implementation of the QueryResultList interface
-				resultGraph = new SimpleMGraph(); //create a new graph
-				if(Representation.class.isAssignableFrom(type)){
-					for(Object result:resultList){
-						UriRef resultId;
-						if(!isSignType){
-							SignToRDF.addRDFTo(resultGraph, (Representation)result);
-							resultId = new UriRef(((Representation)result).getId());
-						} else {
-							SignToRDF.addRDFTo(resultGraph, (Sign)result);
-							resultId = new UriRef(((Sign)result).getId());
-						}
-						//Note: In case of Representation this Triple points to
-						//      the representation. In case of Signs it points to
-						//      the sign.
-						resultGraph.add(new TripleImpl(queryResultList, queryResult, resultId));
-					}
-				}
-			}
-		}
-		return resultGraph;
-	}
+    private QueryResultsToRDF() { /* do not create instances of utility classes */}
+
+    static final UriRef queryResultList = new UriRef(RdfResourceEnum.QueryResultSet.getUri());
+    static final UriRef queryResult = new UriRef(RdfResourceEnum.queryResult.getUri());
+
+    static MGraph toRDF(QueryResultList<?> resultList) {
+        final MGraph resultGraph;
+        Class<?> type = resultList.getType();
+        if (String.class.isAssignableFrom(type)) {
+            resultGraph = new SimpleMGraph(); //create a new Graph
+            for (Object result : resultList) {
+                //add a triple to each reference in the result set
+                resultGraph.add(new TripleImpl(queryResultList, queryResult, new UriRef(result.toString())));
+            }
+        } else {
+            //first determine the type of the resultList
+            final boolean isSignType;
+            if (Representation.class.isAssignableFrom(type)) {
+                isSignType = false;
+            } else if (Representation.class.isAssignableFrom(type)) {
+                isSignType = true;
+            } else {
+                //incompatible type -> throw an Exception
+                throw new IllegalArgumentException("Parsed type " + type + " is not supported");
+            }
+            //special treatment for RdfQueryResultList for increased performance
+            if (resultList instanceof RdfQueryResultList) {
+                resultGraph = ((RdfQueryResultList) resultList).getResultGraph();
+                if (isSignType) { //if we build a ResultList for Signs, that we need to do more things
+                    //first remove all triples representing results
+                    Iterator<Triple> resultTripleIt = resultGraph.filter(queryResultList, queryResult, null);
+                    while (resultTripleIt.hasNext()) {
+                        resultTripleIt.next();
+                        resultTripleIt.remove();
+                    }
+                    //now add the Sign specific triples and add result triples
+                    //to the Sign IDs
+                    for (Object result : resultList) {
+                        UriRef signId = new UriRef(((Sign) result).getId());
+                        SignToRDF.addSignTriplesToGraph(resultGraph, (Sign) result);
+                        resultGraph.add(new TripleImpl(queryResultList, queryResult, signId));
+                    }
+                }
+            } else { //any other implementation of the QueryResultList interface
+                resultGraph = new SimpleMGraph(); //create a new graph
+                if (Representation.class.isAssignableFrom(type)) {
+                    for (Object result : resultList) {
+                        UriRef resultId;
+                        if (!isSignType) {
+                            SignToRDF.addRDFTo(resultGraph, (Representation) result);
+                            resultId = new UriRef(((Representation) result).getId());
+                        } else {
+                            SignToRDF.addRDFTo(resultGraph, (Sign) result);
+                            resultId = new UriRef(((Sign) result).getId());
+                        }
+                        //Note: In case of Representation this Triple points to
+                        //      the representation. In case of Signs it points to
+                        //      the sign.
+                        resultGraph.add(new TripleImpl(queryResultList, queryResult, resultId));
+                    }
+                }
+            }
+        }
+        return resultGraph;
+    }
 
 }

Modified: incubator/stanbol/trunk/rick/jersey/src/main/java/eu/iksproject/rick/jersey/writers/SignToJSON.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/rick/jersey/src/main/java/eu/iksproject/rick/jersey/writers/SignToJSON.java?rev=1044832&r1=1044831&r2=1044832&view=diff
==============================================================================
--- incubator/stanbol/trunk/rick/jersey/src/main/java/eu/iksproject/rick/jersey/writers/SignToJSON.java (original)
+++ incubator/stanbol/trunk/rick/jersey/src/main/java/eu/iksproject/rick/jersey/writers/SignToJSON.java Sun Dec 12 15:13:35 2010
@@ -17,113 +17,117 @@ import eu.iksproject.rick.servicesapi.mo
 
 final class SignToJSON {
 
-	private SignToJSON() { /* do not create instances of utility classes */}
+    private SignToJSON() { /* do not create instances of utility classes */}
 
-	static JSONObject toJSON(Sign sign) throws JSONException {
-		JSONObject jSign;
-		if(sign instanceof Symbol){
-			jSign = writeSymbolAsJSON((Symbol)sign);
-		} else if(sign instanceof EntityMapping){
-			jSign = writeEntityMappingAsJSON((EntityMapping)sign);
-		} else {
-			jSign = convertSignToJSON(sign);
-		}
-		return jSign;
-	}
-
-	private static JSONObject writeSymbolAsJSON(Symbol symbol) throws JSONException {
-		JSONObject jSymbol = convertSignToJSON(symbol);
-		jSymbol.put("label", symbol.getLabel());
-		Iterator<Text> descriptions = symbol.getDescriptions();
-		if(descriptions.hasNext()){
-			jSymbol.put("description", convertFieldValuesToJSON(descriptions));
-		}
-		Collection<String> value = ModelUtils.asCollection(symbol.getPredecessors());
-		if(!value.isEmpty()){
-			jSymbol.put("predecessors", value);
-		}
-		value= ModelUtils.asCollection(symbol.getSuccessors());
-		if(!value.isEmpty()){
-			jSymbol.put("successors", new JSONArray());
-		}
-		jSymbol.put("stateUri", symbol.getState().getUri());
-		jSymbol.put("state", symbol.getState().name());
-		return jSymbol;
-	}
-	private static JSONObject writeEntityMappingAsJSON(EntityMapping entityMapping) throws JSONException {
-		JSONObject jEntityMapping = convertSignToJSON(entityMapping);
-		jEntityMapping.put("symbol", entityMapping.getSymbolId());
-		jEntityMapping.put("entity", entityMapping.getEntityId());
-		jEntityMapping.put("stateUri", entityMapping.getState().getUri());
-		jEntityMapping.put("state", entityMapping.getState().name());
-		return jEntityMapping;
-	}
-
-
-	/**
-	 * @param sign
-	 * @return
-	 * @throws JSONException
-	 */
-	private static JSONObject convertSignToJSON(Sign sign) throws JSONException {
-		JSONObject jSign;
-		jSign = new JSONObject();
-		jSign.put("id", sign.getId());
-		jSign.put("site", sign.getSignSite());
-		Representation rep = sign.getRepresentation();
-		jSign.put("representation", toJSON(rep));
-		return jSign;
-	}
-
-	/**
-	 * Converts the {@link Representation} to JSON
-	 * @param jSign
-	 * @param rep
-	 * @throws JSONException
-	 */
-	static JSONObject toJSON(Representation rep) throws JSONException {
-		JSONObject jRep = new JSONObject();
-		jRep.put("id", rep.getId());
-		for(Iterator<String> fields = rep.getFieldNames();fields.hasNext();){
-			String field = fields.next();
-			Iterator<Object> values = rep.get(field);
-			if(values.hasNext()){
-				jRep.put(field, convertFieldValuesToJSON(values));
-			}
-		}
-		return jRep;
-	}
-
-	/**
-	 * @param values Iterator over all the values to add
-	 * @return The {@link JSONArray} with all the values as {@link JSONObject}
-	 * @throws JSONException
-	 */
-	private static JSONArray convertFieldValuesToJSON(Iterator<?> values) throws JSONException {
-		JSONArray jValues = new JSONArray();
-		while(values.hasNext()){
-			jValues.put(convertFieldValueToJSON(values.next()));
-		}
-		return jValues;
-	}
-
-	/**
-	 * The value to write. Special support for  {@link Reference} and {@link Text}.
-	 * The {@link #toString()} Method is used to write the "value" key.
-	 * @param value the value
-	 * @return the {@link JSONObject} representing the value
-	 * @throws JSONException
-	 */
-	private static JSONObject convertFieldValueToJSON(Object value) throws JSONException {
-		JSONObject jValue = new JSONObject();
-		if(value instanceof Reference){
-			jValue.put("type", "reference");
-		} else if(value instanceof Text){
-			jValue.put("type", "text");
-			jValue.put("xml:lang", ((Text)value).getLanguage());
-		} else {
-			jValue.put("type", "value");//TODO: better name? ^^
-		}
-		jValue.put("value", value.toString());
-		return jValue;
-	}}
+    static JSONObject toJSON(Sign sign) throws JSONException {
+        JSONObject jSign;
+        if (sign instanceof Symbol) {
+            jSign = writeSymbolAsJSON((Symbol) sign);
+        } else if (sign instanceof EntityMapping) {
+            jSign = writeEntityMappingAsJSON((EntityMapping) sign);
+        } else {
+            jSign = convertSignToJSON(sign);
+        }
+        return jSign;
+    }
+
+    private static JSONObject writeSymbolAsJSON(Symbol symbol) throws JSONException {
+        JSONObject jSymbol = convertSignToJSON(symbol);
+        jSymbol.put("label", symbol.getLabel());
+        Iterator<Text> descriptions = symbol.getDescriptions();
+        if (descriptions.hasNext()) {
+            jSymbol.put("description", convertFieldValuesToJSON(descriptions));
+        }
+        Collection<String> value = ModelUtils.asCollection(symbol.getPredecessors());
+        if (!value.isEmpty()) {
+            jSymbol.put("predecessors", value);
+        }
+        value = ModelUtils.asCollection(symbol.getSuccessors());
+        if (!value.isEmpty()) {
+            jSymbol.put("successors", new JSONArray());
+        }
+        jSymbol.put("stateUri", symbol.getState().getUri());
+        jSymbol.put("state", symbol.getState().name());
+        return jSymbol;
+    }
+
+    private static JSONObject writeEntityMappingAsJSON(EntityMapping entityMapping) throws JSONException {
+        JSONObject jEntityMapping = convertSignToJSON(entityMapping);
+        jEntityMapping.put("symbol", entityMapping.getSymbolId());
+        jEntityMapping.put("entity", entityMapping.getEntityId());
+        jEntityMapping.put("stateUri", entityMapping.getState().getUri());
+        jEntityMapping.put("state", entityMapping.getState().name());
+        return jEntityMapping;
+    }
+
+
+    /**
+     * @param sign
+     * @return
+     * @throws JSONException
+     */
+    private static JSONObject convertSignToJSON(Sign sign) throws JSONException {
+        JSONObject jSign;
+        jSign = new JSONObject();
+        jSign.put("id", sign.getId());
+        jSign.put("site", sign.getSignSite());
+        Representation rep = sign.getRepresentation();
+        jSign.put("representation", toJSON(rep));
+        return jSign;
+    }
+
+    /**
+     * Converts the {@link Representation} to JSON
+     *
+     * @param jSign
+     * @param rep
+     * @throws JSONException
+     */
+    static JSONObject toJSON(Representation rep) throws JSONException {
+        JSONObject jRep = new JSONObject();
+        jRep.put("id", rep.getId());
+        for (Iterator<String> fields = rep.getFieldNames(); fields.hasNext();) {
+            String field = fields.next();
+            Iterator<Object> values = rep.get(field);
+            if (values.hasNext()) {
+                jRep.put(field, convertFieldValuesToJSON(values));
+            }
+        }
+        return jRep;
+    }
+
+    /**
+     * @param values Iterator over all the values to add
+     * @return The {@link JSONArray} with all the values as {@link JSONObject}
+     * @throws JSONException
+     */
+    private static JSONArray convertFieldValuesToJSON(Iterator<?> values) throws JSONException {
+        JSONArray jValues = new JSONArray();
+        while (values.hasNext()) {
+            jValues.put(convertFieldValueToJSON(values.next()));
+        }
+        return jValues;
+    }
+
+    /**
+     * The value to write. Special support for  {@link Reference} and {@link Text}.
+     * The {@link #toString()} Method is used to write the "value" key.
+     *
+     * @param value the value
+     * @return the {@link JSONObject} representing the value
+     * @throws JSONException
+     */
+    private static JSONObject convertFieldValueToJSON(Object value) throws JSONException {
+        JSONObject jValue = new JSONObject();
+        if (value instanceof Reference) {
+            jValue.put("type", "reference");
+        } else if (value instanceof Text) {
+            jValue.put("type", "text");
+            jValue.put("xml:lang", ((Text) value).getLanguage());
+        } else {
+            jValue.put("type", "value");//TODO: better name? ^^
+        }
+        jValue.put("value", value.toString());
+        return jValue;
+    }
+}

Modified: incubator/stanbol/trunk/rick/jersey/src/main/java/eu/iksproject/rick/jersey/writers/SignToRDF.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/rick/jersey/src/main/java/eu/iksproject/rick/jersey/writers/SignToRDF.java?rev=1044832&r1=1044831&r2=1044832&view=diff
==============================================================================
--- incubator/stanbol/trunk/rick/jersey/src/main/java/eu/iksproject/rick/jersey/writers/SignToRDF.java (original)
+++ incubator/stanbol/trunk/rick/jersey/src/main/java/eu/iksproject/rick/jersey/writers/SignToRDF.java Sun Dec 12 15:13:35 2010
@@ -17,62 +17,67 @@ import eu.iksproject.rick.servicesapi.mo
 import eu.iksproject.rick.servicesapi.model.rdf.RdfResourceEnum;
 
 final class SignToRDF {
-	private SignToRDF() { /* do not create instances of utility classes */}
+    private SignToRDF() { /* do not create instances of utility classes */}
+
+    static UriRef signRepresentation = new UriRef(RdfResourceEnum.signRepresentation.getUri());
+    static UriRef signSite = new UriRef(RdfResourceEnum.signSite.getUri());
+    static UriRef sign = new UriRef(RdfResourceEnum.Sign.getUri());
+    static UriRef entityMapping = new UriRef(RdfResourceEnum.EntityMapping.getUri());
+    static UriRef symbol = new UriRef(RdfResourceEnum.Symbol.getUri());
+    static RdfValueFactory valueFactory = RdfValueFactory.getInstance();
+    static LiteralFactory literalFactory = LiteralFactory.getInstance();
+
+    static MGraph toRDF(Representation representation) {
+        MGraph graph = new SimpleMGraph();
+        addRDFTo(graph, representation);
+        return graph;
+    }
+
+    static void addRDFTo(MGraph graph, Representation representation) {
+        graph.addAll(valueFactory.toRdfRepresentation(representation).getRdfGraph());
+    }
+
+    static TripleCollection toRDF(Sign sign) {
+        MGraph graph = new SimpleMGraph();
+        addRDFTo(graph, sign);
+        return graph;
+    }
+
+    static void addRDFTo(MGraph graph, Sign sign) {
+        addRDFTo(graph, sign.getRepresentation());
+        //now add some triples that represent the Sign
+        addSignTriplesToGraph(graph, sign);
+    }
+
+    /**
+     * Adds the Triples that represent the Sign to the parsed graph. Note that
+     * this method does not add triples for the representation. However it adds
+     * the triple (sign,singRepresentation,representation)
+     *
+     * @param graph the graph to add the triples
+     * @param sign the sign
+     */
+    static void addSignTriplesToGraph(MGraph graph, Sign sign) {
+        UriRef id = new UriRef(sign.getId());
+        UriRef repId = new UriRef(sign.getRepresentation().getId());
+        /*
+         * TODO: change to URI as soon as the paths are defined
+         *  e.g:
+         *   - Sign: <URLofRICK>/site/<sing.getSignSite>
+         *   - Symbol: <URLofRICK>/symbol/<sing.getSignSite>
+         *   - EntityMapping: <URLofRICK>/mapping/<sing.getSignSite>
+         * For now write a Literal with the ID of the Site
+         */
+        TypedLiteral siteName = literalFactory.createTypedLiteral(sign.getSignSite());
+        graph.add(new TripleImpl(id, SignToRDF.signSite, siteName));
+        graph.add(new TripleImpl(id, SignToRDF.signRepresentation, repId));
+        if (sign instanceof Symbol) {
+            graph.add(new TripleImpl(id, RDF.type, SignToRDF.symbol));
+        } else if (sign instanceof EntityMapping) {
+            graph.add(new TripleImpl(id, RDF.type, SignToRDF.entityMapping));
+        } else {
+            graph.add(new TripleImpl(id, RDF.type, SignToRDF.sign));
+        }
+    }
 
-	static UriRef signRepresentation = new UriRef(RdfResourceEnum.signRepresentation.getUri());
-	static UriRef signSite = new UriRef(RdfResourceEnum.signSite.getUri());
-	static UriRef sign = new UriRef(RdfResourceEnum.Sign.getUri());
-	static UriRef entityMapping = new UriRef(RdfResourceEnum.EntityMapping.getUri());
-	static UriRef symbol = new UriRef(RdfResourceEnum.Symbol.getUri());
-	static RdfValueFactory valueFactory = RdfValueFactory.getInstance();
-	static LiteralFactory literalFactory = LiteralFactory.getInstance();
-
-	static MGraph toRDF(Representation representation){
-		MGraph graph = new SimpleMGraph();
-		addRDFTo(graph, representation);
-		return graph;
-	}
-	static void addRDFTo(MGraph graph,Representation representation){
-		graph.addAll(valueFactory.toRdfRepresentation(representation).getRdfGraph());
-	}
-	
-	static TripleCollection toRDF(Sign sign){
-		MGraph graph = new SimpleMGraph();
-		addRDFTo(graph, sign);
-		return graph;
-	}
-	static void addRDFTo(MGraph graph, Sign sign){
-		addRDFTo(graph,sign.getRepresentation());
-		//now add some triples that represent the Sign
-		addSignTriplesToGraph(graph, sign);
-	}
-	/**
-	 * Adds the Triples that represent the Sign to the parsed graph. Note that
-	 * this method does not add triples for the representation. However it adds 
-	 * the triple (sign,singRepresentation,representation)
-	 * @param graph the graph to add the triples
-	 * @param sign the sign
-	 */
-	static void addSignTriplesToGraph(MGraph graph, Sign sign) {
-		UriRef id = new UriRef(sign.getId());
-		UriRef repId = new UriRef(sign.getRepresentation().getId());
-		/*
-		 * TODO: change to URI as soon as the paths are defined
-		 *  e.g:
-		 *   - Sign: <URLofRICK>/site/<sing.getSignSite>
-		 *   - Symbol: <URLofRICK>/symbol/<sing.getSignSite>
-		 *   - EntityMapping: <URLofRICK>/mapping/<sing.getSignSite>
-		 * For now write a Literal with the ID of the Site
-		 */
-		TypedLiteral siteName = literalFactory.createTypedLiteral(sign.getSignSite());
-		graph.add(new TripleImpl(id, SignToRDF.signSite, siteName));
-		graph.add(new TripleImpl(id, SignToRDF.signRepresentation, repId));
-		if(sign instanceof Symbol){
-			graph.add(new TripleImpl(id, RDF.type, SignToRDF.symbol));
-		} else if(sign instanceof EntityMapping){
-			graph.add(new TripleImpl(id, RDF.type, SignToRDF.entityMapping));
-		} else {
-			graph.add(new TripleImpl(id, RDF.type, SignToRDF.sign));
-		}
-	}
 }

Modified: incubator/stanbol/trunk/rick/jersey/src/main/java/eu/iksproject/rick/jersey/writers/SignWriter.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/rick/jersey/src/main/java/eu/iksproject/rick/jersey/writers/SignWriter.java?rev=1044832&r1=1044831&r2=1044832&view=diff
==============================================================================
--- incubator/stanbol/trunk/rick/jersey/src/main/java/eu/iksproject/rick/jersey/writers/SignWriter.java (original)
+++ incubator/stanbol/trunk/rick/jersey/src/main/java/eu/iksproject/rick/jersey/writers/SignWriter.java Sun Dec 12 15:13:35 2010
@@ -31,60 +31,60 @@ import eu.iksproject.rick.servicesapi.mo
  *
  */
 @Provider
-@Produces({ 
-		MediaType.APPLICATION_JSON, 
-		SupportedFormat.N3,
-        SupportedFormat.N_TRIPLE, 
+@Produces({
+        MediaType.APPLICATION_JSON,
+        SupportedFormat.N3,
+        SupportedFormat.N_TRIPLE,
         SupportedFormat.RDF_XML,
-        SupportedFormat.TURTLE, 
+        SupportedFormat.TURTLE,
         SupportedFormat.X_TURTLE,
         SupportedFormat.RDF_JSON })
 public class SignWriter implements MessageBodyWriter<Sign>{
 
-	public static final Set<String> supportedMediaTypes;
-	static {
-		Set<String> types = new HashSet<String>();
-		types.add(MediaType.APPLICATION_JSON);
-		types.add(SupportedFormat.N3);
-		types.add(SupportedFormat.N_TRIPLE);
-		types.add(SupportedFormat.RDF_JSON);
-		types.add(SupportedFormat.RDF_XML);
-		types.add(SupportedFormat.TURTLE);
-		types.add(SupportedFormat.X_TURTLE);
-		supportedMediaTypes = Collections.unmodifiableSet(types);
-	}
+    public static final Set<String> supportedMediaTypes;
+    static {
+        Set<String> types = new HashSet<String>();
+        types.add(MediaType.APPLICATION_JSON);
+        types.add(SupportedFormat.N3);
+        types.add(SupportedFormat.N_TRIPLE);
+        types.add(SupportedFormat.RDF_JSON);
+        types.add(SupportedFormat.RDF_XML);
+        types.add(SupportedFormat.TURTLE);
+        types.add(SupportedFormat.X_TURTLE);
+        supportedMediaTypes = Collections.unmodifiableSet(types);
+    }
     @Context
     protected ServletContext servletContext;
 
     protected Serializer getSerializer() {
         return (Serializer) servletContext.getAttribute(Serializer.class.getName());
     }
-	@Override
+    @Override
     public long getSize(Sign Sign, Class<?> type, Type genericType,
             Annotation[] annotations, MediaType mediaType) {
-		return -1; //to hard to calculate
-	}
+        return -1; //to hard to calculate
+    }
 
-	@Override
+    @Override
     public boolean isWriteable(Class<?> type, Type genericType, Annotation[] annotations, MediaType mediaType) {
-		return Sign.class.isAssignableFrom(type) && 
-			supportedMediaTypes.contains(mediaType.toString());
-	}
+        return Sign.class.isAssignableFrom(type) &&
+            supportedMediaTypes.contains(mediaType.toString());
+    }
 
-	@Override
-	public void writeTo(Sign sign, Class<?> type, Type genericType,
-			Annotation[] annotations, MediaType mediaType,
-			MultivaluedMap<String, Object> httpHeaders, OutputStream entityStream)
-			throws IOException, WebApplicationException {
-		if(mediaType == null || MediaType.APPLICATION_JSON.equals(mediaType.toString())){
-			try {
-				IOUtils.write(SignToJSON.toJSON(sign).toString(4), entityStream);
-			} catch (JSONException e) {
-				throw new WebApplicationException(e, Status.INTERNAL_SERVER_ERROR);
-			}
-		} else { //RDF
-			getSerializer().serialize(entityStream, SignToRDF.toRDF(sign), mediaType.toString());
-		} 
-	}
+    @Override
+    public void writeTo(Sign sign, Class<?> type, Type genericType,
+            Annotation[] annotations, MediaType mediaType,
+            MultivaluedMap<String, Object> httpHeaders, OutputStream entityStream)
+            throws IOException, WebApplicationException {
+        if(mediaType == null || MediaType.APPLICATION_JSON.equals(mediaType.toString())){
+            try {
+                IOUtils.write(SignToJSON.toJSON(sign).toString(4), entityStream);
+            } catch (JSONException e) {
+                throw new WebApplicationException(e, Status.INTERNAL_SERVER_ERROR);
+            }
+        } else { //RDF
+            getSerializer().serialize(entityStream, SignToRDF.toRDF(sign), mediaType.toString());
+        }
+    }
 
 }

Modified: incubator/stanbol/trunk/rick/model/clerezza/src/main/java/eu/iksproject/rick/model/clerezza/RdfReference.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/rick/model/clerezza/src/main/java/eu/iksproject/rick/model/clerezza/RdfReference.java?rev=1044832&r1=1044831&r2=1044832&view=diff
==============================================================================
--- incubator/stanbol/trunk/rick/model/clerezza/src/main/java/eu/iksproject/rick/model/clerezza/RdfReference.java (original)
+++ incubator/stanbol/trunk/rick/model/clerezza/src/main/java/eu/iksproject/rick/model/clerezza/RdfReference.java Sun Dec 12 15:13:35 2010
@@ -1,5 +1,5 @@
 /**
- * 
+ *
  */
 package eu.iksproject.rick.model.clerezza;
 
@@ -8,35 +8,35 @@ import org.apache.clerezza.rdf.core.UriR
 import eu.iksproject.rick.servicesapi.model.Reference;
 
 public class RdfReference implements Reference,Cloneable {
-	private final UriRef uri;
-	protected RdfReference(String reference){
-		this.uri = new UriRef(reference);
-	}
-	protected RdfReference(UriRef uri){
-		this.uri = uri;
-	}
-	@Override
-	public String getReference() {
-		return uri.getUnicodeString();
-	}
-	public UriRef getUriRef(){
-		return uri;
-	}
-	@Override
-	protected Object clone() throws CloneNotSupportedException {
-		return new RdfReference(new UriRef(uri.getUnicodeString()));
-	}
-	@Override
-	public int hashCode() {
-		return uri.getUnicodeString().hashCode();
-	}
-	@Override
-	public boolean equals(Object obj) {
-		return obj != null &&obj instanceof Reference && uri.getUnicodeString().equals(((Reference)obj).getReference());
-	}
-	@Override
-	public String toString() {
-		return uri.getUnicodeString();
-	}
-	
-}
\ No newline at end of file
+    private final UriRef uri;
+    protected RdfReference(String reference){
+        this.uri = new UriRef(reference);
+    }
+    protected RdfReference(UriRef uri){
+        this.uri = uri;
+    }
+    @Override
+    public String getReference() {
+        return uri.getUnicodeString();
+    }
+    public UriRef getUriRef(){
+        return uri;
+    }
+    @Override
+    protected Object clone() throws CloneNotSupportedException {
+        return new RdfReference(new UriRef(uri.getUnicodeString()));
+    }
+    @Override
+    public int hashCode() {
+        return uri.getUnicodeString().hashCode();
+    }
+    @Override
+    public boolean equals(Object obj) {
+        return obj != null &&obj instanceof Reference && uri.getUnicodeString().equals(((Reference)obj).getReference());
+    }
+    @Override
+    public String toString() {
+        return uri.getUnicodeString();
+    }
+
+}

Modified: incubator/stanbol/trunk/rick/model/clerezza/src/main/java/eu/iksproject/rick/model/clerezza/RdfRepresentation.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/rick/model/clerezza/src/main/java/eu/iksproject/rick/model/clerezza/RdfRepresentation.java?rev=1044832&r1=1044831&r2=1044832&view=diff
==============================================================================
--- incubator/stanbol/trunk/rick/model/clerezza/src/main/java/eu/iksproject/rick/model/clerezza/RdfRepresentation.java (original)
+++ incubator/stanbol/trunk/rick/model/clerezza/src/main/java/eu/iksproject/rick/model/clerezza/RdfRepresentation.java Sun Dec 12 15:13:35 2010
@@ -33,330 +33,346 @@ import eu.iksproject.rick.servicesapi.mo
 
 public class RdfRepresentation implements Representation{
 
-	private static final Logger log = LoggerFactory.getLogger(RdfRepresentation.class);
-	
-	private static final UriRef REPRESENTATION_TYPE_PROPERTY = new UriRef(RdfResourceEnum.signType.getUri());
-	
-	private final RdfValueFactory valueFactory = RdfValueFactory.getInstance();
-	
-	private final GraphNode graphNode;
-	
-	protected final GraphNode getGraphNode() {
-		return graphNode;
-	}
-
-	protected RdfRepresentation(UriRef resource, TripleCollection graph) {
-		this.graphNode = new GraphNode(resource, graph);
-	}
-	/**
-	 * Getter for the read only view onto the RDF data of this representation 
-	 * @return The RDF graph of this Representation
-	 */
-	public TripleCollection getRdfGraph(){
-		return graphNode.getGraph();
-	}
-
-	protected UriRef getRepresentationType(){
-		Iterator<UriRef> it = this.graphNode.getUriRefObjects(REPRESENTATION_TYPE_PROPERTY);
-		return it.hasNext()?it.next():null;
-	}
-	@Override
-	public void add(String field, Object value) {
-		if(field == null) {
-			throw new IllegalArgumentException("Parameter \"String field\" MUST NOT be NULL!");
-		}
-		if(value == null){
-			log.warn("NULL parsed as value in add method for symbol "+getId()+" and field "+field+" -> call ignored");
-			return;
-		}
-		UriRef fieldUriRef = new UriRef(field);
-		Collection<Object> values = new ArrayList<Object>();
-		//process the parsed value with the Utility Method ->
-		// this converts Objects as defined in the specification
-		ModelUtils.checkValues(valueFactory, value, values);
-		//We still need to implement support for specific types supported by this implementation
-		for(Object current : values){
-			if(current instanceof Resource){ //native support for Clerezza types!
-				graphNode.addProperty(fieldUriRef, (Resource)current);
-			} else if(current instanceof RdfReference){ 
-				//treat RDF Implementations special to avoid creating new instances
-				graphNode.addProperty(fieldUriRef, ((RdfReference) current).getUriRef());
-			} else if(current instanceof Reference){
-				graphNode.addProperty(fieldUriRef, new UriRef(((Reference) current).getReference()));
-				addReference(field,((Reference)current).getReference());
-			} else if(current instanceof RdfText){
-				//treat RDF Implementations special to avoid creating new instances
-				graphNode.addProperty(fieldUriRef,((RdfText) current).getLiteral());
-			} else if(current instanceof Text){
-				addNaturalText(fieldUriRef, ((Text)current).getText(), ((Text)current).getLanguage());
-			} else { //else add an typed Literal!
-				addTypedLiteral(fieldUriRef, current);
-			}
-		}
-	}
-	private void addTypedLiteral(UriRef field, Object literalValue){
-		Literal literal;
-		try {
-			literal = RdfResourceUtils.createLiteral(literalValue);
-		} catch (NoConvertorException e){
-			log.info("No Converter for value type "+literalValue.getClass()+" (parsed for field "+field+") use toString() to get String representation");
-			literal = RdfResourceUtils.createLiteral(literalValue.toString(), null);
-		}
-		graphNode.addProperty(field, literal);
-	}
-	@Override
-	public void addReference(String field, String reference) {
-		if(field == null) {
-			throw new IllegalArgumentException("Parameter \"String field\" MUST NOT be NULL!");
-		}
-		if(reference == null){
-			log.warn("NULL parsed as value in add method for symbol "+getId()+" and field "+field+" -> call ignored");
-		}
-		graphNode.addProperty(new UriRef(field), new UriRef(reference));
-	}
-	@Override
-	public void addNaturalText(String field, String text, String...languages) {
-		if(field == null) {
-			throw new IllegalArgumentException("Parameter \"String field\" MUST NOT be NULL!");
-		}
-		if(text == null){
-			log.warn("NULL parsed as value in add method for symbol "+getId()+" and field "+field+" -> call ignored");
-		}
-		this.addNaturalText(new UriRef(field), text, languages);
-	}
-	private void addNaturalText(UriRef field, String text, String...languages) {
-		if(languages == null){
-			log.debug("NULL parsed as languages -> replacing with \"new String []{null}\"" +
-					" -> assuming a missing explicit cast to (Stirng) in the var arg");
-			languages = new String []{null};
-		}
-		for(String language : languages){
-			graphNode.addProperty(field, RdfResourceUtils.createLiteral(text, language));
-		}
-	}
-	@SuppressWarnings("unchecked")
-	@Override
-	public <T> Iterator<T> get(String field, final Class<T> type) throws UnsupportedTypeException {
-		UriRef fieldUriRef = new UriRef(field);
-		if(Resource.class.isAssignableFrom(type)){ //native support for Clerezza types
-			return new TypeSaveIterator<T>(graphNode.getObjects(fieldUriRef), type);
-		} else if(type.equals(String.class)){ //support to convert anything to String
-			return (Iterator<T>) new AdaptingIterator<Resource,String>(
-					graphNode.getObjects(fieldUriRef),
-					new Resource2StringAdapter<Resource>(),
-					String.class);
-		} else if(type.equals(URI.class) || type.equals(URL.class)){ //support for References
-			return new AdaptingIterator<UriRef, T>(
-					graphNode.getUriRefObjects(fieldUriRef),
-					new UriRefAdapter<T>(),
-					type);
-		} else if(Reference.class.isAssignableFrom(type)){
-			return (Iterator<T>) new ReferenceIterator(
-					graphNode.getUriRefObjects(fieldUriRef));
-		} else if(Text.class.isAssignableFrom(type)){
-			return (Iterator<T>)new AdaptingIterator<Literal, Text>(
-					graphNode.getLiterals(fieldUriRef),
-					new Literal2TextAdapter<Literal>(),
-					Text.class);
-		} else { //support for Literals -> Type conversions
-			return new AdaptingIterator<Literal, T>(
-					graphNode.getLiterals(fieldUriRef),
-					new LiteralAdapter<Literal, T>(),
-					type);
-		}
-	}
-
-	@Override
-	public Iterator<Reference> getReferences(String field) {
-		Iterator<UriRef> it = graphNode.getUriRefObjects(new UriRef(field));
-		return new ReferenceIterator(it);
-	}
-
-	@Override
-	public Iterator<Text> getText(String field) {
-		return new AdaptingIterator<Literal, Text>(
-				graphNode.getLiterals(new UriRef(field)), 
-				new Literal2TextAdapter<Literal>(),
-				Text.class);
-	}
-	@Override
-	public Iterator<Object> get(String field) {
-		return new AdaptingIterator<Resource, Object>(graphNode.getObjects(new UriRef(field)),
-				new Resource2ValueAdapter<Resource>(),Object.class);
-	}
-	@Override
-	public Iterator<Text> get(String field, String...languages) {
-		if(languages == null){
-			log.debug("NULL parsed as languages -> replacing with \"new String []{null}\"" +
-					" -> assuming a missing explicit cast to (Stirng) in the var arg");
-			languages = new String []{null};
-		}
-		return new AdaptingIterator<Literal, Text>(
-				graphNode.getLiterals(new UriRef(field)), 
-				new Literal2TextAdapter<Literal>(languages),
-				Text.class);
-	}
-	@Override
-	public Iterator<String> getFieldNames() {
-		return new AdaptingIterator<UriRef, String>(graphNode.getProperties(),
-				new Resource2StringAdapter<UriRef>(), String.class);
-	}
-
-	@Override
-	public <T> T getFirst(String field, Class<T> type) throws UnsupportedTypeException {
-		Iterator<T> it = get(field,type);
-		if(it.hasNext()){
-			return it.next();
-		} else {
-			return null;
-		}
-	}
-
-	@Override
-	public Object getFirst(String field) {
-		Iterator<Object> it = get(field);
-		if(it.hasNext()){
-			return it.next();
-		} else {
-			return null;
-		}
-	}
-	@Override
-	public Reference getFirstReference(String field) {
-		Iterator<Reference> it = getReferences(field);
-		return it.hasNext()?it.next():null;
-	}
-	@Override
-	public Text getFirst(String field, String...languages) {
-		if(languages == null){
-			log.debug("NULL parsed as languages -> replacing with \"new String []{null}\"" +
-					" -> assuming a missing explicit cast to (Stirng) in the var arg");
-			languages = new String []{null};
-		}
-		Iterator<Text> it = get(field,languages);
-		if(it.hasNext()){
-			return it.next();
-		} else {
-			return null;
-		}
-	}
-	@Override
-	public String getId() {
-		return ((UriRef)graphNode.getNode()).getUnicodeString();
-	}
-
-	@Override
-	public void remove(String field, Object value) {
-		if(field == null) {
-			throw new IllegalArgumentException("Parameter \"String field\" MUST NOT be NULL!");
-		}
-		if(value == null){
-			log.warn("NULL parsed as value in remove method for symbol "+getId()+" and field "+field+" -> call ignored");
-		}
-		UriRef fieldUriRef = new UriRef(field);
-		if(value instanceof Resource){ //native support for Clerezza types!
-			graphNode.deleteProperty(fieldUriRef, (Resource)value);
-		} else if(value instanceof URI || value instanceof URL){
-			removeReference(field, value.toString());
-		} else if (value instanceof String[]){
-			if(((String[])value).length>0){
-				if(((String[])value).length>1){
-					removeNaturalText(field, ((String[])value)[0],((String[])value)[1]);
-				} else {
-					removeNaturalText(field, ((String[])value)[0],(String)null);
-				}
-			}
-		} else {
-			removeTypedLiteral(fieldUriRef, value);
-		}
-		
-	}
-
-	@Override
-	public void removeReference(String field, String reference) {
-		if(field == null) {
-			throw new IllegalArgumentException("Parameter \"String field\" MUST NOT be NULL!");
-		}
-		if(reference == null){
-			log.warn("NULL parsed as value in remove method for symbol "+getId()+" and field "+field+" -> call ignored");
-		}
-		graphNode.deleteProperty(new UriRef(field), new UriRef(reference));
-	}
-	protected void removeTypedLiteral(UriRef field, Object object){
-		Literal literal;
-		try{
-			literal = RdfResourceUtils.createLiteral(object);
-		} catch (NoConvertorException e){
-			log.info("No Converter for value type "+object.getClass()+" (parsed for field "+field+") use toString() Method to get String representation");
-			literal = RdfResourceUtils.createLiteral(object.toString(), null);
-		}
-		graphNode.deleteProperty(field,literal);
-	}
-	@Override
-	public void removeNaturalText(String field, String value, String... languages) {
-		if(field == null) {
-			throw new IllegalArgumentException("Parameter \"String field\" MUST NOT be NULL!");
-		}
-		if(value == null){
-			log.warn("NULL parsed as value in remove method for symbol "+getId()+" and field "+field+" -> call ignored");
-		}
-		if(languages == null){
-			log.debug("NULL parsed as languages -> replacing with \"new String []{null}\"" +
-					" -> assuming a missing explicit cast to (Stirng) in the var arg");
-			languages = new String []{null};
-		}
-		UriRef fieldUriRef = new UriRef(field);
-		for(String language : languages){
-			graphNode.deleteProperty(fieldUriRef,RdfResourceUtils.createLiteral(value, language));
-		}
-	}
-	@Override
-	public void removeAll(String field) {
-		graphNode.deleteProperties(new UriRef(field));
-	}
-	@Override
-	public void removeAllNaturalText(String field, String... languages) {
-		if(field == null) {
-			throw new IllegalArgumentException("Parameter \"String field\" MUST NOT be NULL!");
-		}
-		if(languages == null){
-			log.debug("NULL parsed as languages -> replacing with \"new String []{null}\"" +
-					" -> assuming a missing explicit cast to (Stirng) in the var arg");
-			languages = new String []{null};
-		}
-		UriRef fieldUriRef = new UriRef(field);
-		Collection<Literal> literals = new ArrayList<Literal>();
-		//get all the affected Literals
-		for(Iterator<Literal> it =  new NaturalLanguageLiteralIterator(graphNode.getLiterals(fieldUriRef), languages);
-			it.hasNext();
-			literals.add(it.next())
-		);
-		//delete the found literals
-		for(Literal literal:literals){
-			graphNode.deleteProperty(fieldUriRef, literal);
-		}
-		
-	}
-	@Override
-	public void set(String field, Object value) {
-		removeAll(field);
-		if(value != null){
-			add(field,value);
-		}
-	}
-	@Override
-	public void setReference(String field, String reference) {
-		removeAll(reference);
-		if(reference != null){
-			addReference(field, reference);
-		}
-	}
-	@Override
-	public void setNaturalText(String field, String text, String...languages) {
-		removeAllNaturalText(field, languages);
-		if(text != null){
-			addNaturalText(field, text, languages);
-		}
-	}
+    private static final Logger log = LoggerFactory.getLogger(RdfRepresentation.class);
+
+    private static final UriRef REPRESENTATION_TYPE_PROPERTY = new UriRef(RdfResourceEnum.signType.getUri());
+
+    private final RdfValueFactory valueFactory = RdfValueFactory.getInstance();
+
+    private final GraphNode graphNode;
+
+    protected final GraphNode getGraphNode() {
+        return graphNode;
+    }
+
+    protected RdfRepresentation(UriRef resource, TripleCollection graph) {
+        this.graphNode = new GraphNode(resource, graph);
+    }
+
+    /**
+     * Getter for the read only view onto the RDF data of this representation.
+     *
+     * @return The RDF graph of this Representation
+     */
+    public TripleCollection getRdfGraph(){
+        return graphNode.getGraph();
+    }
+
+    protected UriRef getRepresentationType(){
+        Iterator<UriRef> it = this.graphNode.getUriRefObjects(REPRESENTATION_TYPE_PROPERTY);
+        return it.hasNext()?it.next():null;
+    }
+    @Override
+    public void add(String field, Object value) {
+        if(field == null) {
+            throw new IllegalArgumentException("Parameter \"String field\" MUST NOT be NULL!");
+        }
+        if(value == null){
+            log.warn("NULL parsed as value in add method for symbol "+getId()
+                    +" and field "+field+" -> call ignored");
+            return;
+        }
+        UriRef fieldUriRef = new UriRef(field);
+        Collection<Object> values = new ArrayList<Object>();
+        //process the parsed value with the Utility Method ->
+        // this converts Objects as defined in the specification
+        ModelUtils.checkValues(valueFactory, value, values);
+        //We still need to implement support for specific types supported by this implementation
+        for (Object current : values){
+            if (current instanceof Resource){ //native support for Clerezza types!
+                graphNode.addProperty(fieldUriRef, (Resource)current);
+            } else if (current instanceof RdfReference){
+                //treat RDF Implementations special to avoid creating new instances
+                graphNode.addProperty(fieldUriRef, ((RdfReference) current).getUriRef());
+            } else if (current instanceof Reference){
+                graphNode.addProperty(fieldUriRef, new UriRef(((Reference) current).getReference()));
+                addReference(field,((Reference)current).getReference());
+            } else if (current instanceof RdfText){
+                //treat RDF Implementations special to avoid creating new instances
+                graphNode.addProperty(fieldUriRef,((RdfText) current).getLiteral());
+            } else if (current instanceof Text){
+                addNaturalText(fieldUriRef, ((Text)current).getText(), ((Text)current).getLanguage());
+            } else { //else add an typed Literal!
+                addTypedLiteral(fieldUriRef, current);
+            }
+        }
+    }
+
+    private void addTypedLiteral(UriRef field, Object literalValue){
+        Literal literal;
+        try {
+            literal = RdfResourceUtils.createLiteral(literalValue);
+        } catch (NoConvertorException e){
+            log.info("No Converter for value type "+literalValue.getClass()
+                    +" (parsed for field "+field+") use toString() to get String representation");
+            literal = RdfResourceUtils.createLiteral(literalValue.toString(), null);
+        }
+        graphNode.addProperty(field, literal);
+    }
+    @Override
+    public void addReference(String field, String reference) {
+        if(field == null) {
+            throw new IllegalArgumentException("Parameter \"String field\" MUST NOT be NULL!");
+        }
+        if(reference == null){
+            log.warn("NULL parsed as value in add method for symbol "+getId()
+                    +" and field "+field+" -> call ignored");
+        }
+        graphNode.addProperty(new UriRef(field), new UriRef(reference));
+    }
+    @Override
+    public void addNaturalText(String field, String text, String...languages) {
+        if(field == null) {
+            throw new IllegalArgumentException("Parameter \"String field\" MUST NOT be NULL!");
+        }
+        if(text == null){
+            log.warn("NULL parsed as value in add method for symbol "+getId()
+                    +" and field "+field+" -> call ignored");
+        }
+        this.addNaturalText(new UriRef(field), text, languages);
+    }
+    private void addNaturalText(UriRef field, String text, String...languages) {
+        if(languages == null){
+            log.debug("NULL parsed as languages -> replacing with \"new String []{null}\"" +
+                    " -> assuming a missing explicit cast to (Stirng) in the var arg");
+            languages = new String []{null};
+        }
+        for(String language : languages){
+            graphNode.addProperty(field, RdfResourceUtils.createLiteral(text, language));
+        }
+    }
+
+    @SuppressWarnings("unchecked")
+    @Override
+    public <T> Iterator<T> get(String field, final Class<T> type) throws UnsupportedTypeException {
+        UriRef fieldUriRef = new UriRef(field);
+        if(Resource.class.isAssignableFrom(type)){ //native support for Clerezza types
+            return new TypeSaveIterator<T>(graphNode.getObjects(fieldUriRef), type);
+        } else if(type.equals(String.class)){ //support to convert anything to String
+            return (Iterator<T>) new AdaptingIterator<Resource,String>(
+                    graphNode.getObjects(fieldUriRef),
+                    new Resource2StringAdapter<Resource>(),
+                    String.class);
+        } else if(type.equals(URI.class) || type.equals(URL.class)){ //support for References
+            return new AdaptingIterator<UriRef, T>(
+                    graphNode.getUriRefObjects(fieldUriRef),
+                    new UriRefAdapter<T>(),
+                    type);
+        } else if(Reference.class.isAssignableFrom(type)){
+            return (Iterator<T>) new ReferenceIterator(
+                    graphNode.getUriRefObjects(fieldUriRef));
+        } else if(Text.class.isAssignableFrom(type)){
+            return (Iterator<T>)new AdaptingIterator<Literal, Text>(
+                    graphNode.getLiterals(fieldUriRef),
+                    new Literal2TextAdapter<Literal>(),
+                    Text.class);
+        } else { //support for Literals -> Type conversions
+            return new AdaptingIterator<Literal, T>(
+                    graphNode.getLiterals(fieldUriRef),
+                    new LiteralAdapter<Literal, T>(),
+                    type);
+        }
+    }
+
+    @Override
+    public Iterator<Reference> getReferences(String field) {
+        Iterator<UriRef> it = graphNode.getUriRefObjects(new UriRef(field));
+        return new ReferenceIterator(it);
+    }
+
+    @Override
+    public Iterator<Text> getText(String field) {
+        return new AdaptingIterator<Literal, Text>(
+                graphNode.getLiterals(new UriRef(field)),
+                new Literal2TextAdapter<Literal>(),
+                Text.class);
+    }
+
+    @Override
+    public Iterator<Object> get(String field) {
+        return new AdaptingIterator<Resource, Object>(graphNode.getObjects(new UriRef(field)),
+                new Resource2ValueAdapter<Resource>(),Object.class);
+    }
+
+    @Override
+    public Iterator<Text> get(String field, String...languages) {
+        if(languages == null){
+            log.debug("NULL parsed as languages -> replacing with \"new String []{null}\"" +
+                    " -> assuming a missing explicit cast to (String) in the var arg");
+            languages = new String []{null};
+        }
+        return new AdaptingIterator<Literal, Text>(
+                graphNode.getLiterals(new UriRef(field)),
+                new Literal2TextAdapter<Literal>(languages),
+                Text.class);
+    }
+
+    @Override
+    public Iterator<String> getFieldNames() {
+        return new AdaptingIterator<UriRef, String>(graphNode.getProperties(),
+                new Resource2StringAdapter<UriRef>(), String.class);
+    }
+
+    @Override
+    public <T> T getFirst(String field, Class<T> type) throws UnsupportedTypeException {
+        Iterator<T> it = get(field,type);
+        if(it.hasNext()){
+            return it.next();
+        } else {
+            return null;
+        }
+    }
+
+    @Override
+    public Object getFirst(String field) {
+        Iterator<Object> it = get(field);
+        if(it.hasNext()){
+            return it.next();
+        } else {
+            return null;
+        }
+    }
+    @Override
+    public Reference getFirstReference(String field) {
+        Iterator<Reference> it = getReferences(field);
+        return it.hasNext()?it.next():null;
+    }
+    @Override
+    public Text getFirst(String field, String...languages) {
+        if(languages == null){
+            log.debug("NULL parsed as languages -> replacing with \"new String []{null}\"" +
+                    " -> assuming a missing explicit cast to (String) in the var arg");
+            languages = new String []{null};
+        }
+        Iterator<Text> it = get(field,languages);
+        if(it.hasNext()){
+            return it.next();
+        } else {
+            return null;
+        }
+    }
+    @Override
+    public String getId() {
+        return ((UriRef)graphNode.getNode()).getUnicodeString();
+    }
+
+    @Override
+    public void remove(String field, Object value) {
+        if(field == null) {
+            throw new IllegalArgumentException("Parameter \"String field\" MUST NOT be NULL!");
+        }
+        if(value == null){
+            log.warn("NULL parsed as value in remove method for symbol "+getId()
+                    +" and field "+field+" -> call ignored");
+        }
+        UriRef fieldUriRef = new UriRef(field);
+        if(value instanceof Resource){ //native support for Clerezza types!
+            graphNode.deleteProperty(fieldUriRef, (Resource)value);
+        } else if(value instanceof URI || value instanceof URL){
+            removeReference(field, value.toString());
+        } else if (value instanceof String[]){
+            if(((String[])value).length>0){
+                if(((String[])value).length>1){
+                    removeNaturalText(field, ((String[])value)[0],((String[])value)[1]);
+                } else {
+                    removeNaturalText(field, ((String[])value)[0],(String)null);
+                }
+            }
+        } else {
+            removeTypedLiteral(fieldUriRef, value);
+        }
+
+    }
+
+    @Override
+    public void removeReference(String field, String reference) {
+        if(field == null) {
+            throw new IllegalArgumentException("Parameter \"String field\" MUST NOT be NULL!");
+        }
+        if(reference == null){
+            log.warn("NULL parsed as value in remove method for symbol "+getId()+" and field "+field+" -> call ignored");
+        }
+        graphNode.deleteProperty(new UriRef(field), new UriRef(reference));
+    }
+    protected void removeTypedLiteral(UriRef field, Object object){
+        Literal literal;
+        try{
+            literal = RdfResourceUtils.createLiteral(object);
+        } catch (NoConvertorException e){
+            log.info("No Converter for value type "+object.getClass()
+                    +" (parsed for field "+field+") use toString() Method to get String representation");
+            literal = RdfResourceUtils.createLiteral(object.toString(), null);
+        }
+        graphNode.deleteProperty(field,literal);
+    }
+    @Override
+    public void removeNaturalText(String field, String value, String... languages) {
+        if(field == null) {
+            throw new IllegalArgumentException("Parameter \"String field\" MUST NOT be NULL!");
+        }
+        if(value == null){
+            log.warn("NULL parsed as value in remove method for symbol "+getId()+" and field "+field+" -> call ignored");
+        }
+        if(languages == null){
+            log.debug("NULL parsed as languages -> replacing with \"new String []{null}\"" +
+                    " -> assuming a missing explicit cast to (Stirng) in the var arg");
+            languages = new String []{null};
+        }
+        UriRef fieldUriRef = new UriRef(field);
+        for(String language : languages){
+            graphNode.deleteProperty(fieldUriRef,RdfResourceUtils.createLiteral(value, language));
+        }
+    }
+    @Override
+    public void removeAll(String field) {
+        graphNode.deleteProperties(new UriRef(field));
+    }
+    @Override
+    public void removeAllNaturalText(String field, String... languages) {
+        if(field == null) {
+            throw new IllegalArgumentException("Parameter \"String field\" MUST NOT be NULL!");
+        }
+        if(languages == null){
+            log.debug("NULL parsed as languages -> replacing with \"new String []{null}\"" +
+                    " -> assuming a missing explicit cast to (Stirng) in the var arg");
+            languages = new String []{null};
+        }
+        UriRef fieldUriRef = new UriRef(field);
+        Collection<Literal> literals = new ArrayList<Literal>();
+        //get all the affected Literals
+        for (Iterator<Literal> it =  new NaturalLanguageLiteralIterator(graphNode.getLiterals(fieldUriRef), languages);
+            it.hasNext();
+            literals.add(it.next())
+        );
+        //delete the found literals
+        for(Literal literal:literals){
+            graphNode.deleteProperty(fieldUriRef, literal);
+        }
+
+    }
+
+    @Override
+    public void set(String field, Object value) {
+        removeAll(field);
+        if(value != null){
+            add(field,value);
+        }
+    }
+
+    @Override
+    public void setReference(String field, String reference) {
+        removeAll(reference);
+        if(reference != null){
+            addReference(field, reference);
+        }
+    }
+
+    @Override
+    public void setNaturalText(String field, String text, String...languages) {
+        removeAllNaturalText(field, languages);
+        if(text != null){
+            addNaturalText(field, text, languages);
+        }
+    }
 
 }

Modified: incubator/stanbol/trunk/rick/model/clerezza/src/main/java/eu/iksproject/rick/model/clerezza/RdfResourceUtils.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/rick/model/clerezza/src/main/java/eu/iksproject/rick/model/clerezza/RdfResourceUtils.java?rev=1044832&r1=1044831&r2=1044832&view=diff
==============================================================================
--- incubator/stanbol/trunk/rick/model/clerezza/src/main/java/eu/iksproject/rick/model/clerezza/RdfResourceUtils.java (original)
+++ incubator/stanbol/trunk/rick/model/clerezza/src/main/java/eu/iksproject/rick/model/clerezza/RdfResourceUtils.java Sun Dec 12 15:13:35 2010
@@ -31,184 +31,201 @@ import eu.iksproject.rick.servicesapi.de
  *
  */
 public class RdfResourceUtils {
-	
-	private RdfResourceUtils(){/*do not create instances of Util Classes*/}
-	/**
-	 * Defines Mappings for the DataTypes supported by the Clerezza {@link SimpleLiteralFactory}.
-	 * If a xsd data type is mapped to <code>null</code> the string representation
-	 * should be returnd as String (bypassing the {@link LiteralFactory})
-	 * TODO Replace this code with our own implementation of the {@link LiteralFactory} 
-	 *      and implement mappings for all DataTypes in {@link DataTypeEnum}
-	 *      (Rupert Westenthaler, 2010-11-12)
-	 * @author Rupert Westenthaler
-	 */
-	public static enum XsdDataTypeEnum {
-		//NOTE: Commented lines are not supported by org.apache.clerezza.rdf.core.impl.SimpleLiteralFactory
-		// see http://svn.apache.org/repos/asf/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.core/src/main/java/org/apache/clerezza/rdf/core/impl/SimpleLiteralFactory.java
-		Boolean("boolean",Boolean.class),
-		//Decimal("decimeal"),
-		Integer("integer",Long.class),
-		Int("int",Integer.class),
-		Short("short",Integer.class),
-		Byte("byte",Integer.class),
-		//Float("float",Double.class),
-		Double("double",Double.class),
-		Base64Binary("base64Binary",new byte[0].getClass()),
-		DateTime("dateTime",Date.class),
-		//Date("date"),
-		//Time("time"),
-		AnyUri("anyUri",null),
-		//QName("qName"),
-		//Duration("duration"),
-		//GYearMonth("gYearMonth"),
-		//GYear("gYear"),
-		//GMonthDay("gMonthDay"),
-		//GDay("gDay"),
-		//GMonth("gMonth"),
-		//hexBinary("hexBinary"),
-		//NOTATION("NOTATION"),
-		String("string",String.class),
-		;
-		private static final String ns = "http://www.w3.org/2001/XMLSchema#";
-		private String uri;
-		private Class<?> clazz;
-		XsdDataTypeEnum(String localName,Class<?> clazz){
-			this.uri = ns+localName;
-			this.clazz = clazz;
-		}
-		public String getUri(){
-			return uri;
-		}
-		@Override
-		public String toString() {
-			return uri;
-		}
-		public Class<?> getMappedClass(){
-			return clazz;
-		}
-	}
-	/**
-	 * Unmodifiable map containing the supported xsd data type mappings as defined
-	 * by the {@link XsdDataTypeEnum}.
-	 */
-	public static final Map<UriRef,XsdDataTypeEnum> XSD_DATATYPE_VALUE_MAPPING;
-	/**
-	 * Unmodifiable containing all xsd data types that can be converted to
-	 * {@link Text} (without language).
-	 */
-	public static final Set<UriRef> STRING_DATATYPES;
-	public static final Map<Class<?>,XsdDataTypeEnum> JAVA_OBJECT_XSD_DATATYPE_MAPPING;
-	static {
-		Map<UriRef,XsdDataTypeEnum> dataTypeMappings = new HashMap<UriRef, XsdDataTypeEnum>();
-		Map<Class<?>,XsdDataTypeEnum> objectMappings = new HashMap<Class<?>, XsdDataTypeEnum>();
-		Set<UriRef> stringDataTypes = new HashSet<UriRef>();
-		stringDataTypes.add(null);//map missing dataTypes to String
-		for(XsdDataTypeEnum mapping : XsdDataTypeEnum.values()){
-			UriRef uri = new UriRef(mapping.getUri());
-			dataTypeMappings.put(uri,mapping);
-			if(mapping.getMappedClass() != null && String.class.isAssignableFrom(mapping.getMappedClass())){
-				stringDataTypes.add(uri);
-			}
-			if(mapping.getMappedClass() != null){
-				objectMappings.put(mapping.getMappedClass(), mapping);
-			}
-		}
-		XSD_DATATYPE_VALUE_MAPPING = Collections.unmodifiableMap(dataTypeMappings);
-		STRING_DATATYPES = Collections.unmodifiableSet(stringDataTypes);
-		JAVA_OBJECT_XSD_DATATYPE_MAPPING = Collections.unmodifiableMap(objectMappings);
-	}
-
-	private static final Logger log = LoggerFactory.getLogger(RdfResourceUtils.class);
-	private static final LiteralFactory literalFactory = LiteralFactory.getInstance();
-	/**
-	 * Creates a {@link Language} instance based on the parsed language string.
-	 * @param lang the language (<code>null</code> is supported)
-	 * @return the {@link Language} or <code>null</code> if <code>null</code>
-	 * was parsed as language.
-	 */
-	public static Language getLanguage(String lang) {
-		final Language parsedLanguage;
-		if(lang != null && lang.length()>0){
-			parsedLanguage = new Language(lang);
-		} else {
-			parsedLanguage = null;
-		}
-		return parsedLanguage;
-	}
-	/**
-	 * Extracts the literal values for {@link Literal} instances
-	 * @param literals the Iterator holding the literals
-	 * @return The collection with the literal values
-	 */
-	public static Collection<String> getLiteralValues(Iterator<Literal> literals){
-		Collection<String> results = new ArrayList<String>();
-		while(literals.hasNext()){
-			Literal act = literals.next();
-			results.add(act.getLexicalForm());
-		}
-		return results;
-	}
-	/**
-	 * Extracts the literal values for the given list of languages (<code>null</code>
-	 * is supported).<br>
-	 * Multiple languages are supported by this method to allow parsing
-	 * <code>null</code> in addition to a language. This is often used by applications
-	 * to search for literals in a given language in addition to literals with no
-	 * defined language.<br>
-	 * As a convenience this methods adds literals with a language tag to the
-	 * front of the list and literals with no language tag to the end.
-	 * @param literals the iterator over the literals
-	 * @param languages the array of languages (<code>null</code> is supported).
-	 * @return The collection with all the literal values.
-	 */
-	public static List<String> getLiteralValues(Iterator<Literal> literals,String... languages){
-		Set<Language> languageSet = new HashSet<Language>();//permits null element!
-		for(String lang:languages){
-			languageSet.add(getLanguage(lang));
-		}
-		boolean containsNull = languageSet.contains(null);
-		List<String> results = new ArrayList<String>();
-		while(literals.hasNext()){
-			Literal act = literals.next();
-			if(act instanceof PlainLiteral){
-				PlainLiteral pl = (PlainLiteral)act;
-				if(languageSet.contains(pl.getLanguage())){
-					results.add(0,pl.getLexicalForm()); //add to front
-				}
-			} else if(containsNull){ //add also all types Literals, because the do not define an language!
-				results.add(act.getLexicalForm()); //append to the end
-			}
-		}
-		return results;
-	}
-	/**
-	 * Extracts the unicode representation of URIs
-	 * @param uriRefObjects iterator over URIs
-	 * @return the unicode representation
-	 */
-	public static Collection<String> getUriRefValues(Iterator<UriRef> uriRefObjects) {
-		Collection<String> results = new ArrayList<String>();
-		while(uriRefObjects.hasNext()){
-			results.add(uriRefObjects.next().getUnicodeString());
-		}
-		return results;
-	}
-	/**
-	 * Creates a {@link PlainLiteral} for the given literal value and language.
-	 * This method creates an instance of {@link PlainLiteralImpl}.<br>
-	 * TODO: It would be better to use something like the {@link LiteralFactory}
-	 * to create {@link PlainLiteral} instances. However it seams there is no
-	 * such functionality present.
-	 * @param literalValue the value of the literal
-	 * @param lang the language of the literal
-	 * @return the Literal
-	 */
-	public static PlainLiteral createLiteral(String literalValue, String lang) {
-		return new PlainLiteralImpl(literalValue, 
-				(lang != null && lang.length()>0)?new Language(lang):null);
-	}
-	public static TypedLiteral createLiteral(Object object){
-		return literalFactory.createTypedLiteral(object);
-	}
+
+    private RdfResourceUtils(){/*do not create instances of Util Classes*/}
+    /**
+     * Defines Mappings for the DataTypes supported by the Clerezza {@link SimpleLiteralFactory}.
+     * If a xsd data type is mapped to <code>null</code> the string representation
+     * should be returnd as String (bypassing the {@link LiteralFactory})
+     * TODO Replace this code with our own implementation of the {@link LiteralFactory}
+     *      and implement mappings for all DataTypes in {@link DataTypeEnum}
+     *      (Rupert Westenthaler, 2010-11-12)
+     * @author Rupert Westenthaler
+     */
+    public static enum XsdDataTypeEnum {
+        //NOTE: Commented lines are not supported by org.apache.clerezza.rdf.core.impl.SimpleLiteralFactory
+        // see http://svn.apache.org/repos/asf/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.core/src/main/java/org/apache/clerezza/rdf/core/impl/SimpleLiteralFactory.java
+        Boolean("boolean",Boolean.class),
+        //Decimal("decimeal"),
+        Integer("integer",Long.class),
+        Int("int",Integer.class),
+        Short("short",Integer.class),
+        Byte("byte",Integer.class),
+        //Float("float",Double.class),
+        Double("double",Double.class),
+        Base64Binary("base64Binary",new byte[0].getClass()),
+        DateTime("dateTime",Date.class),
+        //Date("date"),
+        //Time("time"),
+        AnyUri("anyUri",null),
+        //QName("qName"),
+        //Duration("duration"),
+        //GYearMonth("gYearMonth"),
+        //GYear("gYear"),
+        //GMonthDay("gMonthDay"),
+        //GDay("gDay"),
+        //GMonth("gMonth"),
+        //hexBinary("hexBinary"),
+        //NOTATION("NOTATION"),
+        String("string",String.class),
+        ;
+        private static final String ns = "http://www.w3.org/2001/XMLSchema#";
+        private String uri;
+        private Class<?> clazz;
+        XsdDataTypeEnum(String localName,Class<?> clazz){
+            this.uri = ns+localName;
+            this.clazz = clazz;
+        }
+        public String getUri(){
+            return uri;
+        }
+        @Override
+        public String toString() {
+            return uri;
+        }
+        public Class<?> getMappedClass(){
+            return clazz;
+        }
+    }
+
+    /**
+     * Unmodifiable map containing the supported xsd data type mappings as defined
+     * by the {@link XsdDataTypeEnum}.
+     */
+
+    public static final Map<UriRef, XsdDataTypeEnum> XSD_DATATYPE_VALUE_MAPPING;
+    /**
+     * Unmodifiable containing all xsd data types that can be converted to
+     * {@link Text} (without language).
+     */
+    public static final Set<UriRef> STRING_DATATYPES;
+
+    public static final Map<Class<?>, XsdDataTypeEnum> JAVA_OBJECT_XSD_DATATYPE_MAPPING;
+    static {
+        Map<UriRef,XsdDataTypeEnum> dataTypeMappings = new HashMap<UriRef, XsdDataTypeEnum>();
+        Map<Class<?>,XsdDataTypeEnum> objectMappings = new HashMap<Class<?>, XsdDataTypeEnum>();
+        Set<UriRef> stringDataTypes = new HashSet<UriRef>();
+        stringDataTypes.add(null);//map missing dataTypes to String
+        for(XsdDataTypeEnum mapping : XsdDataTypeEnum.values()){
+            UriRef uri = new UriRef(mapping.getUri());
+            dataTypeMappings.put(uri,mapping);
+            if(mapping.getMappedClass() != null && String.class.isAssignableFrom(mapping.getMappedClass())){
+                stringDataTypes.add(uri);
+            }
+            if(mapping.getMappedClass() != null){
+                objectMappings.put(mapping.getMappedClass(), mapping);
+            }
+        }
+        XSD_DATATYPE_VALUE_MAPPING = Collections.unmodifiableMap(dataTypeMappings);
+        STRING_DATATYPES = Collections.unmodifiableSet(stringDataTypes);
+        JAVA_OBJECT_XSD_DATATYPE_MAPPING = Collections.unmodifiableMap(objectMappings);
+    }
+
+    private static final Logger log = LoggerFactory.getLogger(RdfResourceUtils.class);
+
+    private static final LiteralFactory literalFactory = LiteralFactory.getInstance();
+
+    /**
+     * Creates a {@link Language} instance based on the parsed language string.
+     *
+     * @param lang the language (<code>null</code> is supported)
+     * @return the {@link Language} or <code>null</code> if <code>null</code>
+     * was parsed as language.
+     */
+    public static Language getLanguage(String lang) {
+        final Language parsedLanguage;
+        if(lang != null && lang.length()>0){
+            parsedLanguage = new Language(lang);
+        } else {
+            parsedLanguage = null;
+        }
+        return parsedLanguage;
+    }
+
+    /**
+     * Extracts the literal values for {@link Literal} instances.
+     *
+     * @param literals the Iterator holding the literals
+     * @return The collection with the literal values
+     */
+    public static Collection<String> getLiteralValues(Iterator<Literal> literals){
+        Collection<String> results = new ArrayList<String>();
+        while(literals.hasNext()){
+            Literal act = literals.next();
+            results.add(act.getLexicalForm());
+        }
+        return results;
+    }
+
+    /**
+     * Extracts the literal values for the given list of languages (<code>null</code>
+     * is supported).
+     * <p>
+     * Multiple languages are supported by this method to allow parsing
+     * <code>null</code> in addition to a language. This is often used by applications
+     * to search for literals in a given language in addition to literals with no
+     * defined language.
+     * <p>
+     * As a convenience this methods adds literals with a language tag to the
+     * front of the list and literals with no language tag to the end.
+     *
+     * @param literals the iterator over the literals
+     * @param languages the array of languages (<code>null</code> is supported).
+     * @return The collection with all the literal values.
+     */
+    public static List<String> getLiteralValues(Iterator<Literal> literals, String... languages) {
+        Set<Language> languageSet = new HashSet<Language>();//permits null element!
+        for (String lang : languages) {
+            languageSet.add(getLanguage(lang));
+        }
+        boolean containsNull = languageSet.contains(null);
+        List<String> results = new ArrayList<String>();
+        while (literals.hasNext()) {
+            Literal act = literals.next();
+            if (act instanceof PlainLiteral) {
+                PlainLiteral pl = (PlainLiteral) act;
+                if (languageSet.contains(pl.getLanguage())) {
+                    results.add(0, pl.getLexicalForm()); //add to front
+                }
+            } else if (containsNull) { //add also all types Literals, because the do not define an language!
+                results.add(act.getLexicalForm()); //append to the end
+            }
+        }
+        return results;
+    }
+
+    /**
+     * Extracts the unicode representation of URIs.
+     *
+     * @param uriRefObjects iterator over URIs
+     * @return the unicode representation
+     */
+    public static Collection<String> getUriRefValues(Iterator<UriRef> uriRefObjects) {
+        Collection<String> results = new ArrayList<String>();
+        while (uriRefObjects.hasNext()) {
+            results.add(uriRefObjects.next().getUnicodeString());
+        }
+        return results;
+    }
+
+    /**
+     * Creates a {@link PlainLiteral} for the given literal value and language.
+     * This method creates an instance of {@link PlainLiteralImpl}.<br>
+     * TODO: It would be better to use something like the {@link LiteralFactory}
+     * to create {@link PlainLiteral} instances. However it seams there is no
+     * such functionality present.
+     *
+     * @param literalValue the value of the literal
+     * @param lang the language of the literal
+     * @return the Literal
+     */
+    public static PlainLiteral createLiteral(String literalValue, String lang) {
+        Language language = (lang != null && lang.length() > 0) ? new Language(lang) : null;
+        return new PlainLiteralImpl(literalValue, language);
+    }
+
+    public static TypedLiteral createLiteral(Object object) {
+        return literalFactory.createTypedLiteral(object);
+    }
 
 }

Modified: incubator/stanbol/trunk/rick/model/clerezza/src/main/java/eu/iksproject/rick/model/clerezza/RdfText.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/rick/model/clerezza/src/main/java/eu/iksproject/rick/model/clerezza/RdfText.java?rev=1044832&r1=1044831&r2=1044832&view=diff
==============================================================================
--- incubator/stanbol/trunk/rick/model/clerezza/src/main/java/eu/iksproject/rick/model/clerezza/RdfText.java (original)
+++ incubator/stanbol/trunk/rick/model/clerezza/src/main/java/eu/iksproject/rick/model/clerezza/RdfText.java Sun Dec 12 15:13:35 2010
@@ -1,5 +1,5 @@
 /**
- * 
+ *
  */
 package eu.iksproject.rick.model.clerezza;
 
@@ -10,51 +10,57 @@ import org.apache.clerezza.rdf.core.impl
 
 import eu.iksproject.rick.servicesapi.model.Text;
 
-public class RdfText implements Text,Cloneable {
-	private final Literal literal;
-	private final boolean isPlain;
-	protected RdfText(String text, String lang){
-		this.literal = new PlainLiteralImpl(text, lang !=null?new Language(lang):null);
-		this.isPlain = true;
-	}
-	protected RdfText(Literal literal){
-		this.literal = literal;
-		this.isPlain = literal instanceof PlainLiteral;
-	}
-	@Override
-	public String getLanguage() {
-		return isPlain && ((PlainLiteral)literal).getLanguage() != null?
-				((PlainLiteral)literal).getLanguage().toString():null;
-	}
-
-	@Override
-	public String getText() {
-		return literal.getLexicalForm();
-	}
-	public Literal getLiteral()  {
-		return literal;
-	}
-	@Override
-	public Object clone() {
-		return new RdfText(
-				new PlainLiteralImpl(literal.getLexicalForm(),
-						isPlain?((PlainLiteral)literal).getLanguage():null));
-	}
-	@Override
-	public int hashCode() {
-		return literal.getLexicalForm().hashCode();
-	}
-	@Override
-	public boolean equals(Object obj) {
-		if(obj != null && obj instanceof Text && ((Text)obj).getText().equals(getText())){
-			return (getLanguage() == null && ((Text)obj).getLanguage() == null) ||
-				(getLanguage() != null && getLanguage().equals(((Text)obj).getLanguage()));
-		} else {
-			return false;
-		}
-	}
-	@Override
-	public String toString() {
-		return literal.getLexicalForm();
-	}
-}
\ No newline at end of file
+public class RdfText implements Text, Cloneable {
+    private final Literal literal;
+    private final boolean isPlain;
+
+    protected RdfText(String text, String lang) {
+        this.literal = new PlainLiteralImpl(text, lang != null ? new Language(lang) : null);
+        this.isPlain = true;
+    }
+
+    protected RdfText(Literal literal) {
+        this.literal = literal;
+        this.isPlain = literal instanceof PlainLiteral;
+    }
+
+    @Override
+    public String getLanguage() {
+        return isPlain && ((PlainLiteral) literal).getLanguage() != null ? ((PlainLiteral) literal).getLanguage().toString() : null;
+    }
+
+    @Override
+    public String getText() {
+        return literal.getLexicalForm();
+    }
+
+    public Literal getLiteral() {
+        return literal;
+    }
+
+    @Override
+    public Object clone() {
+        Language language = isPlain ? ((PlainLiteral) literal).getLanguage() : null;
+        return new RdfText(new PlainLiteralImpl(literal.getLexicalForm(), language));
+    }
+
+    @Override
+    public int hashCode() {
+        return literal.getLexicalForm().hashCode();
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (obj != null && obj instanceof Text && ((Text) obj).getText().equals(getText())) {
+            return (getLanguage() == null && ((Text) obj).getLanguage() == null)
+                    || (getLanguage() != null && getLanguage().equals(((Text) obj).getLanguage()));
+        } else {
+            return false;
+        }
+    }
+
+    @Override
+    public String toString() {
+        return literal.getLexicalForm();
+    }
+}

Modified: incubator/stanbol/trunk/rick/model/clerezza/src/main/java/eu/iksproject/rick/model/clerezza/RdfValueFactory.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/rick/model/clerezza/src/main/java/eu/iksproject/rick/model/clerezza/RdfValueFactory.java?rev=1044832&r1=1044831&r2=1044832&view=diff
==============================================================================
--- incubator/stanbol/trunk/rick/model/clerezza/src/main/java/eu/iksproject/rick/model/clerezza/RdfValueFactory.java (original)
+++ incubator/stanbol/trunk/rick/model/clerezza/src/main/java/eu/iksproject/rick/model/clerezza/RdfValueFactory.java Sun Dec 12 15:13:35 2010
@@ -11,7 +11,7 @@ import org.apache.clerezza.rdf.core.impl
 import eu.iksproject.rick.servicesapi.model.Representation;
 import eu.iksproject.rick.servicesapi.model.ValueFactory;
 /**
- * Factory for creating instances of the RDF implementation of the Rick model 
+ * Factory for creating instances of the RDF implementation of the Rick model
  * based on Clerezza.
  * TODO: Check if it makes sense to add a instance cache for {@link RdfReference}
  *       instances.
@@ -19,92 +19,98 @@ import eu.iksproject.rick.servicesapi.mo
  *
  */
 public class RdfValueFactory implements ValueFactory {
-	
-	private static RdfValueFactory instance;
-	/**
-	 * TODO:Currently implements the singleton pattern. This might change in the
-	 * future if ValueFactoy becomes an own OSGI Service
-	 * @return
-	 */
-	public static RdfValueFactory getInstance() {
-		if(instance == null){
-			instance = new RdfValueFactory();
-		}
-		return instance;
-	}
-	private RdfValueFactory(){
-		super();
-	}
-
-	@Override
-	public RdfReference createReference(Object value) {
-		if(value == null){
-			throw new IllegalArgumentException("The parsed value MUST NOT be NULL");
-		} else if(value instanceof UriRef){
-			return new RdfReference((UriRef)value);
-		} else {
-			return new RdfReference(value.toString());
-		}
-	}
-
-	@Override
-	public RdfText createText(Object value) {
-		if(value == null){
-			throw new IllegalArgumentException("The parsed value MUST NOT be NULL");
-		} else if(value instanceof Literal){
-			return new RdfText((Literal)value);
-		} else {
-			return createText(value.toString(), null);
-		}
-	}
-
-	@Override
-	public RdfText createText(String text, String language) {
-		return new RdfText(text, language);
-	}
-	
-	@Override
-	public RdfRepresentation createRepresentation(String id) {
-		if(id == null || id.isEmpty()){
-			throw new IllegalArgumentException("The parsed id MUST NOT be NULL nor empty!");
-		}
-		return createRdfRepresentation(new UriRef(id), new SimpleMGraph());
-	}
-	/**
-	 * {@link RdfRepresentation} specific create Method based on an existing
-	 * RDF Graph
-	 * @param node The node of the node used for the representation. If this
-	 *     node is not part of the parsed graph, the resulting representation
-	 *     will be empty
-	 * @param graph the graph.
-	 * @return The representation based on the state of the parsed graph
-	 */
-	public RdfRepresentation createRdfRepresentation(UriRef node, TripleCollection graph){
-		if(node == null){
-			throw new IllegalArgumentException("The parsed id MUST NOT be NULL!");
-		}
-		return new RdfRepresentation(node, graph);
-	}
-	/**
-	 * Extracts the Graph for {@link RdfRepresentation} or creates a {@link Graph}
-	 * for all other implementations of {@link Representation}
-	 * @param representation the representation
-	 * @return the read only RDF Graph.
-	 */
-	public RdfRepresentation toRdfRepresentation(Representation representation) {
-		if(representation instanceof RdfRepresentation){
-			return (RdfRepresentation)representation;
-		} else {
-			//create the Clerezza Represenation
-			RdfRepresentation clerezzaRep = createRepresentation(representation.getId());
-			//Copy all values field by field
-			for(Iterator<String> fields = representation.getFieldNames();fields.hasNext();){
-				String field = fields.next();
-				for(Iterator<Object> fieldValues = representation.get(field);fieldValues.hasNext();){
-					clerezzaRep.add(field, fieldValues.next());
-				}
-			}
-			return clerezzaRep;
-		}
-	}
+
+    private static RdfValueFactory instance;
+    /**
+     * TODO:Currently implements the singleton pattern. This might change in the
+     * future if ValueFactoy becomes an own OSGI Service
+     * @return
+     */
+    public static RdfValueFactory getInstance() {
+        if(instance == null){
+            instance = new RdfValueFactory();
+        }
+        return instance;
+    }
+
+    private RdfValueFactory(){
+        super();
+    }
+
+    @Override
+    public RdfReference createReference(Object value) {
+        if (value == null) {
+            throw new IllegalArgumentException("The parsed value MUST NOT be NULL");
+        } else if (value instanceof UriRef) {
+            return new RdfReference((UriRef) value);
+        } else {
+            return new RdfReference(value.toString());
+        }
+    }
+
+    @Override
+    public RdfText createText(Object value) {
+        if (value == null) {
+            throw new IllegalArgumentException("The parsed value MUST NOT be NULL");
+        } else if (value instanceof Literal) {
+            return new RdfText((Literal) value);
+        } else {
+            return createText(value.toString(), null);
+        }
+    }
+
+    @Override
+    public RdfText createText(String text, String language) {
+        return new RdfText(text, language);
+    }
+
+    @Override
+    public RdfRepresentation createRepresentation(String id) {
+        if (id == null || id.isEmpty()) {
+            throw new IllegalArgumentException("The parsed id MUST NOT be NULL nor empty!");
+        }
+        return createRdfRepresentation(new UriRef(id), new SimpleMGraph());
+    }
+
+    /**
+     * {@link RdfRepresentation} specific create Method based on an existing
+     * RDF Graph.
+     *
+     * @param node The node of the node used for the representation. If this
+     *     node is not part of the parsed graph, the resulting representation
+     *     will be empty
+     * @param graph the graph.
+     * @return The representation based on the state of the parsed graph
+     */
+    public RdfRepresentation createRdfRepresentation(UriRef node, TripleCollection graph) {
+        if (node == null) {
+            throw new IllegalArgumentException("The parsed id MUST NOT be NULL!");
+        }
+        return new RdfRepresentation(node, graph);
+    }
+
+    /**
+     * Extracts the Graph for {@link RdfRepresentation} or creates a {@link Graph}
+     * for all other implementations of {@link Representation}.
+     *
+     * @param representation the representation
+     * @return the read only RDF Graph.
+     */
+    public RdfRepresentation toRdfRepresentation(Representation representation) {
+        if (representation instanceof RdfRepresentation) {
+            return (RdfRepresentation) representation;
+        } else {
+            //create the Clerezza Represenation
+            RdfRepresentation clerezzaRep = createRepresentation(representation.getId());
+            //Copy all values field by field
+            for (Iterator<String> fields = representation.getFieldNames(); fields.hasNext();) {
+                String field = fields.next();
+                for (Iterator<Object> fieldValues = representation.get(field); fieldValues.hasNext();) {
+                    clerezzaRep.add(field, fieldValues.next());
+                }
+            }
+            return clerezzaRep;
+        }
+    }
+
 }

Modified: incubator/stanbol/trunk/rick/model/clerezza/src/main/java/eu/iksproject/rick/model/clerezza/impl/Literal2TextAdapter.java
URL: http://svn.apache.org/viewvc/incubator/stanbol/trunk/rick/model/clerezza/src/main/java/eu/iksproject/rick/model/clerezza/impl/Literal2TextAdapter.java?rev=1044832&r1=1044831&r2=1044832&view=diff
==============================================================================
--- incubator/stanbol/trunk/rick/model/clerezza/src/main/java/eu/iksproject/rick/model/clerezza/impl/Literal2TextAdapter.java (original)
+++ incubator/stanbol/trunk/rick/model/clerezza/src/main/java/eu/iksproject/rick/model/clerezza/impl/Literal2TextAdapter.java Sun Dec 12 15:13:35 2010
@@ -16,59 +16,62 @@ import eu.iksproject.rick.servicesapi.mo
 /**
  * This Adapter does two things:
  * <ol>
- * <li> It filters {@link Literal}s based on the languages parsed in the 
+ * <li> It filters {@link Literal}s based on the languages parsed in the
  *      constructor. If no languages are parsed, than all languages are accepted
  * <li> It converts {@link Literal}s to {@link Text}. Only {@link PlainLiteral}
- *      and {@link TypedLiteral} with an xsd data type present in the 
+ *      and {@link TypedLiteral} with an xsd data type present in the
  *      {@link RdfResourceUtils#STRING_DATATYPES} are converted. All other literals are
  *      filtered (meaning that <code>null</code> is returned)
  * </ol>
  * The difference of this Adapter to the {@link LiteralAdapter} with the generic
  * type {@link Text} is that the LiteralAdapter can not be used to filter
  * literals based on there language.
- * @author Rupert Westenthaler
  *
+ * @author Rupert Westenthaler
  */
 public class Literal2TextAdapter<T extends Literal> implements Adapter<T,Text> {
 
-	/**
-	 * Unmodifiable set of the active languages 
-	 */
-	protected final Set<String> languages;
-	private final boolean containsNull;
-	protected final RdfValueFactory valueFactory = RdfValueFactory.getInstance();
-	/**
-	 * Filters Literals in the parsed Iterator based on the parsed languages and
-	 * convert matching Literals to Text
-	 * @param it the iterator
-	 * @param lang the active languages. If <code>null</code> or empty, all
-	 * languages are active. If <code>null</code> is parsed as an element, that
-	 * also Literals without a language are returned
-	 */
-	public Literal2TextAdapter(String...lang){
-		if(lang != null && lang.length>0){
-			this.languages = Collections.unmodifiableSet(new HashSet<String>(Arrays.asList(lang)));
-			this.containsNull = languages.contains(null);
-		} else{
-			this.languages = null;
-			this.containsNull = true;
-		}
-		//init the first element
-	}
-	@Override
-	public Text adapt(T value, Class<Text> type) {
-		if(value instanceof PlainLiteral){
-			if(languages == null || languages.contains(((PlainLiteral) value).getLanguage())){
-				return valueFactory.createText(value);
-			} //else wrong language -> filter
-		} else if(containsNull){
-			/*
-			 * if the null language is active, than we can also return
-			 * "normal" literals (with no known language).
-			 * But first we need to check the Datatype!
-			 */
-			return valueFactory.createText(value);
-		} // else no language defined -> filter
-		return null;
-	}
+    /**
+     * Unmodifiable set of the active languages
+     */
+    protected final Set<String> languages;
+    private final boolean containsNull;
+    protected final RdfValueFactory valueFactory = RdfValueFactory.getInstance();
+
+    /**
+     * Filters Literals in the parsed Iterator based on the parsed languages and
+     * convert matching Literals to Text
+     * @param it the iterator
+     * @param lang the active languages. If <code>null</code> or empty, all
+     * languages are active. If <code>null</code> is parsed as an element, that
+     * also Literals without a language are returned
+     */
+    public Literal2TextAdapter(String...lang){
+        if(lang != null && lang.length>0){
+            this.languages = Collections.unmodifiableSet(new HashSet<String>(Arrays.asList(lang)));
+            this.containsNull = languages.contains(null);
+        } else{
+            this.languages = null;
+            this.containsNull = true;
+        }
+        //init the first element
+    }
+
+    @Override
+    public Text adapt(T value, Class<Text> type) {
+        if(value instanceof PlainLiteral){
+            if(languages == null || languages.contains(((PlainLiteral) value).getLanguage())){
+                return valueFactory.createText(value);
+            } //else wrong language -> filter
+        } else if(containsNull){
+            /*
+             * if the null language is active, than we can also return
+             * "normal" literals (with no known language).
+             * But first we need to check the Datatype!
+             */
+            return valueFactory.createText(value);
+        } // else no language defined -> filter
+        return null;
+    }
+
 }