Examples of MethodHandle


Examples of java.lang.invoke.MethodHandle

  private MethodHandle getFallbackMethod() {
    try {
      final MethodType fallbackType = MethodType.genericMethodType(
          type.parameterCount()).insertParameterTypes(0,
          BaseCallSite.class);
      final MethodHandle fallbackHandle = MethodHandles.insertArguments(
          MethodHandles.lookup().findStatic(BaseCallSite.class,
              "invocationFallback", fallbackType), 0, this);
      return fallbackHandle.asType(type);
    } catch (NoSuchMethodException | IllegalAccessException e) {
      throw new RuntimeException(e);
    }
  }
View Full Code Here

Examples of java.lang.invoke.MethodHandle

  protected void addTargetToCache(Object receiver) {
    setTarget(findFieldAccess(receiver.getClass()));
  }

  protected MethodHandle findFieldAccess(Class receiverClass) {
    MethodHandle access = findAccessOrNil(receiverClass);
    if (access == null)
      throw new RuntimeException("Access not found");
    return access.asType(type);
  }
View Full Code Here

Examples of java.lang.invoke.MethodHandle

    return access.asType(type);
  }

  protected MethodHandle findAccessOrNil(Class receiverClass) {
    // Try to find the highest defined access
    MethodHandle found = null;
    Class cl = receiverClass;
    while (cl != null) {
      MethodHandle sFound = localFindAccessOrNil(cl);
      if (sFound != null)
        found = sFound;
      cl = cl.getSuperclass();
    }
    return found;
View Full Code Here

Examples of java.lang.invoke.MethodHandle

  public static MethodHandle getHandle(Object receiver, String selectorString) {
    return getHandle(receiver, Symbol.value(selectorString));
  }

  public static MethodHandle getHandle(Object receiver, Symbol selector) {
    MethodHandle methodHandle;
    String methodName = selectorConverter.selectorAsFunctionName_(selector);

    if (receiver == null) {
      methodHandle = ImageBootstrapper.systemMapping
          .methodHandleForNil_(methodName);
View Full Code Here

Examples of java.lang.invoke.MethodHandle

    return methodHandle;
  }

  public static Object perform(Object receiver, Symbol selector)
      throws Throwable {
    MethodHandle handle = getHandle(receiver, selector);
    return handle.invoke(receiver);
  }
View Full Code Here

Examples of java.lang.invoke.MethodHandle

    return handle.invoke(receiver);
  }

  public static Object perform(Object receiver, Symbol selector, Object arg1)
      throws Throwable {
    MethodHandle handle = getHandle(receiver, selector);
    return handle.invoke(receiver, arg1);
  }
View Full Code Here

Examples of java.lang.invoke.MethodHandle

    return handle.invoke(receiver, arg1);
  }

  public static Object perform(Object receiver, Symbol selector, Object arg1,
      Object arg2) throws Throwable {
    MethodHandle handle = getHandle(receiver, selector);
    return handle.invoke(receiver, arg1, arg2);
  }
View Full Code Here

Examples of java.lang.invoke.MethodHandle

    return handle.invoke(receiver, arg1, arg2);
  }

  public static Object perform(Object receiver, Symbol selector, Object arg1,
      Object arg2, Object arg3) throws Throwable {
    MethodHandle handle = getHandle(receiver, selector);
    return handle.invoke(receiver, arg1, arg2, arg3);
  }
View Full Code Here

Examples of java.lang.invoke.MethodHandle

    return handle.invoke(receiver, arg1, arg2, arg3);
  }

  public static Object perform(Object receiver, Symbol selector, Object arg1,
      Object arg2, Object arg3, Object arg4) throws Throwable {
    MethodHandle handle = getHandle(receiver, selector);
    return handle.invoke(receiver, arg1, arg2, arg3, arg4);
  }
View Full Code Here

Examples of java.lang.invoke.MethodHandle

    return handle.invoke(receiver, arg1, arg2, arg3, arg4);
  }

  public static Object perform_withArguments_(Object receiver,
      Symbol selector, Object[] arguments) throws Throwable {
    MethodHandle handle = getHandle(receiver, selector);
    return handle.bindTo(receiver).invokeWithArguments(arguments);
  }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.