Author: fchrist
Date: Thu Dec  2 15:36:37 2010
New Revision: 1041413

URL: http://svn.apache.org/viewvc?rev=1041413&view=rev
Log:
Merged latest version of JSON-LD implementation from Google SVN. FISE now 
supports JSON-LD output with pretty printing.


Modified:
    incubator/stanbol/trunk/fise/generic/jsonld/pom.xml
    
incubator/stanbol/trunk/fise/generic/jsonld/src/main/java/eu/iksproject/fise/jsonld/JsonComparator.java
    
incubator/stanbol/trunk/fise/generic/jsonld/src/main/java/eu/iksproject/fise/jsonld/JsonLd.java
    
incubator/stanbol/trunk/fise/generic/jsonld/src/test/java/eu/iksproject/fise/jsonld/JsonLdTest.java
    
incubator/stanbol/trunk/fise/jersey/src/main/java/eu/iksproject/fise/jersey/writers/JsonLdSerializerProvider.java
    
incubator/stanbol/trunk/fise/jersey/src/test/java/eu/iksproject/fise/jersey/writers/JsonLdSerializerProviderTest.java

Modified: incubator/stanbol/trunk/fise/generic/jsonld/pom.xml
URL: 
http://svn.apache.org/viewvc/incubator/stanbol/trunk/fise/generic/jsonld/pom.xml?rev=1041413&r1=1041412&r2=1041413&view=diff
==============================================================================
--- incubator/stanbol/trunk/fise/generic/jsonld/pom.xml (original)
+++ incubator/stanbol/trunk/fise/generic/jsonld/pom.xml Thu Dec  2 15:36:37 2010
@@ -55,9 +55,13 @@
 
        <dependencies>
                <dependency>
+                       <groupId>org.codehaus.jettison</groupId>
+                       <artifactId>jettison</artifactId>
+               </dependency>   
+               <!-- dependency>
                        <groupId>com.googlecode.json-simple</groupId>
                        <artifactId>json-simple</artifactId>
-               </dependency>
+               </dependency -->
                <dependency>
                        <groupId>junit</groupId>
                        <artifactId>junit</artifactId>

Modified: 
incubator/stanbol/trunk/fise/generic/jsonld/src/main/java/eu/iksproject/fise/jsonld/JsonComparator.java
URL: 
http://svn.apache.org/viewvc/incubator/stanbol/trunk/fise/generic/jsonld/src/main/java/eu/iksproject/fise/jsonld/JsonComparator.java?rev=1041413&r1=1041412&r2=1041413&view=diff
==============================================================================
--- 
incubator/stanbol/trunk/fise/generic/jsonld/src/main/java/eu/iksproject/fise/jsonld/JsonComparator.java
 (original)
+++ 
incubator/stanbol/trunk/fise/generic/jsonld/src/main/java/eu/iksproject/fise/jsonld/JsonComparator.java
 Thu Dec  2 15:36:37 2010
