Title: [2069] trunk/xstream/src/java/com/thoughtworks/xstream/converters/reflection/AbstractReflectionConverter.java: Optimize lookup of implicit collection.
Revision
2069
Author
joehni
Date
2013-06-05 16:10:04 -0500 (Wed, 05 Jun 2013)

Log Message

Optimize lookup of implicit collection.

Modified Paths


Diff

Modified: trunk/xstream/src/java/com/thoughtworks/xstream/converters/reflection/AbstractReflectionConverter.java (2068 => 2069)


--- trunk/xstream/src/java/com/thoughtworks/xstream/converters/reflection/AbstractReflectionConverter.java	2013-06-04 23:56:37 UTC (rev 2068)
+++ trunk/xstream/src/java/com/thoughtworks/xstream/converters/reflection/AbstractReflectionConverter.java	2013-06-05 21:10:04 UTC (rev 2069)
@@ -404,7 +404,7 @@
                 }
             } else {
                 // we have an implicit collection with defined names
-               // implicitFieldName = implicitCollectionMapping.getItemFieldName();
+                implicitFieldName = implicitCollectionMapping.getFieldName();
                 type = implicitCollectionMapping.getItemType();
                 if (type == null) {
                     String classAttribute = HierarchicalStreams.readClassAttribute(
@@ -434,8 +434,11 @@
                         value != null ? value.getClass() : Mapper.Null.class,
                         originalNodeName);
                 }
-                implicitCollectionsForCurrentObject = writeValueToImplicitCollection(value,
-                    implicitCollectionsForCurrentObject, result, implicitFieldName);
+                if (implicitCollectionsForCurrentObject == null) {
+                    implicitCollectionsForCurrentObject = new HashMap();
+                }
+                writeValueToImplicitCollection(
+                    value, implicitCollectionsForCurrentObject, result, implicitFieldName);
             }
 
             reader.moveUp();
@@ -482,10 +485,7 @@
         throw new UnknownFieldException(resultType.getName(), fieldName);
     }
 
-    private Map writeValueToImplicitCollection(Object value, Map implicitCollections, Object result, String implicitFieldName) {
-        if (implicitCollections == null) {
-            implicitCollections = new HashMap(); // lazy instantiation
-        }
+    private void writeValueToImplicitCollection(Object value, Map implicitCollections, Object result, String implicitFieldName) {
         Collection collection = (Collection)implicitCollections.get(implicitFieldName);
         if (collection == null) {
             Class physicalFieldType = reflectionProvider.getFieldType(
@@ -521,7 +521,6 @@
             implicitCollections.put(implicitFieldName, collection);
         }
         collection.add(value);
-        return implicitCollections;
     }
 
     private Class readDeclaringClass(HierarchicalStreamReader reader) {

To unsubscribe from this list please visit:

http://xircles.codehaus.org/manage_email

Reply via email to