commons-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From mcucchi...@apache.org
Subject svn commit: r1197437 - /commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ArrayPropertyAccessor.java
Date Fri, 04 Nov 2011 09:01:49 GMT
Author: mcucchiara
Date: Fri Nov  4 09:01:49 2011
New Revision: 1197437

URL: http://svn.apache.org/viewvc?rev=1197437&view=rev
Log:
OGNL-35 - CPD fix, extracted getIndexString() from getSourceAccessor() and getSourceSetter().

Modified:
    commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ArrayPropertyAccessor.java

Modified: commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ArrayPropertyAccessor.java
URL: http://svn.apache.org/viewvc/commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ArrayPropertyAccessor.java?rev=1197437&r1=1197436&r2=1197437&view=diff
==============================================================================
--- commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ArrayPropertyAccessor.java
(original)
+++ commons/proper/ognl/trunk/src/main/java/org/apache/commons/ognl/ArrayPropertyAccessor.java
Fri Nov  4 09:01:49 2011
@@ -145,29 +145,7 @@ public class ArrayPropertyAccessor
     @Override
     public String getSourceAccessor( OgnlContext context, Object target, Object index )
     {
-        String indexStr = index.toString();
-
-        // need to convert to primitive for list index access
-
-        // System.out.println("index class " + index.getClass() + " current type " + context.getCurrentType()
+
-        // " current object class " + context.getCurrentObject().getClass());
-
-        if ( context.getCurrentType() != null && !context.getCurrentType().isPrimitive()
-            && Number.class.isAssignableFrom( context.getCurrentType() ) )
-        {
-            indexStr += "." + OgnlRuntime.getNumericValueGetter( context.getCurrentType()
);
-        }
-        else if ( context.getCurrentObject() != null
-            && Number.class.isAssignableFrom( context.getCurrentObject().getClass()
)
-            && !context.getCurrentType().isPrimitive() )
-        {
-            // means it needs to be cast first as well
-
-            String toString =
-                String.class.isInstance( index ) && context.getCurrentType() != Object.class
? "" : ".toString()";
-
-            indexStr = "org.apache.commons.ognl.OgnlOps#getIntValue(" + indexStr + toString
+ ")";
-        }
+        String indexStr = getIndexString(context, index);
 
         context.setCurrentAccessor( target.getClass() );
         context.setCurrentType( target.getClass().getComponentType() );
@@ -178,10 +156,31 @@ public class ArrayPropertyAccessor
     @Override
     public String getSourceSetter( OgnlContext context, Object target, Object index )
     {
+        String indexStr = getIndexString(context, index);
+
+        Class<?> type = target.getClass().isArray() ? target.getClass().getComponentType()
: target.getClass();
+
+        context.setCurrentAccessor( target.getClass() );
+        context.setCurrentType( target.getClass().getComponentType() );
+
+        if ( type.isPrimitive() )
+        {
+            Class<?> wrapClass = OgnlRuntime.getPrimitiveWrapperClass( type );
+
+            return "[" + indexStr + "]=((" + wrapClass.getName() + ")org.apache.commons.ognl.OgnlOps.convertValue($3,"
+                + wrapClass.getName() + ".class, true))." + OgnlRuntime.getNumericValueGetter(
wrapClass );
+        }
+        return "[" + indexStr + "]=org.apache.commons.ognl.OgnlOps.convertValue($3," + type.getName()
+ ".class)";
+    }
+
+    private static String getIndexString( OgnlContext context, Object index ) {
         String indexStr = index.toString();
 
         // need to convert to primitive for list index access
 
+        // System.out.println("index class " + index.getClass() + " current type " + context.getCurrentType()
+
+        // " current object class " + context.getCurrentObject().getClass());
+
         if ( context.getCurrentType() != null && !context.getCurrentType().isPrimitive()
             && Number.class.isAssignableFrom( context.getCurrentType() ) )
         {
@@ -198,19 +197,6 @@ public class ArrayPropertyAccessor
 
             indexStr = "org.apache.commons.ognl.OgnlOps#getIntValue(" + indexStr + toString
+ ")";
         }
-
-        Class<?> type = target.getClass().isArray() ? target.getClass().getComponentType()
: target.getClass();
-
-        context.setCurrentAccessor( target.getClass() );
-        context.setCurrentType( target.getClass().getComponentType() );
-
-        if ( type.isPrimitive() )
-        {
-            Class<?> wrapClass = OgnlRuntime.getPrimitiveWrapperClass( type );
-
-            return "[" + indexStr + "]=((" + wrapClass.getName() + ")org.apache.commons.ognl.OgnlOps.convertValue($3,"
-                + wrapClass.getName() + ".class, true))." + OgnlRuntime.getNumericValueGetter(
wrapClass );
-        }
-        return "[" + indexStr + "]=org.apache.commons.ognl.OgnlOps.convertValue($3," + type.getName()
+ ".class)";
+        return indexStr;
     }
 }



Mime
View raw message