@@ -13,7 +13,9 @@ public class JsonComparator implements C
        @Override
        public int compare(Object arg0, Object arg1) {
                int value = 0;
-               if (arg0.equals("#"))
+               if (arg0.equals(arg1))
+                       value = 0;
+               else if (arg0.equals("#"))
                        value = -1;
                else if (arg1.equals("#"))
                        value = 1;

Modified: 
incubator/stanbol/trunk/fise/generic/jsonld/src/main/java/eu/iksproject/fise/jsonld/JsonLd.java
URL: 
http://svn.apache.org/viewvc/incubator/stanbol/trunk/fise/generic/jsonld/src/main/java/eu/iksproject/fise/jsonld/JsonLd.java?rev=1041413&r1=1041412&r2=1041413&view=diff
==============================================================================
--- 
incubator/stanbol/trunk/fise/generic/jsonld/src/main/java/eu/iksproject/fise/jsonld/JsonLd.java
 (original)
+++ 
incubator/stanbol/trunk/fise/generic/jsonld/src/main/java/eu/iksproject/fise/jsonld/JsonLd.java
 Thu Dec  2 15:36:37 2010
@@ -8,9 +8,6 @@ import java.util.List;
 import java.util.Map;
 import java.util.TreeMap;
 
-import org.json.simple.JSONArray;
-import org.json.simple.JSONObject;
-
 /**
  * @author Fabian Christ
  * 
@@ -57,17 +54,30 @@ public class JsonLd {
                if (useJointGraphs) {
                        Map<String, Object> json = createJointGraph();
                        
-                       return JSONObject.toJSONString(json);
+                       return JsonSerializer.toString(json);
+               }
+               else {
+                       List<Object> json = createDisjointGraph();
+                       
+                       return JsonSerializer.toString(json);
+               }
+       }
+       
+       public String toString(int indent) {
+               if (useJointGraphs) {
+                       Map<String, Object> json = createJointGraph();
+                       
+                       return JsonSerializer.toString(json, indent);
                }
                else {
-                       JSONArray json = createDisjointGraph();
+                       List<Object> json = createDisjointGraph();
                        
-                       return JSONArray.toJSONString(json);
+                       return JsonSerializer.toString(json, indent);
                }
        }
        
-       private JSONArray createDisjointGraph() {
-               JSONArray json = new JSONArray();
+       private List<Object> createDisjointGraph() {
+               List<Object> json = new ArrayList<Object>();
                if (this.resourceMap.size() > 0) {
 
                        for (String subject : this.resourceMap.keySet()) {
@@ -104,10 +114,11 @@ public class JsonLd {
                return json;
        }
 
+       @SuppressWarnings("unchecked")
        private Map<String, Object> createJointGraph() {
                Map<String, Object> json = new TreeMap<String, Object>(new 
JsonComparator());
                if (this.resourceMap.size() > 0) {
-                       JSONArray subjects = new JSONArray();
+                       List<Object> subjects = new ArrayList<Object>();
 
                        for (String subject : this.resourceMap.keySet()) {
                                // put subject
@@ -133,7 +144,7 @@ public class JsonLd {
                        // put subjects
                        if (subjects.size() > 0) {
                                if (subjects.size() == 1) {
-                                       json = (Map) subjects.get(0);
+                                       json = (Map<String, Object>) 
subjects.get(0);
                                } else {
                                        json.put("@", subjects);
                                }
@@ -148,14 +159,13 @@ public class JsonLd {
                        }
                        json.put("#", nsObject);
                }
-               
+
                return json;
        }
 
-       @SuppressWarnings("unchecked")
        private void putTypes(Map<String, Object> subjectObject, JsonLdResource 
resource) {
                if (resource.getTypes().size() > 0) {
-                       JSONArray types = new JSONArray();
+                       List<String> types = new ArrayList<String>();
                        for (String type : resource.getTypes()) {
                                types.add(this.applyNamespace(type));
                        }
@@ -189,13 +199,12 @@ public class JsonLd {
                                for (int i=0; i<stringArray.length; i++) {
                                        
valueList.add(this.applyNamespace(stringArray[i]));
                                }
-                               JSONArray jsonArray = new JSONArray();
-                               jsonArray.addAll(valueList);
+                               List<Object> jsonArray = new 
ArrayList<Object>(valueList);
                                jsonObject.put(this.applyNamespace(property), 
jsonArray);
                        }
                        else if (value instanceof Object[]) {
                                Object[] objectArray = (Object[]) value;
-                               JSONArray jsonArray = new JSONArray();
+                               List<Object> jsonArray = new 
ArrayList<Object>();
                                for (Object object : objectArray) {
                                        jsonArray.add(object);
                                }

Modified: 
incubator/stanbol/trunk/fise/generic/jsonld/src/test/java/eu/iksproject/fise/jsonld/JsonLdTest.java
URL: 
http://svn.apache.org/viewvc/incubator/stanbol/trunk/fise/generic/jsonld/src/test/java/eu/iksproject/fise/jsonld/JsonLdTest.java?rev=1041413&r1=1041412&r2=1041413&view=diff
==============================================================================
--- 
incubator/stanbol/trunk/fise/generic/jsonld/src/test/java/eu/iksproject/fise/jsonld/JsonLdTest.java
 (original)
+++ 
incubator/stanbol/trunk/fise/generic/jsonld/src/test/java/eu/iksproject/fise/jsonld/JsonLdTest.java
 Thu Dec  2 15:36:37 2010
@@ -36,8 +36,11 @@ public class JsonLdTest {
                
                String actual = jsonLd.toString();
                String expected = 
"{\"#\":{\"myvocab\":\"http:\\/\\/example.org\\/myvocab#\"},\"a\":\"foaf:Person\",\"foaf:homepage\":\"<http:\\/\\/manu.sporny.org\\/>\",\"foaf:name\":\"Manu
 
Sporny\",\"myvocab:credits\":500,\"sioc:avatar\":\"<http:\\/\\/twitter.com\\/account\\/profile_image\\/manusporny>\"}";
-
                assertEquals(expected, actual);
+               
+               String actualIndent = jsonLd.toString(4);
+               String expectedIndent = "{\n    \"#\": {\n        \"myvocab\": 
\"http:\\/\\/example.org\\/myvocab#\"\n    },\n    \"a\": \"foaf:Person\",\n    
\"foaf:homepage\": \"<http:\\/\\/manu.sporny.org\\/>\",\n    \"foaf:name\": 
\"Manu Sporny\",\n    \"myvocab:credits\": 500,    \"sioc:avatar\": 
\"<http:\\/\\/twitter.com\\/account\\/profile_image\\/manusporny>\"\n}";
+               assertEquals(expectedIndent, actualIndent);
        }
        
        @Test
@@ -69,8 +72,11 @@ public class JsonLdTest {
                
                String actual = jsonLd.toString();
                String expected = 
"{\"#\":{\"foaf\":\"http:\\/\\/xmlns.com\\/foaf\\/0.1\\/\"},\"@\":[{\"@\":\"_:bnode1\",\"a\":\"foaf:Person\",\"foaf:homepage\":\"<http:\\/\\/example.com\\/bob>\",\"foaf:name\":\"Bob\"},{\"@\":\"_:bnode2\",\"a\":\"foaf:Person\",\"foaf:homepage\":\"<http:\\/\\/example.com\\/eve>\",\"foaf:name\":\"Eve\"},{\"@\":\"_:bnode3\",\"a\":\"foaf:Person\",\"foaf:homepage\":\"<http:\\/\\/example.com\\/bert>\",\"foaf:name\":\"Bert\"}]}";
-
                assertEquals(expected, actual);
+               
+               String actualIndent = jsonLd.toString(4);
+               String expectedIndent = "{\n    \"#\": {\n        \"foaf\": 
\"http:\\/\\/xmlns.com\\/foaf\\/0.1\\/\"\n    },\n    \"@\": [\n        {\n     
       \"@\": \"_:bnode1\",\n            \"a\": \"foaf:Person\",\n            
\"foaf:homepage\": \"<http:\\/\\/example.com\\/bob>\",\n            
\"foaf:name\": \"Bob\"\n        },\n        {\n            \"@\": 
\"_:bnode2\",\n            \"a\": \"foaf:Person\",\n            
\"foaf:homepage\": \"<http:\\/\\/example.com\\/eve>\",\n            
\"foaf:name\": \"Eve\"\n        },\n        {\n            \"@\": 
\"_:bnode3\",\n            \"a\": \"foaf:Person\",\n            
\"foaf:homepage\": \"<http:\\/\\/example.com\\/bert>\",\n            
\"foaf:name\": \"Bert\"\n        }\n    ]\n}";
+               assertEquals(expectedIndent, actualIndent);             
        }
 
        @Test
@@ -103,8 +109,12 @@ public class JsonLdTest {
                
                String actual = jsonLd.toString();
                String expected = 
"[{\"#\":{\"foaf\":\"http:\\/\\/xmlns.com\\/foaf\\/0.1\\/\"},\"@\":\"_:bnode1\",\"a\":\"foaf:Person\",\"foaf:homepage\":\"<http:\\/\\/example.com\\/bob>\",\"foaf:name\":\"Bob\"},{\"#\":{\"foaf\":\"http:\\/\\/xmlns.com\\/foaf\\/0.1\\/\"},\"@\":\"_:bnode2\",\"a\":\"foaf:Person\",\"foaf:homepage\":\"<http:\\/\\/example.com\\/eve>\",\"foaf:name\":\"Eve\"},{\"#\":{\"foaf\":\"http:\\/\\/xmlns.com\\/foaf\\/0.1\\/\"},\"@\":\"_:bnode3\",\"a\":\"foaf:Person\",\"foaf:homepage\":\"<http:\\/\\/example.com\\/eve>\",\"foaf:name\":\"Eve\"}]";
-
                assertEquals(expected, actual);
+               
+               String actualIndent = jsonLd.toString(4);
+               String expectedIndent = "[\n    {\n        \"#\": {\n           
 \"foaf\": \"http:\\/\\/xmlns.com\\/foaf\\/0.1\\/\"\n        },\n        \"@\": 
\"_:bnode1\",\n        \"a\": \"foaf:Person\",\n        \"foaf:homepage\": 
\"<http:\\/\\/example.com\\/bob>\",\n        \"foaf:name\": \"Bob\"\n    },\n   
 {\n        \"#\": {\n            \"foaf\": 
\"http:\\/\\/xmlns.com\\/foaf\\/0.1\\/\"\n        },\n        \"@\": 
\"_:bnode2\",\n        \"a\": \"foaf:Person\",\n        \"foaf:homepage\": 
\"<http:\\/\\/example.com\\/eve>\",\n        \"foaf:name\": \"Eve\"\n    },\n   
 {\n        \"#\": {\n            \"foaf\": 
\"http:\\/\\/xmlns.com\\/foaf\\/0.1\\/\"\n        },\n        \"@\": 
\"_:bnode3\",\n        \"a\": \"foaf:Person\",\n        \"foaf:homepage\": 
\"<http:\\/\\/example.com\\/eve>\",\n        \"foaf:name\": \"Eve\"\n    }\n]";
+               assertEquals(expectedIndent, actualIndent);
+               
        }
        
        @Test
@@ -124,8 +134,11 @@ public class JsonLdTest {
                
                String actual = jsonLd.toString();
                String expected = 
"{\"#\":{\"fn\":\"http:\\/\\/microformats.org\\/profile\\/hcard#fn\",\"url\":\"http:\\/\\/microformats.org\\/profile\\/hcard#url\",\"vcard\":\"http:\\/\\/microformats.org\\/profile\\/hcard#vcard\"},\"@\":\"_:bnode1\",\"a\":\"vcard\",\"fn\":\"Tantek
 Celik\",\"url\":\"<http:\\/\\/tantek.com\\/>\"}";
-
                assertEquals(expected, actual);
+               
+               String actualIndent = jsonLd.toString(4);
+               String expectedIndent = "{\n    \"#\": {\n        \"fn\": 
\"http:\\/\\/microformats.org\\/profile\\/hcard#fn\",\n        \"url\": 
\"http:\\/\\/microformats.org\\/profile\\/hcard#url\",\n        \"vcard\": 
\"http:\\/\\/microformats.org\\/profile\\/hcard#vcard\"\n    },\n    \"@\": 
\"_:bnode1\",\n    \"a\": \"vcard\",\n    \"fn\": \"Tantek Celik\",\n    
\"url\": \"<http:\\/\\/tantek.com\\/>\"\n}";
+               assertEquals(expectedIndent, actualIndent);
        }
        
        @Test
@@ -149,8 +162,11 @@ public class JsonLdTest {
                
                String actual = jsonLd.toString();
                String expected = 
"{\"#\":{\"#base\":\"http:\\/\\/example.org\\/baseurl\\/\",\"#vocab\":\"http:\\/\\/example.org\\/default-vocab#\",\"cal\":\"http:\\/\\/www.w3.org\\/2002\\/12\\/cal\\/ical#\",\"cc\":\"http:\\/\\/creativecommons.org\\/ns#\",\"dc\":\"http:\\/\\/purl.org\\/dc\\/terms\\/\",\"doap\":\"http:\\/\\/usefulinc.com\\/ns\\/doap#\",\"foaf\":\"http:\\/\\/xmlns.com\\/foaf\\/0.1\\/\",\"geo\":\"http:\\/\\/www.w3.org\\/2003\\/01\\/geo\\/wgs84_pos#\",\"homepage\":\"http:\\/\\/xmlns.com\\/foaf\\/0.1\\/homepage\",\"name\":\"http:\\/\\/xmlns.com\\/foaf\\/0.1\\/name\",\"Person\":\"http:\\/\\/xmlns.com\\/foaf\\/0.1\\/Person\",\"sioc\":\"http:\\/\\/rdfs.org\\/sioc\\/ns#\",\"vcard\":\"http:\\/\\/www.w3.org\\/2006\\/vcard\\/ns#\",\"xsd\":\"http:\\/\\/www.w3.org\\/2001\\/XMLSchema#\"}}";
-
                assertEquals(expected, actual);
+               
+               String actualIndent = jsonLd.toString(4);
+               String expectedIndent = "{\n    \"#\": {\n        \"#base\": 
\"http:\\/\\/example.org\\/baseurl\\/\",\n        \"#vocab\": 
\"http:\\/\\/example.org\\/default-vocab#\",\n        \"cal\": 
\"http:\\/\\/www.w3.org\\/2002\\/12\\/cal\\/ical#\",\n        \"cc\": 
\"http:\\/\\/creativecommons.org\\/ns#\",\n        \"dc\": 
\"http:\\/\\/purl.org\\/dc\\/terms\\/\",\n        \"doap\": 
\"http:\\/\\/usefulinc.com\\/ns\\/doap#\",\n        \"foaf\": 
\"http:\\/\\/xmlns.com\\/foaf\\/0.1\\/\",\n        \"geo\": 
\"http:\\/\\/www.w3.org\\/2003\\/01\\/geo\\/wgs84_pos#\",\n        
\"homepage\": \"http:\\/\\/xmlns.com\\/foaf\\/0.1\\/homepage\",\n        
\"name\": \"http:\\/\\/xmlns.com\\/foaf\\/0.1\\/name\",\n        \"Person\": 
\"http:\\/\\/xmlns.com\\/foaf\\/0.1\\/Person\",\n        \"sioc\": 
\"http:\\/\\/rdfs.org\\/sioc\\/ns#\",\n        \"vcard\": 
\"http:\\/\\/www.w3.org\\/2006\\/vcard\\/ns#\",\n        \"xsd\": 
\"http:\\/\\/www.w3.org\\/2001\\/XMLSchema#\"\n    }\n}";
+               assertEquals(expectedIndent, actualIndent);
        }
        
        @Test
@@ -181,8 +197,11 @@ public class JsonLdTest {
                
                String actual = jsonLd.toString();
                String expected = 
"[{\"@\":\"<http:\\/\\/purl.oreilly.com\\/products\\/9780596007683.BOOK>\",\"a\":\"<http:\\/\\/purl.org\\/vocab\\/frbr\\/core#Expression>\",\"http:\\/\\/purl.org\\/dc\\/terms\\/type\":\"<http:\\/\\/purl.oreilly.com\\/product-types\\/BOOK>\"},{\"@\":\"<http:\\/\\/purl.oreilly.com\\/products\\/9780596802189.EBOOK>\",\"a\":\"http:\\/\\/purl.org\\/vocab\\/frbr\\/core#Expression\",\"http:\\/\\/purl.org\\/dc\\/terms\\/type\":\"<http:\\/\\/purl.oreilly.com\\/product-types\\/BOOK>\"},{\"@\":\"<http:\\/\\/purl.oreilly.com\\/works\\/45U8QJGZSQKDH8N>\",\"a\":\"http:\\/\\/purl.org\\/vocab\\/frbr\\/core#Work\",\"http:\\/\\/purl.org\\/dc\\/terms\\/creator\":\"Whil
 Wheaton\",\"http:\\/\\/purl.org\\/dc\\/terms\\/title\":\"Just a 
Geek\",\"http:\\/\\/purl.org\\/vocab\\/frbr\\/core#realization\":[\"<http:\\/\\/purl.oreilly.com\\/products\\/9780596007683.BOOK>\",\"<http:\\/\\/purl.oreilly.com\\/products\\/9780596802189.EBOOK>\"]}]";
-
                assertEquals(expected, actual);
+               
+               String actualIndent = jsonLd.toString(4);
+               String expectedIndent = "[\n    {\n        \"@\": 
\"<http:\\/\\/purl.oreilly.com\\/products\\/9780596007683.BOOK>\",\n        
\"a\": \"<http:\\/\\/purl.org\\/vocab\\/frbr\\/core#Expression>\",\n        
\"http:\\/\\/purl.org\\/dc\\/terms\\/type\": 
\"<http:\\/\\/purl.oreilly.com\\/product-types\\/BOOK>\"\n    },\n    {\n       
 \"@\": \"<http:\\/\\/purl.oreilly.com\\/products\\/9780596802189.EBOOK>\",\n   
     \"a\": \"http:\\/\\/purl.org\\/vocab\\/frbr\\/core#Expression\",\n        
\"http:\\/\\/purl.org\\/dc\\/terms\\/type\": 
\"<http:\\/\\/purl.oreilly.com\\/product-types\\/BOOK>\"\n    },\n    {\n       
 \"@\": \"<http:\\/\\/purl.oreilly.com\\/works\\/45U8QJGZSQKDH8N>\",\n        
\"a\": \"http:\\/\\/purl.org\\/vocab\\/frbr\\/core#Work\",\n        
\"http:\\/\\/purl.org\\/dc\\/terms\\/creator\": \"Whil Wheaton\",\n        
\"http:\\/\\/purl.org\\/dc\\/terms\\/title\": \"Just a Geek\",\n        
\"http:\\/\\/purl.org\\/vocab\\/frbr\\/core#realization\": [\n            
\"<http:\
 \/\\/purl.oreilly.com\\/products\\/9780596007683.BOOK>\",\n            
\"<http:\\/\\/purl.oreilly.com\\/products\\/9780596802189.EBOOK>\"\n        ]\n 
   }\n]";
+               assertEquals(expectedIndent, actualIndent);
        }
        
        @Test
@@ -198,8 +217,11 @@ public class JsonLdTest {
                
                String actual = jsonLd.toString();
                String expected = 
"{\"#\":{\"dc\":\"http:\\/\\/purl.org\\/dc\\/terms\\/\",\"xsd\":\"http:\\/\\/www.w3.org\\/2001\\/XMLSchema#\"},\"dc:modified\":\"2010-05-29T14:17:39+02:00^^xsd:dateTime\"}";
-
                assertEquals(expected, actual);
+               
+               String actualIndent = jsonLd.toString(4);
+               String expectedIndent = "{\n    \"#\": {\n        \"dc\": 
\"http:\\/\\/purl.org\\/dc\\/terms\\/\",\n        \"xsd\": 
\"http:\\/\\/www.w3.org\\/2001\\/XMLSchema#\"\n    },\n    \"dc:modified\": 
\"2010-05-29T14:17:39+02:00^^xsd:dateTime\"\n}";
+               assertEquals(expectedIndent, actualIndent);             
        }
        
        @Test
@@ -217,8 +239,11 @@ public class JsonLdTest {
                
                String actual = jsonLd.toString();
                String expected = 
"{\"#\":{\"foaf\":\"http:\\/\\/xmlns.com\\/foaf\\/0.1\\/\",\"xsd\":\"http:\\/\\/www.w3.org\\/2001\\/XMLSchema#\"},\"@\":\"<http:\\/\\/example.org\\/people#joebob>\",\"foaf:nick\":[\"\\\"stu\\\"^^xsd:string\",\"\\\"groknar\\\"^^xsd:string\",\"\\\"radface\\\"^^xsd:string\"]}";
-
                assertEquals(expected, actual);
+               
+               String actualIndent = jsonLd.toString(4);
+               String expectedIndent = "{\n    \"#\": {\n        \"foaf\": 
\"http:\\/\\/xmlns.com\\/foaf\\/0.1\\/\",\n        \"xsd\": 
\"http:\\/\\/www.w3.org\\/2001\\/XMLSchema#\"\n    },\n    \"@\": 
\"<http:\\/\\/example.org\\/people#joebob>\",\n    \"foaf:nick\": [\n        
\"\\\"stu\\\"^^xsd:string\",\n        \"\\\"groknar\\\"^^xsd:string\",\n        
\"\\\"radface\\\"^^xsd:string\"\n    ]\n}";
+               assertEquals(expectedIndent, actualIndent);             
        }
        
        @Test
@@ -237,8 +262,11 @@ public class JsonLdTest {
                
                String actual = jsonLd.toString();
                String expected = 
"{\"#\":{\"foaf\":\"http:\\/\\/xmlns.com\\/foaf\\/0.1\\/\",\"xsd\":\"http:\\/\\/www.w3.org\\/2001\\/XMLSchema#\"},\"@\":\"<http:\\/\\/example.org\\/people#joebob>\",\"http:\\/\\/xmlns.com\\/foaf\\/0.1\\/nick\":[\"\\\"stu\\\"^^http:\\/\\/www.w3.org\\/2001\\/XMLSchema#string\",\"\\\"groknar\\\"^^http:\\/\\/www.w3.org\\/2001\\/XMLSchema#string\",\"\\\"radface\\\"^^http:\\/\\/www.w3.org\\/2001\\/XMLSchema#string\"]}";
-
                assertEquals(expected, actual);
+
+               String actualIndent = jsonLd.toString(4);
+               String expectedIndent = "{\n    \"#\": {\n        \"foaf\": 
\"http:\\/\\/xmlns.com\\/foaf\\/0.1\\/\",\n        \"xsd\": 
\"http:\\/\\/www.w3.org\\/2001\\/XMLSchema#\"\n    },\n    \"@\": 
\"<http:\\/\\/example.org\\/people#joebob>\",\n    
\"http:\\/\\/xmlns.com\\/foaf\\/0.1\\/nick\": [\n        
\"\\\"stu\\\"^^http:\\/\\/www.w3.org\\/2001\\/XMLSchema#string\",\n        
\"\\\"groknar\\\"^^http:\\/\\/www.w3.org\\/2001\\/XMLSchema#string\",\n        
\"\\\"radface\\\"^^http:\\/\\/www.w3.org\\/2001\\/XMLSchema#string\"\n    ]\n}";
+               assertEquals(expectedIndent, actualIndent);             
        }
 
        @Test
@@ -257,8 +285,11 @@ public class JsonLdTest {
                
                String actual = jsonLd.toString();
                String expected = 
"{\"#\":{\"foaf\":\"http:\\/\\/xmlns.com\\/foaf\\/0.1\\/\",\"xsd\":\"http:\\/\\/www.w3.org\\/2001\\/XMLSchema#\"},\"@\":\"<http:\\/\\/example.org\\/people#joebob>\",\"http:\\/\\/xmlns.com\\/foaf\\/0.1\\/nick\":[\"\\\"stu\\\"^^xsd:string\",\"\\\"groknar\\\"^^xsd:string\",\"\\\"radface\\\"^^xsd:string\"]}";
-               
                assertEquals(expected, actual);
+
+               String actualIndent = jsonLd.toString(4);
+               String expectedIndent = "{\n    \"#\": {\n        \"foaf\": 
\"http:\\/\\/xmlns.com\\/foaf\\/0.1\\/\",\n        \"xsd\": 
\"http:\\/\\/www.w3.org\\/2001\\/XMLSchema#\"\n    },\n    \"@\": 
\"<http:\\/\\/example.org\\/people#joebob>\",\n    
\"http:\\/\\/xmlns.com\\/foaf\\/0.1\\/nick\": [\n        
\"\\\"stu\\\"^^xsd:string\",\n        \"\\\"groknar\\\"^^xsd:string\",\n        
\"\\\"radface\\\"^^xsd:string\"\n    ]\n}";
+               assertEquals(expectedIndent, actualIndent);             
        }
 
        
@@ -268,6 +299,7 @@ public class JsonLdTest {
                String s = actual;
                s = s.replaceAll("\\\\", "\\\\\\\\");
                s = s.replace("\"", "\\\"");
+               s = s.replace("\n", "\\n");
                System.out.println(s);
        }
 }

Modified: 
incubator/stanbol/trunk/fise/jersey/src/main/java/eu/iksproject/fise/jersey/writers/JsonLdSerializerProvider.java
URL: 
http://svn.apache.org/viewvc/incubator/stanbol/trunk/fise/jersey/src/main/java/eu/iksproject/fise/jersey/writers/JsonLdSerializerProvider.java?rev=1041413&r1=1041412&r2=1041413&view=diff
==============================================================================
--- 
incubator/stanbol/trunk/fise/jersey/src/main/java/eu/iksproject/fise/jersey/writers/JsonLdSerializerProvider.java
 (original)
+++ 
incubator/stanbol/trunk/fise/jersey/src/main/java/eu/iksproject/fise/jersey/writers/JsonLdSerializerProvider.java
 Thu Dec  2 15:36:37 2010
@@ -47,6 +47,8 @@ public class JsonLdSerializerProvider im
        
        // Map from Namespace -> to Prefix
        private Map<String, String> namespacePrefixMap = new HashMap<String, 
String>();
+       
+       private int indentation = 2;
 
        @Override
        public void serialize(OutputStream serializedGraph, TripleCollection 
tc, String formatIdentifier) {
@@ -87,7 +89,7 @@ public class JsonLdSerializerProvider im
                
                try {
                        BufferedWriter writer = new BufferedWriter(new 
OutputStreamWriter(serializedGraph));
-               writer.write(jsonLd.toString());
+               writer.write(jsonLd.toString(this.indentation));
                writer.flush();
                } catch (IOException ioe) {
                        logger.error(ioe.getMessage());
@@ -130,4 +132,23 @@ public class JsonLdSerializerProvider im
                this.namespacePrefixMap = knownNamespaces;
        }
 
+       /**
+        * Returns the current number of space characters which are used
+        * to indent the serialized output.
+        * 
+        * @return Number of space characters used for indentation.
+        */
+       public int getIndentation() {
+               return indentation;
+       }
+
+       /**
+        * Sets the number of characters used per indentation level for the 
serialized output.<br />
+        * Set this value to zero (0) if you don't want indentation. Default 
value is 2.
+        * 
+        * @param indentation Number of space characters used for indentation.
+        */
+       public void setIndentation(int indentation) {
+               this.indentation = indentation;
+       }
 }

