Author: dspicar
Date: Wed Oct 12 12:15:55 2011
New Revision: 1182329

URL: http://svn.apache.org/viewvc?rev=1182329&view=rev
Log:
CLEREZZA-640: applied patch by Rupert Westenthaler that extends 
SimpleLiteralFactory with support for the java.lang.Float data type.

Modified:
    
incubator/clerezza/trunk/parent/rdf.core/src/main/java/org/apache/clerezza/rdf/core/impl/SimpleLiteralFactory.java

Modified: 
incubator/clerezza/trunk/parent/rdf.core/src/main/java/org/apache/clerezza/rdf/core/impl/SimpleLiteralFactory.java
URL: 
http://svn.apache.org/viewvc/incubator/clerezza/trunk/parent/rdf.core/src/main/java/org/apache/clerezza/rdf/core/impl/SimpleLiteralFactory.java?rev=1182329&r1=1182328&r2=1182329&view=diff
==============================================================================
--- 
incubator/clerezza/trunk/parent/rdf.core/src/main/java/org/apache/clerezza/rdf/core/impl/SimpleLiteralFactory.java
 (original)
+++ 
incubator/clerezza/trunk/parent/rdf.core/src/main/java/org/apache/clerezza/rdf/core/impl/SimpleLiteralFactory.java
 Wed Oct 12 12:15:55 2011
@@ -70,10 +70,12 @@ public class SimpleLiteralFactory extend
                typeConverterMap.put(BigInteger.class, new 
BigIntegerConverter());
                typeConverterMap.put(Long.class, new LongConverter());
                typeConverterMap.put(Double.class, new DoubleConverter());
+               typeConverterMap.put(Float.class, new FloatConverter());
                typeConverterMap.put(UriRef.class, new UriRefConverter());
        }
 
        final private static UriRef xsdDouble =xsd("double");
+    final private static UriRef xsdFloat =xsd("float");
        final private static UriRef xsdAnyURI =xsd("anyURI");
 
        final private static UriRef xsd(String name) {
@@ -206,6 +208,22 @@ public class SimpleLiteralFactory extend
        }
 
 
+    private static class FloatConverter implements TypeConverter<Float> {
+
+        @Override
+        public TypedLiteral createTypedLiteral(Float value) {
+            return new TypedLiteralImpl(value.toString(), xsdFloat);
+        }
+
+        @Override
+        public Float createObject(TypedLiteral literal) {
+            if (!literal.getDataType().equals(xsdFloat)) {
+                throw new InvalidLiteralTypeException(Float.class, 
literal.getDataType());
+            }
+            return Float.valueOf(literal.getLexicalForm());
+        }
+    }
+    
        private static class DoubleConverter implements TypeConverter<Double> {
 
 


Reply via email to