Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
 package org.dynjs.runtime.linker.java.jsimpl;
 
 
import static java.lang.invoke.MethodHandles.lookup;
import static java.lang.invoke.MethodType.methodType;

Author(s):
Bob McWhirter
public class JSJavaImplementationConstructLink extends SmartLink implements Guard {
    private final JSJavaImplementationManager implManager;
    public JSJavaImplementationConstructLink(LinkBuilder builderJSJavaImplementationManager implManagerthrows Exception {
        super(builder);
        this. = implManager;
        this. = this..guardWiththis );
    }
    public boolean guard(Object receiverObject contextObject[] args) {
        if (!(receiver instanceof Class)) {
            return false;
        }
        if (args.length != 1) {
            return false;
        }
        if (!(args[0] instanceof JSObject)) {
            return false;
        }
        return true;
    }
    @Override
    public MethodHandle guardMethodHandle(MethodType inputTypethrows Exception {
        return lookup()
                .findVirtual(JSJavaImplementationConstructLink.class"guard"methodType(boolean.classObject.classObject.classObject[].class))
                .bindTo(this);
    }
    public MethodHandle guard() throws Exception {
        return this..getGuard();
    }
    @Override
    public MethodHandle target() throws Exception {
        return 
                .insert( 0, this. )
                .spreadJSObject.class )
                .convertObject.classClass.classExecutionContext.classJSObject.class )
                .invokelookup().findVirtualJSJavaImplementationManager.class"getImplementationWrapper"methodTypeObject.classClass.classExecutionContext.classJSObject.class )))
                .target();
    }
New to GrepCode? Check out our FAQ X