Modified: 
incubator/stanbol/trunk/fise/jersey/src/test/java/eu/iksproject/fise/jersey/writers/JsonLdSerializerProviderTest.java
URL: 
http://svn.apache.org/viewvc/incubator/stanbol/trunk/fise/jersey/src/test/java/eu/iksproject/fise/jersey/writers/JsonLdSerializerProviderTest.java?rev=1041413&r1=1041412&r2=1041413&view=diff
==============================================================================
--- 
incubator/stanbol/trunk/fise/jersey/src/test/java/eu/iksproject/fise/jersey/writers/JsonLdSerializerProviderTest.java
 (original)
+++ 
incubator/stanbol/trunk/fise/jersey/src/test/java/eu/iksproject/fise/jersey/writers/JsonLdSerializerProviderTest.java
 Thu Dec  2 15:36:37 2010
@@ -50,11 +50,26 @@ public class JsonLdSerializerProviderTes
                getTextAnnotation(ci, "Person", "Patrick Marshall", context, 
OntologicalClasses.DBPEDIA_PERSON);
 
                OutputStream serializedGraph = new ByteArrayOutputStream();
+               this.jsonldProvider.setIndentation(0);
                this.jsonldProvider.serialize(serializedGraph, 
ci.getMetadata(), formatIdentifier);
 
                String expected = 
