public static ImmutableMethodEncodedValue of(@Nonnull MethodEncodedValue methodEncodedValue) { if (methodEncodedValue instanceof ImmutableMethodEncodedValue) { return (ImmutableMethodEncodedValue)methodEncodedValue; } return new ImmutableMethodEncodedValue(ImmutableMethodReference.of(methodEncodedValue.getValue())); }
public static ImmutableMethodEncodedValue of(@Nonnull MethodEncodedValue methodEncodedValue) { if (methodEncodedValue instanceof ImmutableMethodEncodedValue) { return (ImmutableMethodEncodedValue)methodEncodedValue; } return new ImmutableMethodEncodedValue(ImmutableMethodReference.of(methodEncodedValue.getValue())); }
@Nonnull public static ImmutableReference of(Reference reference) { if (reference instanceof StringReference) { return ImmutableStringReference.of((StringReference)reference); } if (reference instanceof TypeReference) { return ImmutableTypeReference.of((TypeReference)reference); } if (reference instanceof FieldReference) { return ImmutableFieldReference.of((FieldReference)reference); } if (reference instanceof MethodReference) { return ImmutableMethodReference.of((MethodReference)reference); } throw new ExceptionWithContext("Invalid reference type"); }
@Nonnull public static ImmutableReference of(int referenceType, Reference reference) { switch (referenceType) { case ReferenceType.STRING: return ImmutableStringReference.of((StringReference)reference); case ReferenceType.TYPE: return ImmutableTypeReference.of((TypeReference)reference); case ReferenceType.FIELD: return ImmutableFieldReference.of((FieldReference)reference); case ReferenceType.METHOD: return ImmutableMethodReference.of((MethodReference)reference); } throw new ExceptionWithContext("Invalid reference type: %d", referenceType); } }
@Nonnull public static ImmutableMethodHandleReference of(@Nonnull MethodHandleReference methodHandleReference) { if (methodHandleReference instanceof ImmutableMethodHandleReference) { return (ImmutableMethodHandleReference) methodHandleReference; } int methodHandleType = methodHandleReference.getMethodHandleType(); ImmutableReference memberReference; switch (methodHandleType) { case MethodHandleType.STATIC_PUT: case MethodHandleType.STATIC_GET: case MethodHandleType.INSTANCE_PUT: case MethodHandleType.INSTANCE_GET: memberReference = ImmutableFieldReference.of( (FieldReference) methodHandleReference.getMemberReference()); break; case MethodHandleType.INVOKE_STATIC: case MethodHandleType.INVOKE_INSTANCE: case MethodHandleType.INVOKE_CONSTRUCTOR: case MethodHandleType.INVOKE_DIRECT: case MethodHandleType.INVOKE_INTERFACE: memberReference = ImmutableMethodReference.of( (MethodReference) methodHandleReference.getMemberReference()); break; default: throw new ExceptionWithContext("Invalid method handle type: %d", methodHandleType); } return new ImmutableMethodHandleReference(methodHandleType, memberReference); }
@Nonnull public static ImmutableMethodHandleReference of(@Nonnull MethodHandleReference methodHandleReference) { if (methodHandleReference instanceof ImmutableMethodHandleReference) { return (ImmutableMethodHandleReference) methodHandleReference; } int methodHandleType = methodHandleReference.getMethodHandleType(); ImmutableReference memberReference; switch (methodHandleType) { case MethodHandleType.STATIC_PUT: case MethodHandleType.STATIC_GET: case MethodHandleType.INSTANCE_PUT: case MethodHandleType.INSTANCE_GET: memberReference = ImmutableFieldReference.of( (FieldReference) methodHandleReference.getMemberReference()); break; case MethodHandleType.INVOKE_STATIC: case MethodHandleType.INVOKE_INSTANCE: case MethodHandleType.INVOKE_CONSTRUCTOR: case MethodHandleType.INVOKE_DIRECT: case MethodHandleType.INVOKE_INTERFACE: memberReference = ImmutableMethodReference.of( (MethodReference) methodHandleReference.getMemberReference()); break; default: throw new ExceptionWithContext("Invalid method handle type: %d", methodHandleType); } return new ImmutableMethodHandleReference(methodHandleType, memberReference); }
@Nonnull public static ImmutableReference of(int referenceType, Reference reference) { switch (referenceType) { case ReferenceType.STRING: return ImmutableStringReference.of((StringReference)reference); case ReferenceType.TYPE: return ImmutableTypeReference.of((TypeReference)reference); case ReferenceType.FIELD: return ImmutableFieldReference.of((FieldReference)reference); case ReferenceType.METHOD: return ImmutableMethodReference.of((MethodReference)reference); case ReferenceType.METHOD_PROTO: return ImmutableMethodProtoReference.of((MethodProtoReference)reference); case ReferenceType.CALL_SITE: return ImmutableCallSiteReference.of((CallSiteReference) reference); case ReferenceType.METHOD_HANDLE: return ImmutableMethodHandleReference.of((MethodHandleReference) reference); } throw new ExceptionWithContext("Invalid reference type: %d", referenceType); } }
@Nonnull public static ImmutableReference of(Reference reference) { if (reference instanceof StringReference) { return ImmutableStringReference.of((StringReference)reference); } if (reference instanceof TypeReference) { return ImmutableTypeReference.of((TypeReference)reference); } if (reference instanceof FieldReference) { return ImmutableFieldReference.of((FieldReference)reference); } if (reference instanceof MethodReference) { return ImmutableMethodReference.of((MethodReference)reference); } if (reference instanceof MethodProtoReference) { return ImmutableMethodProtoReference.of((MethodProtoReference) reference); } if (reference instanceof CallSiteReference) { return ImmutableCallSiteReference.of((CallSiteReference) reference); } if (reference instanceof MethodHandleReference) { return ImmutableMethodHandleReference.of((MethodHandleReference) reference); } throw new ExceptionWithContext("Invalid reference type"); }
@Nonnull public static ImmutableReference of(int referenceType, Reference reference) { switch (referenceType) { case ReferenceType.STRING: return ImmutableStringReference.of((StringReference)reference); case ReferenceType.TYPE: return ImmutableTypeReference.of((TypeReference)reference); case ReferenceType.FIELD: return ImmutableFieldReference.of((FieldReference)reference); case ReferenceType.METHOD: return ImmutableMethodReference.of((MethodReference)reference); case ReferenceType.METHOD_PROTO: return ImmutableMethodProtoReference.of((MethodProtoReference)reference); case ReferenceType.CALL_SITE: return ImmutableCallSiteReference.of((CallSiteReference) reference); case ReferenceType.METHOD_HANDLE: return ImmutableMethodHandleReference.of((MethodHandleReference) reference); } throw new ExceptionWithContext("Invalid reference type: %d", referenceType); } }
@Nonnull public static ImmutableReference of(Reference reference) { if (reference instanceof StringReference) { return ImmutableStringReference.of((StringReference)reference); } if (reference instanceof TypeReference) { return ImmutableTypeReference.of((TypeReference)reference); } if (reference instanceof FieldReference) { return ImmutableFieldReference.of((FieldReference)reference); } if (reference instanceof MethodReference) { return ImmutableMethodReference.of((MethodReference)reference); } if (reference instanceof MethodProtoReference) { return ImmutableMethodProtoReference.of((MethodProtoReference) reference); } if (reference instanceof CallSiteReference) { return ImmutableCallSiteReference.of((CallSiteReference) reference); } if (reference instanceof MethodHandleReference) { return ImmutableMethodHandleReference.of((MethodHandleReference) reference); } throw new ExceptionWithContext("Invalid reference type"); }