public static CallSite bootstrap(Lookup caller, String callType, MethodType type, String name, int flags) {
            boolean safe = (flags&SAFE_NAVIGATION)!=0;
            boolean thisCall = (flags&THIS_CALL)!=0;
            boolean spreadCall = (flags&SPREAD_CALL)!=0;
            int callID;
            if (callType.equals(CALL_TYPES.METHOD.getCallSiteName())) {
                callID = CALL_TYPES.METHOD.ordinal();
            } else if (callType.equals(CALL_TYPES.INIT.getCallSiteName())) {
                callID = CALL_TYPES.INIT.ordinal();
            } else if (callType.equals(CALL_TYPES.GET.getCallSiteName())) {
                callID = CALL_TYPES.GET.ordinal();
            } else if (callType.equals(CALL_TYPES.SET.getCallSiteName())) {
                callID = CALL_TYPES.SET.ordinal();
            } else if (callType.equals(CALL_TYPES.CAST.getCallSiteName())) {
                callID = CALL_TYPES.CAST.ordinal();
            }else {
                throw new GroovyBugError("Unknown call type: "+callType);
            }
            return realBootstrap(caller, name, callID, type, safe, thisCall, spreadCall);
        }
public static CallSite bootstrap ( Lookup caller , String callType , MethodType type , String name , int flags ) { boolean safe = ( flags & SAFE_NAVIGATION ) != 0 ; boolean thisCall = ( flags & THIS_CALL ) != 0 ; boolean spreadCall = ( flags & SPREAD_CALL ) != 0 ; int callID ; if ( callType . equals ( CALL_TYPES . METHOD . getCallSiteName ( ) ) ) { callID = CALL_TYPES . METHOD . ordinal ( ) ; } else if ( callType . equals ( CALL_TYPES . INIT . getCallSiteName ( ) ) ) { callID = CALL_TYPES . INIT . ordinal ( ) ; } else if ( callType . equals ( CALL_TYPES . GET . getCallSiteName ( ) ) ) { callID = CALL_TYPES . GET . ordinal ( ) ; } else if ( callType . equals ( CALL_TYPES . SET . getCallSiteName ( ) ) ) { callID = CALL_TYPES . SET . ordinal ( ) ; } else if ( callType . equals ( CALL_TYPES . CAST . getCallSiteName ( ) ) ) { callID = CALL_TYPES . CAST . ordinal ( ) ; } else { throw new GroovyBugError ( "Unknown call type: " + callType ) ; } return realBootstrap ( caller , name , callID , type , safe , thisCall , spreadCall ) ; }
bootstrap method for method calls from Groovy compiled code with indy
enabled. This method gets a flags parameter which uses the following
encoding:<ul>
<li>{@value #SAFE_NAVIGATION} is the flag value for safe navigation see {@link #SAFE_NAVIGATION}<li/>
<li>{@value #THIS_CALL} is the flag value for a call on this see {@link #THIS_CALL}</li>
</ul>
@param caller - the caller
@param callType - the type of the call
@param type - the call site type
@param name - the real method name
@param flags - call flags
@return the produced CallSite
@since Groovy 2.1.0