"{\"@\":\"<urn:iks-project:fise:test:text-annotation:Person>\",\"a\":[\"<http:\\/\\/fise.iks-project.eu\\/ontology\\/Enhancement>\",\"<http:\\/\\/fise.iks-project.eu\\/ontology\\/TextAnnotation>\"],\"http:\\/\\/fise.iks-project.eu\\/ontology\\/end\":\"\\\"20\\\"^^<http:\\/\\/www.w3.org\\/2001\\/XMLSchema#int>\",\"http:\\/\\/fise.iks-project.eu\\/ontology\\/selected-text\":\"\\\"Patrick
 
Marshall\\\"^^<http:\\/\\/www.w3.org\\/2001\\/XMLSchema#string>\",\"http:\\/\\/fise.iks-project.eu\\/ontology\\/selection-context\":\"\\\"Dr.
 Patrick Marshall (1869 - November 1950) was a geologist who lived in New 
Zealand and worked at the University of 
Otago.\\\"^^<http:\\/\\/www.w3.org\\/2001\\/XMLSchema#string>\",\"http:\\/\\/fise.iks-project.eu\\/ontology\\/start\":\"\\\"4\\\"^^<http:\\/\\/www.w3.org\\/2001\\/XMLSchema#int>\",\"http:\\/\\/purl.org\\/dc\\/terms\\/created\":\"\\\"2010-10-27T14:00:00+02:00\\\"^^<http:\\/\\/www.w3.org\\/2001\\/XMLSchema#dateTime>\",\"http:
 
