protected Object getValueBody( ExprContext context, Object source ) throws ExprException
{
SymbolTable table = context.getSymbolTable();
SemanticRecord record = (table != null ?
(SemanticRecord)table.getSymbolRecord(this) : null);
MethodInfo methodInfo = (record != null?
(MethodInfo)record.getPropertyInfo() : null);
boolean isStatic = (methodInfo != null ? methodInfo.isStatic() : false);
// Wrap the source as well as to provide proper evaluation context
// for method invocation.
source = ExprRuntime.convert(source);
Object value;
if (!isStatic) {
value = _getValueBody(context, source);
}
else {
String typeName = methodInfo.getParentType().getName();
Object[] args = ExprRuntime.getObjectArrayPool().create(jjtGetNumChildren());
Object root = context.getRoot();
try {
for ( int i=0, icount = args.length; i < icount; ++i ) {