}
if (keyValue != null)
{
Argument arg = new ArgumentImpl(rhsExpression.getType()
.getType(), keyName, rhsExpression.isArray(),
referenceTypeName);
arg.setValue(keyValue);
//System.out.println("created new arg :"+keyName+" "+keyValue.toString());
/*
* Expression expression=(Expression)pList.get(i); String
* nameAndValue=(String)expression.evaluate(); Key
*/
parameterObjects.add(arg);
}
}
else
{
Object result = exp.evaluate();
boolean isArgCreated = false;
if(argTypeList != null && argTypeList.size() > 0)
{
Argument tempArg = null;
if(i < argTypeList.size())
{
tempArg = (Argument)argTypeList.get(i);
if(TypeResolver.isReference(tempArg.getType()))
{
if (TypeResolver.OBJECT_STRING.equals(tempArg
.getType().getReferenceTypeName())
&& TypeResolver.isString(exp.getType()))
{
Argument arg = new ArgumentImpl(tempArg
.getType().getType(), null, tempArg
.getType().getIsArray(),
TypeResolver.OBJECT_STRING);
arg.setValue(result);
parameterObjects.add(arg);
isArgCreated = true;
}
}
}
else
{
// throw exception
}
}
if(!isArgCreated)
{
//Xiping 05/29/09
//get isArray flag from the formal argument list if available
boolean flag = exp.isArray();
if(argTypeList != null && i < argTypeList.size()) {
flag = ((Argument)argTypeList.get(i)).getType().getIsArray();
}
//
Argument arg = new ArgumentImpl(exp.getType().getType(),
// null, exp.isArray(), null);
null, flag, null);
arg.setValue(result);
parameterObjects.add(arg);
}
}
}