\\/\\/purl.org\\/dc\\/terms\\/creator\":\"<urn:iks-project:fise:test:dummyEngine>\",\"http:\\/\\/purl.org\\/dc\\/terms\\/type\":\"<http:\\/\\/dbpedia.org\\/ontology\\/Person>\"}";
+               String result = serializedGraph.toString();             
+               Assert.assertEquals(expected, result);
+       }
+
+       @Test
+       public void testSingleSubjectSerializeNoNsWithIndent() {
+               String context = "Dr. Patrick Marshall (1869 - November 1950) 
was a geologist who lived in New Zealand and worked at the University of 
Otago.";
+
+               ContentItem ci = 
getContentItem("urn:iks-project:fise:test:content-item:person", context);
+               getTextAnnotation(ci, "Person", "Patrick Marshall", context, 
OntologicalClasses.DBPEDIA_PERSON);
+
+               OutputStream serializedGraph = new ByteArrayOutputStream();
+               this.jsonldProvider.serialize(serializedGraph, 
ci.getMetadata(), formatIdentifier);
+
+               String expected = "{\n  \"@\": 
\"<urn:iks-project:fise:test:text-annotation:Person>\",\n  \"a\": [\n    
\"<http:\\/\\/fise.iks-project.eu\\/ontology\\/Enhancement>\",\n    
\"<http:\\/\\/fise.iks-project.eu\\/ontology\\/TextAnnotation>\"\n  ],\n  
\"http:\\/\\/fise.iks-project.eu\\/ontology\\/end\": 
\"\\\"20\\\"^^<http:\\/\\/www.w3.org\\/2001\\/XMLSchema#int>\",\n  
\"http:\\/\\/fise.iks-project.eu\\/ontology\\/selected-text\": \"\\\"Patrick 
Marshall\\\"^^<http:\\/\\/www.w3.org\\/2001\\/XMLSchema#string>\",\n  
\"http:\\/\\/fise.iks-project.eu\\/ontology\\/selection-context\": \"\\\"Dr. 
Patrick Marshall (1869 - November 1950) was a geologist who lived in New 
Zealand and worked at the University of 
Otago.\\\"^^<http:\\/\\/www.w3.org\\/2001\\/XMLSchema#string>\",\n  
\"http:\\/\\/fise.iks-project.eu\\/ontology\\/start\": 
\"\\\"4\\\"^^<http:\\/\\/www.w3.org\\/2001\\/XMLSchema#int>\",\n  
\"http:\\/\\/purl.org\\/dc\\/terms\\/created\": 
\"\\\"2010-10-27T14:00:00+02:00\\\"^^<http:\\/\
 \/www.w3.org\\/2001\\/XMLSchema#dateTime>\",\n  
\"http:\\/\\/purl.org\\/dc\\/terms\\/creator\": 
\"<urn:iks-project:fise:test:dummyEngine>\",\n  
\"http:\\/\\/purl.org\\/dc\\/terms\\/type\": 
\"<http:\\/\\/dbpedia.org\\/ontology\\/Person>\"\n}";
                String result = serializedGraph.toString();
-               
                Assert.assertEquals(expected, result);
        }
        
