Author: gk
Date: Fri May 16 13:36:31 2014
New Revision: 1595194

URL: http://svn.apache.org/r1595194
Log:
Reordered methods and separated cache and filter in Jackson2MapperService.java 

Modified:
    
turbine/fulcrum/trunk/json/jackson2/src/java/org/apache/fulcrum/json/jackson/Jackson2MapperService.java

Modified: 
turbine/fulcrum/trunk/json/jackson2/src/java/org/apache/fulcrum/json/jackson/Jackson2MapperService.java
URL: 
http://svn.apache.org/viewvc/turbine/fulcrum/trunk/json/jackson2/src/java/org/apache/fulcrum/json/jackson/Jackson2MapperService.java?rev=1595194&r1=1595193&r2=1595194&view=diff
==============================================================================
--- 
turbine/fulcrum/trunk/json/jackson2/src/java/org/apache/fulcrum/json/jackson/Jackson2MapperService.java
 (original)
+++ 
turbine/fulcrum/trunk/json/jackson2/src/java/org/apache/fulcrum/json/jackson/Jackson2MapperService.java
 Fri May 16 13:36:31 2014
@@ -25,6 +25,7 @@ import java.text.SimpleDateFormat;
 import java.util.Collection;
 import java.util.Enumeration;
 import java.util.Hashtable;
+import java.util.List;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 
@@ -151,12 +152,37 @@ public class Jackson2MapperService exten
         return reader.readValue(json);
     }
     
-    public <T> Collection<T> deSerCollection2(String json, Class<? extends 
Collection> collectionClass, Class<T> type)
+    public <T> Collection<T> deSerCollectionWithType(String json, Class<? 
extends Collection> collectionClass, Class<T> type)
             throws Exception {
         return mapper.readValue(json, mapper.getTypeFactory()
                 .constructCollectionType(collectionClass, type));
     }
     
+    public <T> String serCollectionWithTypeReference(Collection<T> src, 
TypeReference collectionType, Boolean cleanCache)
+            throws Exception {
+        String res =  
mapper.writerWithType(collectionType).writeValueAsString(src);
+        if (cleanCache) {
+            cleanSerializerCache();
+        }
+        return res;
+    }
+    
+    @Override
+    public <T> Collection<T> deSerCollection(String json,
+            Object collectionType, Class<T> elementType) throws Exception {
+        if (collectionType instanceof TypeReference) {
+            return mapper.readValue(json, (TypeReference)collectionType);
+        } else {
+            return mapper.readValue(json, mapper.getTypeFactory()
+                    
.constructCollectionType(((Collection<T>)collectionType).getClass(), 
elementType));            
+        }
+    }
+    
+    
+    public <T> Collection<T> deSerCollectionWithTypeReference(String json,
+            TypeReference collectionType ) throws Exception {
+            return mapper.readValue(json, collectionType);
+    }
 
 
     public void getJsonService() throws InstantiationException {
@@ -262,7 +288,7 @@ public class Jackson2MapperService exten
             // src.getClass().getName());
             SimpleFilterProvider filter = (SimpleFilterProvider) 
this.filters.get(src.getClass()
                     .getName());
-            return ser(src, 
filter);//mapper.writerWithView(src.getClass()).writeValueAsString(src);
+            return ser(src, filter, 
cleanCache);//mapper.writerWithView(src.getClass()).writeValueAsString(src);
         }
         String res = 
mapper.writerWithView(Object.class).writeValueAsString(src);
         if (cleanCache != null && cleanCache) {
@@ -302,7 +328,7 @@ public class Jackson2MapperService exten
                 filterAttr);
         }
         getLogger().info("filtering with filter "+ filter);
-        String serialized = ser(src, filter);
+        String serialized = ser(src, filter, clean);
         if (!cacheFilters || clean) {
             removeFilter(filterClass);
             if (src != null) removeFilter(src.getClass());
@@ -354,7 +380,6 @@ public class Jackson2MapperService exten
                     .get(filterClass.getName());
             smpfilter.removeFilter(filterClass.getName());
             this.filters.remove(filterClass.getName());
-            cleanSerializerCache();
             getLogger().debug(
                     "removed from  SimpleFilterProvider filters "
                             + filterClass.getName());
@@ -703,16 +728,4 @@ public class Jackson2MapperService exten
         if (!cacheFilters)
             mapper.configure(SerializationFeature.FLUSH_AFTER_WRITE_VALUE, 
true);
     }
-
-    @Override
-    public <T> Collection<T> deSerCollection(String json,
-            Object collectionType, Class<T> elementType) throws Exception {
-        if (collectionType instanceof TypeReference) {
-            return mapper.readValue(json, (TypeReference)collectionType);
-        } else {
-            return mapper.readValue(json, mapper.getTypeFactory()
-                    
.constructCollectionType(((Collection<T>)collectionType).getClass(), 
elementType));            
-        }
-
-    } 
 }


Reply via email to