in src/main/java/org/apache/commons/ognl/ASTMethodUtil.java [83:121]
static String getParmString( OgnlContext context, Class parm, String parmString, Node child, Class valueClass,
String endParam )
{
OgnlExpressionCompiler compiler = OgnlRuntime.getCompiler( context );
if ( parm.isArray() )
{
parmString = compiler.createLocalReference( context, "(" + ExpressionCompiler.getCastString( parm )
+ ")org.apache.commons.ognl.OgnlOps#toArray(" + parmString + ", " + parm.getComponentType().getName()
+ endParam, parm );
}
else if ( parm.isPrimitive() )
{
Class wrapClass = OgnlRuntime.getPrimitiveWrapperClass( parm );
parmString = compiler.createLocalReference( context, "((" + wrapClass.getName()
+ ")org.apache.commons.ognl.OgnlOps#convertValue(" + parmString + "," + wrapClass.getName()
+ ".class, true))." + OgnlRuntime.getNumericValueGetter( wrapClass ), parm );
}
else if ( parm != Object.class )
{
parmString = compiler.createLocalReference( context, "(" + parm.getName()
+ ")org.apache.commons.ognl.OgnlOps#convertValue(" + parmString + "," + parm.getName() + ".class)",
parm );
}
else if ( ( child instanceof NodeType && ( (NodeType) child ).getGetterClass() != null
&& Number.class.isAssignableFrom( ( (NodeType) child ).getGetterClass() ) ) || ( valueClass != null
&& valueClass.isPrimitive() ) )
{
parmString = " ($w) " + parmString;
}
else if ( valueClass != null && valueClass.isPrimitive() )
{
parmString = "($w) " + parmString;
}
return parmString;
}