@@ -71,12 +86,34 @@ public class JsonLdSerializerProviderTes
                nsMap.put("http://www.w3.org/2001/XMLSchema#";, "xmlns");
                nsMap.put("http://dbpedia.org/ontology/";, "dbpedia");
                nsMap.put("http://purl.org/dc/terms";, "dcterms");
+               this.jsonldProvider.setIndentation(0);
                this.jsonldProvider.setNamespacePrefixMap(nsMap);
                this.jsonldProvider.serialize(serializedGraph, 
ci.getMetadata(), formatIdentifier);
 
                String expected = 
"{\"#\":{\"dbpedia\":\"http:\\/\\/dbpedia.org\\/ontology\\/\",\"dcterms\":\"http:\\/\\/purl.org\\/dc\\/terms\",\"fise\":\"http:\\/\\/fise.iks-project.eu\\/ontology\\/\",\"xmlns\":\"http:\\/\\/www.w3.org\\/2001\\/XMLSchema#\"},\"@\":\"<urn:iks-project:fise:test:text-annotation:Person>\",\"a\":[\"<fise:Enhancement>\",\"<fise:TextAnnotation>\"],\"dcterms:\\/created\":\"\\\"2010-10-27T14:00:00+02:00\\\"^^<xmlns:dateTime>\",\"dcterms:\\/creator\":\"<urn:iks-project:fise:test:dummyEngine>\",\"dcterms:\\/type\":\"<dbpedia:Person>\",\"fise:end\":\"\\\"20\\\"^^<xmlns:int>\",\"fise:selected-text\":\"\\\"Patrick
 Marshall\\\"^^<xmlns:string>\",\"fise:selection-context\":\"\\\"Dr. Patrick 
