@Override
    public Object call(PageContext pc, Collection.Key key, Object[] arguments) throws PageException {
	// first check variables
	Object o = shadow.get(key);
	if (o instanceof UDFPlus) {
	    return ((UDFPlus) o).call(pc, key, arguments, false);
	}

	// then check in component
	Member m = component.getMember(access, key, false, false);
	if (m != null) {
	    if (m instanceof UDFPlus) return ((UDFPlus) m).call(pc, key, arguments, false);
	}

	return MemberUtil.call(pc, this, key, arguments, new short[] { CFTypes.TYPE_STRUCT }, new String[] { "struct" });
	// throw ComponentUtil.notFunction(component, key, m!=null?m.getValue():null,access);
    }
@ Override public Object call ( PageContext pc , Collection . Key key , Object [ ] arguments ) throws PageException { Object o = shadow . get ( key ) ; if ( o instanceof UDFPlus ) { return ( ( UDFPlus ) o ) . call ( pc , key , arguments , false ) ; } Member m = component . getMember ( access , key , false , false ) ; if ( m != null ) { if ( m instanceof UDFPlus ) return ( ( UDFPlus ) m ) . call ( pc , key , arguments , false ) ; } return MemberUtil . call ( pc , this , key , arguments , new short [ ] { CFTypes . TYPE_STRUCT } , new String [ ] { "struct" } ) ; }
/*
public Object call(PageContext pc, String key, Object[] arguments) throws PageException { return
call(pc, KeyImpl.init(key), arguments); }