Marshall (1869 - November 1950) was a geologist who lived in New Zealand and 
worked at the University of 
Otago.\\\"^^<xmlns:string>\",\"fise:start\":\"\\\"4\\\"^^<xmlns:int>\"}";
                String result = serializedGraph.toString();
+               Assert.assertEquals(expected, result);
+       }
+
+       @Test
+       public void testSingleSubjectSerializeWithNsWithIndent() {
+               String context = "Dr. Patrick Marshall (1869 - November 1950) 
was a geologist who lived in New Zealand and worked at the University of 
Otago.";
+
+               ContentItem ci = 
getContentItem("urn:iks-project:fise:test:content-item:person", context);
+               getTextAnnotation(ci, "Person", "Patrick Marshall", context, 
OntologicalClasses.DBPEDIA_PERSON);
 
+               OutputStream serializedGraph = new ByteArrayOutputStream();
+               Map<String, String> nsMap = new HashMap<String, String>();
+               nsMap.put("http://fise.iks-project.eu/ontology/";, "fise");
+               nsMap.put("http://www.w3.org/2001/XMLSchema#";, "xmlns");
+               nsMap.put("http://dbpedia.org/ontology/";, "dbpedia");
+               nsMap.put("http://purl.org/dc/terms";, "dcterms");
+               this.jsonldProvider.setIndentation(4);
+               this.jsonldProvider.setNamespacePrefixMap(nsMap);
+               this.jsonldProvider.serialize(serializedGraph, 
ci.getMetadata(), formatIdentifier);
+
+               String expected = "{\n    \"#\": {\n        \"dbpedia\": 
\"http:\\/\\/dbpedia.org\\/ontology\\/\",\n        \"dcterms\": 
\"http:\\/\\/purl.org\\/dc\\/terms\",\n        \"fise\": 
\"http:\\/\\/fise.iks-project.eu\\/ontology\\/\",\n        \"xmlns\": 
\"http:\\/\\/www.w3.org\\/2001\\/XMLSchema#\"\n    },\n    \"@\": 
\"<urn:iks-project:fise:test:text-annotation:Person>\",\n    \"a\": [\n        
\"<fise:Enhancement>\",\n        \"<fise:TextAnnotation>\"\n    ],\n    
\"dcterms:\\/created\": 
\"\\\"2010-10-27T14:00:00+02:00\\\"^^<xmlns:dateTime>\",\n    
\"dcterms:\\/creator\": \"<urn:iks-project:fise:test:dummyEngine>\",\n    
\"dcterms:\\/type\": \"<dbpedia:Person>\",\n    \"fise:end\": 
\"\\\"20\\\"^^<xmlns:int>\",\n    \"fise:selected-text\": \"\\\"Patrick 
Marshall\\\"^^<xmlns:string>\",\n    \"fise:selection-context\": \"\\\"Dr. 
Patrick Marshall (1869 - November 1950) was a geologist who lived in New 
Zealand and worked at the University of Otago.\\\"^^<xmlns:string>\",\n    \"fis
 e:start\": \"\\\"4\\\"^^<xmlns:int>\"\n}";
+               String result = serializedGraph.toString();
                Assert.assertEquals(expected, result);
        }
        
@@ -138,6 +175,7 @@ public class JsonLdSerializerProviderTes
                String s = result;
                s = s.replaceAll("\\\\", "\\\\\\\\");
                s = s.replace("\"", "\\\"");
+               s = s.replace("\n", "\\n");
                System.out.println(s);
        }
 }


Reply via email to