org.objectweb.asm.TypeReference#METHOD_RECEIVER源码实例Demo

下面列出了org.objectweb.asm.TypeReference#METHOD_RECEIVER 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: Concurnas   文件: CheckMethodAdapter.java
@Override
public AnnotationVisitor visitTypeAnnotation(
    final int typeRef, final TypePath typePath, final String descriptor, final boolean visible) {
  checkVisitEndNotCalled();
  int sort = new TypeReference(typeRef).getSort();
  if (sort != TypeReference.METHOD_TYPE_PARAMETER
      && sort != TypeReference.METHOD_TYPE_PARAMETER_BOUND
      && sort != TypeReference.METHOD_RETURN
      && sort != TypeReference.METHOD_RECEIVER
      && sort != TypeReference.METHOD_FORMAL_PARAMETER
      && sort != TypeReference.THROWS) {
    throw new IllegalArgumentException(INVALID_TYPE_REFERENCE + Integer.toHexString(sort));
  }
  CheckClassAdapter.checkTypeRef(typeRef);
  CheckMethodAdapter.checkDescriptor(version, descriptor, false);
  return new CheckAnnotationAdapter(
      super.visitTypeAnnotation(typeRef, typePath, descriptor, visible));
}
 
源代码2 项目: JReFrameworker   文件: CheckMethodAdapter.java
@Override
public AnnotationVisitor visitTypeAnnotation(
    final int typeRef, final TypePath typePath, final String descriptor, final boolean visible) {
  checkVisitEndNotCalled();
  int sort = new TypeReference(typeRef).getSort();
  if (sort != TypeReference.METHOD_TYPE_PARAMETER
      && sort != TypeReference.METHOD_TYPE_PARAMETER_BOUND
      && sort != TypeReference.METHOD_RETURN
      && sort != TypeReference.METHOD_RECEIVER
      && sort != TypeReference.METHOD_FORMAL_PARAMETER
      && sort != TypeReference.THROWS) {
    throw new IllegalArgumentException(INVALID_TYPE_REFERENCE + Integer.toHexString(sort));
  }
  CheckClassAdapter.checkTypeRef(typeRef);
  CheckMethodAdapter.checkDescriptor(version, descriptor, false);
  return new CheckAnnotationAdapter(
      super.visitTypeAnnotation(typeRef, typePath, descriptor, visible));
}
 
源代码3 项目: JReFrameworker   文件: CheckMethodAdapter.java
@Override
public AnnotationVisitor visitTypeAnnotation(
    final int typeRef, final TypePath typePath, final String descriptor, final boolean visible) {
  checkVisitEndNotCalled();
  int sort = new TypeReference(typeRef).getSort();
  if (sort != TypeReference.METHOD_TYPE_PARAMETER
      && sort != TypeReference.METHOD_TYPE_PARAMETER_BOUND
      && sort != TypeReference.METHOD_RETURN
      && sort != TypeReference.METHOD_RECEIVER
      && sort != TypeReference.METHOD_FORMAL_PARAMETER
      && sort != TypeReference.THROWS) {
    throw new IllegalArgumentException(INVALID_TYPE_REFERENCE + Integer.toHexString(sort));
  }
  CheckClassAdapter.checkTypeRef(typeRef);
  CheckMethodAdapter.checkDescriptor(version, descriptor, false);
  return new CheckAnnotationAdapter(
      super.visitTypeAnnotation(typeRef, typePath, descriptor, visible));
}
 
源代码4 项目: JByteMod-Beta   文件: CheckMethodAdapter.java
@Override
public AnnotationVisitor visitTypeAnnotation(final int typeRef, final TypePath typePath, final String desc, final boolean visible) {
  checkEndMethod();
  int sort = typeRef >>> 24;
  if (sort != TypeReference.METHOD_TYPE_PARAMETER && sort != TypeReference.METHOD_TYPE_PARAMETER_BOUND && sort != TypeReference.METHOD_RETURN
      && sort != TypeReference.METHOD_RECEIVER && sort != TypeReference.METHOD_FORMAL_PARAMETER && sort != TypeReference.THROWS) {
    throw new IllegalArgumentException("Invalid type reference sort 0x" + Integer.toHexString(sort));
  }
  CheckClassAdapter.checkTypeRefAndPath(typeRef, typePath);
  CheckMethodAdapter.checkDesc(desc, false);
  return new CheckAnnotationAdapter(super.visitTypeAnnotation(typeRef, typePath, desc, visible));
}
 
源代码5 项目: Concurnas   文件: CheckClassAdapter.java
/**
 * Checks the reference to a type in a type annotation.
 *
 * @param typeRef a reference to an annotated type.
 */
static void checkTypeRef(final int typeRef) {
  int mask = 0;
  switch (typeRef >>> 24) {
    case TypeReference.CLASS_TYPE_PARAMETER:
    case TypeReference.METHOD_TYPE_PARAMETER:
    case TypeReference.METHOD_FORMAL_PARAMETER:
      mask = 0xFFFF0000;
      break;
    case TypeReference.FIELD:
    case TypeReference.METHOD_RETURN:
    case TypeReference.METHOD_RECEIVER:
    case TypeReference.LOCAL_VARIABLE:
    case TypeReference.RESOURCE_VARIABLE:
    case TypeReference.INSTANCEOF:
    case TypeReference.NEW:
    case TypeReference.CONSTRUCTOR_REFERENCE:
    case TypeReference.METHOD_REFERENCE:
      mask = 0xFF000000;
      break;
    case TypeReference.CLASS_EXTENDS:
    case TypeReference.CLASS_TYPE_PARAMETER_BOUND:
    case TypeReference.METHOD_TYPE_PARAMETER_BOUND:
    case TypeReference.THROWS:
    case TypeReference.EXCEPTION_PARAMETER:
      mask = 0xFFFFFF00;
      break;
    case TypeReference.CAST:
    case TypeReference.CONSTRUCTOR_INVOCATION_TYPE_ARGUMENT:
    case TypeReference.METHOD_INVOCATION_TYPE_ARGUMENT:
    case TypeReference.CONSTRUCTOR_REFERENCE_TYPE_ARGUMENT:
    case TypeReference.METHOD_REFERENCE_TYPE_ARGUMENT:
      mask = 0xFF0000FF;
      break;
    default:
      throw new AssertionError();
  }
  if ((typeRef & ~mask) != 0) {
    throw new IllegalArgumentException(
        "Invalid type reference 0x" + Integer.toHexString(typeRef));
  }
}
 
源代码6 项目: Concurnas   文件: Textifier.java
/**
 * Appends a string representation of the given type reference to {@link #stringBuilder}.
 *
 * @param typeRef a type reference. See {@link TypeReference}.
 */
private void appendTypeReference(final int typeRef) {
  TypeReference typeReference = new TypeReference(typeRef);
  switch (typeReference.getSort()) {
    case TypeReference.CLASS_TYPE_PARAMETER:
      stringBuilder.append("CLASS_TYPE_PARAMETER ").append(typeReference.getTypeParameterIndex());
      break;
    case TypeReference.METHOD_TYPE_PARAMETER:
      stringBuilder
          .append("METHOD_TYPE_PARAMETER ")
          .append(typeReference.getTypeParameterIndex());
      break;
    case TypeReference.CLASS_EXTENDS:
      stringBuilder.append("CLASS_EXTENDS ").append(typeReference.getSuperTypeIndex());
      break;
    case TypeReference.CLASS_TYPE_PARAMETER_BOUND:
      stringBuilder
          .append("CLASS_TYPE_PARAMETER_BOUND ")
          .append(typeReference.getTypeParameterIndex())
          .append(", ")
          .append(typeReference.getTypeParameterBoundIndex());
      break;
    case TypeReference.METHOD_TYPE_PARAMETER_BOUND:
      stringBuilder
          .append("METHOD_TYPE_PARAMETER_BOUND ")
          .append(typeReference.getTypeParameterIndex())
          .append(", ")
          .append(typeReference.getTypeParameterBoundIndex());
      break;
    case TypeReference.FIELD:
      stringBuilder.append("FIELD");
      break;
    case TypeReference.METHOD_RETURN:
      stringBuilder.append("METHOD_RETURN");
      break;
    case TypeReference.METHOD_RECEIVER:
      stringBuilder.append("METHOD_RECEIVER");
      break;
    case TypeReference.METHOD_FORMAL_PARAMETER:
      stringBuilder
          .append("METHOD_FORMAL_PARAMETER ")
          .append(typeReference.getFormalParameterIndex());
      break;
    case TypeReference.THROWS:
      stringBuilder.append("THROWS ").append(typeReference.getExceptionIndex());
      break;
    case TypeReference.LOCAL_VARIABLE:
      stringBuilder.append("LOCAL_VARIABLE");
      break;
    case TypeReference.RESOURCE_VARIABLE:
      stringBuilder.append("RESOURCE_VARIABLE");
      break;
    case TypeReference.EXCEPTION_PARAMETER:
      stringBuilder.append("EXCEPTION_PARAMETER ").append(typeReference.getTryCatchBlockIndex());
      break;
    case TypeReference.INSTANCEOF:
      stringBuilder.append("INSTANCEOF");
      break;
    case TypeReference.NEW:
      stringBuilder.append("NEW");
      break;
    case TypeReference.CONSTRUCTOR_REFERENCE:
      stringBuilder.append("CONSTRUCTOR_REFERENCE");
      break;
    case TypeReference.METHOD_REFERENCE:
      stringBuilder.append("METHOD_REFERENCE");
      break;
    case TypeReference.CAST:
      stringBuilder.append("CAST ").append(typeReference.getTypeArgumentIndex());
      break;
    case TypeReference.CONSTRUCTOR_INVOCATION_TYPE_ARGUMENT:
      stringBuilder
          .append("CONSTRUCTOR_INVOCATION_TYPE_ARGUMENT ")
          .append(typeReference.getTypeArgumentIndex());
      break;
    case TypeReference.METHOD_INVOCATION_TYPE_ARGUMENT:
      stringBuilder
          .append("METHOD_INVOCATION_TYPE_ARGUMENT ")
          .append(typeReference.getTypeArgumentIndex());
      break;
    case TypeReference.CONSTRUCTOR_REFERENCE_TYPE_ARGUMENT:
      stringBuilder
          .append("CONSTRUCTOR_REFERENCE_TYPE_ARGUMENT ")
          .append(typeReference.getTypeArgumentIndex());
      break;
    case TypeReference.METHOD_REFERENCE_TYPE_ARGUMENT:
      stringBuilder
          .append("METHOD_REFERENCE_TYPE_ARGUMENT ")
          .append(typeReference.getTypeArgumentIndex());
      break;
    default:
      throw new IllegalArgumentException();
  }
}
 
源代码7 项目: JByteMod-Beta   文件: CheckClassAdapter.java
/**
 * Checks the reference to a type in a type annotation.
 * 
 * @param typeRef
 *          a reference to an annotated type.
 * @param typePath
 *          the path to the annotated type argument, wildcard bound, array
 *          element type, or static inner type within 'typeRef'. May be
 *          <tt>null</tt> if the annotation targets 'typeRef' as a whole.
 */
static void checkTypeRefAndPath(int typeRef, TypePath typePath) {
  int mask = 0;
  switch (typeRef >>> 24) {
  case TypeReference.CLASS_TYPE_PARAMETER:
  case TypeReference.METHOD_TYPE_PARAMETER:
  case TypeReference.METHOD_FORMAL_PARAMETER:
    mask = 0xFFFF0000;
    break;
  case TypeReference.FIELD:
  case TypeReference.METHOD_RETURN:
  case TypeReference.METHOD_RECEIVER:
  case TypeReference.LOCAL_VARIABLE:
  case TypeReference.RESOURCE_VARIABLE:
  case TypeReference.INSTANCEOF:
  case TypeReference.NEW:
  case TypeReference.CONSTRUCTOR_REFERENCE:
  case TypeReference.METHOD_REFERENCE:
    mask = 0xFF000000;
    break;
  case TypeReference.CLASS_EXTENDS:
  case TypeReference.CLASS_TYPE_PARAMETER_BOUND:
  case TypeReference.METHOD_TYPE_PARAMETER_BOUND:
  case TypeReference.THROWS:
  case TypeReference.EXCEPTION_PARAMETER:
    mask = 0xFFFFFF00;
    break;
  case TypeReference.CAST:
  case TypeReference.CONSTRUCTOR_INVOCATION_TYPE_ARGUMENT:
  case TypeReference.METHOD_INVOCATION_TYPE_ARGUMENT:
  case TypeReference.CONSTRUCTOR_REFERENCE_TYPE_ARGUMENT:
  case TypeReference.METHOD_REFERENCE_TYPE_ARGUMENT:
    mask = 0xFF0000FF;
    break;
  default:
    throw new IllegalArgumentException("Invalid type reference sort 0x" + Integer.toHexString(typeRef >>> 24));
  }
  if ((typeRef & ~mask) != 0) {
    throw new IllegalArgumentException("Invalid type reference 0x" + Integer.toHexString(typeRef));
  }
  if (typePath != null) {
    for (int i = 0; i < typePath.getLength(); ++i) {
      int step = typePath.getStep(i);
      if (step != TypePath.ARRAY_ELEMENT && step != TypePath.INNER_TYPE && step != TypePath.TYPE_ARGUMENT && step != TypePath.WILDCARD_BOUND) {
        throw new IllegalArgumentException("Invalid type path step " + i + " in " + typePath);
      }
      if (step != TypePath.TYPE_ARGUMENT && typePath.getStepArgument(i) != 0) {
        throw new IllegalArgumentException("Invalid type path step argument for step " + i + " in " + typePath);
      }
    }
  }
}
 
源代码8 项目: JByteMod-Beta   文件: Textifier.java
private void appendTypeReference(final int typeRef) {
  TypeReference ref = new TypeReference(typeRef);
  switch (ref.getSort()) {
  case TypeReference.CLASS_TYPE_PARAMETER:
    buf.append("CLASS_TYPE_PARAMETER ").append(ref.getTypeParameterIndex());
    break;
  case TypeReference.METHOD_TYPE_PARAMETER:
    buf.append("METHOD_TYPE_PARAMETER ").append(ref.getTypeParameterIndex());
    break;
  case TypeReference.CLASS_EXTENDS:
    buf.append("CLASS_EXTENDS ").append(ref.getSuperTypeIndex());
    break;
  case TypeReference.CLASS_TYPE_PARAMETER_BOUND:
    buf.append("CLASS_TYPE_PARAMETER_BOUND ").append(ref.getTypeParameterIndex()).append(", ").append(ref.getTypeParameterBoundIndex());
    break;
  case TypeReference.METHOD_TYPE_PARAMETER_BOUND:
    buf.append("METHOD_TYPE_PARAMETER_BOUND ").append(ref.getTypeParameterIndex()).append(", ").append(ref.getTypeParameterBoundIndex());
    break;
  case TypeReference.FIELD:
    buf.append("FIELD");
    break;
  case TypeReference.METHOD_RETURN:
    buf.append("METHOD_RETURN");
    break;
  case TypeReference.METHOD_RECEIVER:
    buf.append("METHOD_RECEIVER");
    break;
  case TypeReference.METHOD_FORMAL_PARAMETER:
    buf.append("METHOD_FORMAL_PARAMETER ").append(ref.getFormalParameterIndex());
    break;
  case TypeReference.THROWS:
    buf.append("THROWS ").append(ref.getExceptionIndex());
    break;
  case TypeReference.LOCAL_VARIABLE:
    buf.append("LOCAL_VARIABLE");
    break;
  case TypeReference.RESOURCE_VARIABLE:
    buf.append("RESOURCE_VARIABLE");
    break;
  case TypeReference.EXCEPTION_PARAMETER:
    buf.append("EXCEPTION_PARAMETER ").append(ref.getTryCatchBlockIndex());
    break;
  case TypeReference.INSTANCEOF:
    buf.append("INSTANCEOF");
    break;
  case TypeReference.NEW:
    buf.append("NEW");
    break;
  case TypeReference.CONSTRUCTOR_REFERENCE:
    buf.append("CONSTRUCTOR_REFERENCE");
    break;
  case TypeReference.METHOD_REFERENCE:
    buf.append("METHOD_REFERENCE");
    break;
  case TypeReference.CAST:
    buf.append("CAST ").append(ref.getTypeArgumentIndex());
    break;
  case TypeReference.CONSTRUCTOR_INVOCATION_TYPE_ARGUMENT:
    buf.append("CONSTRUCTOR_INVOCATION_TYPE_ARGUMENT ").append(ref.getTypeArgumentIndex());
    break;
  case TypeReference.METHOD_INVOCATION_TYPE_ARGUMENT:
    buf.append("METHOD_INVOCATION_TYPE_ARGUMENT ").append(ref.getTypeArgumentIndex());
    break;
  case TypeReference.CONSTRUCTOR_REFERENCE_TYPE_ARGUMENT:
    buf.append("CONSTRUCTOR_REFERENCE_TYPE_ARGUMENT ").append(ref.getTypeArgumentIndex());
    break;
  case TypeReference.METHOD_REFERENCE_TYPE_ARGUMENT:
    buf.append("METHOD_REFERENCE_TYPE_ARGUMENT ").append(ref.getTypeArgumentIndex());
    break;
  }
}
 
源代码9 项目: JReFrameworker   文件: CheckClassAdapter.java
/**
 * Checks the reference to a type in a type annotation.
 *
 * @param typeRef a reference to an annotated type.
 */
static void checkTypeRef(final int typeRef) {
  int mask = 0;
  switch (typeRef >>> 24) {
    case TypeReference.CLASS_TYPE_PARAMETER:
    case TypeReference.METHOD_TYPE_PARAMETER:
    case TypeReference.METHOD_FORMAL_PARAMETER:
      mask = 0xFFFF0000;
      break;
    case TypeReference.FIELD:
    case TypeReference.METHOD_RETURN:
    case TypeReference.METHOD_RECEIVER:
    case TypeReference.LOCAL_VARIABLE:
    case TypeReference.RESOURCE_VARIABLE:
    case TypeReference.INSTANCEOF:
    case TypeReference.NEW:
    case TypeReference.CONSTRUCTOR_REFERENCE:
    case TypeReference.METHOD_REFERENCE:
      mask = 0xFF000000;
      break;
    case TypeReference.CLASS_EXTENDS:
    case TypeReference.CLASS_TYPE_PARAMETER_BOUND:
    case TypeReference.METHOD_TYPE_PARAMETER_BOUND:
    case TypeReference.THROWS:
    case TypeReference.EXCEPTION_PARAMETER:
      mask = 0xFFFFFF00;
      break;
    case TypeReference.CAST:
    case TypeReference.CONSTRUCTOR_INVOCATION_TYPE_ARGUMENT:
    case TypeReference.METHOD_INVOCATION_TYPE_ARGUMENT:
    case TypeReference.CONSTRUCTOR_REFERENCE_TYPE_ARGUMENT:
    case TypeReference.METHOD_REFERENCE_TYPE_ARGUMENT:
      mask = 0xFF0000FF;
      break;
    default:
      throw new AssertionError();
  }
  if ((typeRef & ~mask) != 0) {
    throw new IllegalArgumentException(
        "Invalid type reference 0x" + Integer.toHexString(typeRef));
  }
}
 
源代码10 项目: JReFrameworker   文件: Textifier.java
/**
 * Appends a string representation of the given type reference to {@link #stringBuilder}.
 *
 * @param typeRef a type reference. See {@link TypeReference}.
 */
private void appendTypeReference(final int typeRef) {
  TypeReference typeReference = new TypeReference(typeRef);
  switch (typeReference.getSort()) {
    case TypeReference.CLASS_TYPE_PARAMETER:
      stringBuilder.append("CLASS_TYPE_PARAMETER ").append(typeReference.getTypeParameterIndex());
      break;
    case TypeReference.METHOD_TYPE_PARAMETER:
      stringBuilder
          .append("METHOD_TYPE_PARAMETER ")
          .append(typeReference.getTypeParameterIndex());
      break;
    case TypeReference.CLASS_EXTENDS:
      stringBuilder.append("CLASS_EXTENDS ").append(typeReference.getSuperTypeIndex());
      break;
    case TypeReference.CLASS_TYPE_PARAMETER_BOUND:
      stringBuilder
          .append("CLASS_TYPE_PARAMETER_BOUND ")
          .append(typeReference.getTypeParameterIndex())
          .append(", ")
          .append(typeReference.getTypeParameterBoundIndex());
      break;
    case TypeReference.METHOD_TYPE_PARAMETER_BOUND:
      stringBuilder
          .append("METHOD_TYPE_PARAMETER_BOUND ")
          .append(typeReference.getTypeParameterIndex())
          .append(", ")
          .append(typeReference.getTypeParameterBoundIndex());
      break;
    case TypeReference.FIELD:
      stringBuilder.append("FIELD");
      break;
    case TypeReference.METHOD_RETURN:
      stringBuilder.append("METHOD_RETURN");
      break;
    case TypeReference.METHOD_RECEIVER:
      stringBuilder.append("METHOD_RECEIVER");
      break;
    case TypeReference.METHOD_FORMAL_PARAMETER:
      stringBuilder
          .append("METHOD_FORMAL_PARAMETER ")
          .append(typeReference.getFormalParameterIndex());
      break;
    case TypeReference.THROWS:
      stringBuilder.append("THROWS ").append(typeReference.getExceptionIndex());
      break;
    case TypeReference.LOCAL_VARIABLE:
      stringBuilder.append("LOCAL_VARIABLE");
      break;
    case TypeReference.RESOURCE_VARIABLE:
      stringBuilder.append("RESOURCE_VARIABLE");
      break;
    case TypeReference.EXCEPTION_PARAMETER:
      stringBuilder.append("EXCEPTION_PARAMETER ").append(typeReference.getTryCatchBlockIndex());
      break;
    case TypeReference.INSTANCEOF:
      stringBuilder.append("INSTANCEOF");
      break;
    case TypeReference.NEW:
      stringBuilder.append("NEW");
      break;
    case TypeReference.CONSTRUCTOR_REFERENCE:
      stringBuilder.append("CONSTRUCTOR_REFERENCE");
      break;
    case TypeReference.METHOD_REFERENCE:
      stringBuilder.append("METHOD_REFERENCE");
      break;
    case TypeReference.CAST:
      stringBuilder.append("CAST ").append(typeReference.getTypeArgumentIndex());
      break;
    case TypeReference.CONSTRUCTOR_INVOCATION_TYPE_ARGUMENT:
      stringBuilder
          .append("CONSTRUCTOR_INVOCATION_TYPE_ARGUMENT ")
          .append(typeReference.getTypeArgumentIndex());
      break;
    case TypeReference.METHOD_INVOCATION_TYPE_ARGUMENT:
      stringBuilder
          .append("METHOD_INVOCATION_TYPE_ARGUMENT ")
          .append(typeReference.getTypeArgumentIndex());
      break;
    case TypeReference.CONSTRUCTOR_REFERENCE_TYPE_ARGUMENT:
      stringBuilder
          .append("CONSTRUCTOR_REFERENCE_TYPE_ARGUMENT ")
          .append(typeReference.getTypeArgumentIndex());
      break;
    case TypeReference.METHOD_REFERENCE_TYPE_ARGUMENT:
      stringBuilder
          .append("METHOD_REFERENCE_TYPE_ARGUMENT ")
          .append(typeReference.getTypeArgumentIndex());
      break;
    default:
      throw new IllegalArgumentException();
  }
}
 
源代码11 项目: JReFrameworker   文件: CheckClassAdapter.java
/**
 * Checks the reference to a type in a type annotation.
 *
 * @param typeRef a reference to an annotated type.
 */
static void checkTypeRef(final int typeRef) {
  int mask = 0;
  switch (typeRef >>> 24) {
    case TypeReference.CLASS_TYPE_PARAMETER:
    case TypeReference.METHOD_TYPE_PARAMETER:
    case TypeReference.METHOD_FORMAL_PARAMETER:
      mask = 0xFFFF0000;
      break;
    case TypeReference.FIELD:
    case TypeReference.METHOD_RETURN:
    case TypeReference.METHOD_RECEIVER:
    case TypeReference.LOCAL_VARIABLE:
    case TypeReference.RESOURCE_VARIABLE:
    case TypeReference.INSTANCEOF:
    case TypeReference.NEW:
    case TypeReference.CONSTRUCTOR_REFERENCE:
    case TypeReference.METHOD_REFERENCE:
      mask = 0xFF000000;
      break;
    case TypeReference.CLASS_EXTENDS:
    case TypeReference.CLASS_TYPE_PARAMETER_BOUND:
    case TypeReference.METHOD_TYPE_PARAMETER_BOUND:
    case TypeReference.THROWS:
    case TypeReference.EXCEPTION_PARAMETER:
      mask = 0xFFFFFF00;
      break;
    case TypeReference.CAST:
    case TypeReference.CONSTRUCTOR_INVOCATION_TYPE_ARGUMENT:
    case TypeReference.METHOD_INVOCATION_TYPE_ARGUMENT:
    case TypeReference.CONSTRUCTOR_REFERENCE_TYPE_ARGUMENT:
    case TypeReference.METHOD_REFERENCE_TYPE_ARGUMENT:
      mask = 0xFF0000FF;
      break;
    default:
      throw new AssertionError();
  }
  if ((typeRef & ~mask) != 0) {
    throw new IllegalArgumentException(
        "Invalid type reference 0x" + Integer.toHexString(typeRef));
  }
}
 
源代码12 项目: JReFrameworker   文件: Textifier.java
/**
 * Appends a string representation of the given type reference to {@link #stringBuilder}.
 *
 * @param typeRef a type reference. See {@link TypeReference}.
 */
private void appendTypeReference(final int typeRef) {
  TypeReference typeReference = new TypeReference(typeRef);
  switch (typeReference.getSort()) {
    case TypeReference.CLASS_TYPE_PARAMETER:
      stringBuilder.append("CLASS_TYPE_PARAMETER ").append(typeReference.getTypeParameterIndex());
      break;
    case TypeReference.METHOD_TYPE_PARAMETER:
      stringBuilder
          .append("METHOD_TYPE_PARAMETER ")
          .append(typeReference.getTypeParameterIndex());
      break;
    case TypeReference.CLASS_EXTENDS:
      stringBuilder.append("CLASS_EXTENDS ").append(typeReference.getSuperTypeIndex());
      break;
    case TypeReference.CLASS_TYPE_PARAMETER_BOUND:
      stringBuilder
          .append("CLASS_TYPE_PARAMETER_BOUND ")
          .append(typeReference.getTypeParameterIndex())
          .append(", ")
          .append(typeReference.getTypeParameterBoundIndex());
      break;
    case TypeReference.METHOD_TYPE_PARAMETER_BOUND:
      stringBuilder
          .append("METHOD_TYPE_PARAMETER_BOUND ")
          .append(typeReference.getTypeParameterIndex())
          .append(", ")
          .append(typeReference.getTypeParameterBoundIndex());
      break;
    case TypeReference.FIELD:
      stringBuilder.append("FIELD");
      break;
    case TypeReference.METHOD_RETURN:
      stringBuilder.append("METHOD_RETURN");
      break;
    case TypeReference.METHOD_RECEIVER:
      stringBuilder.append("METHOD_RECEIVER");
      break;
    case TypeReference.METHOD_FORMAL_PARAMETER:
      stringBuilder
          .append("METHOD_FORMAL_PARAMETER ")
          .append(typeReference.getFormalParameterIndex());
      break;
    case TypeReference.THROWS:
      stringBuilder.append("THROWS ").append(typeReference.getExceptionIndex());
      break;
    case TypeReference.LOCAL_VARIABLE:
      stringBuilder.append("LOCAL_VARIABLE");
      break;
    case TypeReference.RESOURCE_VARIABLE:
      stringBuilder.append("RESOURCE_VARIABLE");
      break;
    case TypeReference.EXCEPTION_PARAMETER:
      stringBuilder.append("EXCEPTION_PARAMETER ").append(typeReference.getTryCatchBlockIndex());
      break;
    case TypeReference.INSTANCEOF:
      stringBuilder.append("INSTANCEOF");
      break;
    case TypeReference.NEW:
      stringBuilder.append("NEW");
      break;
    case TypeReference.CONSTRUCTOR_REFERENCE:
      stringBuilder.append("CONSTRUCTOR_REFERENCE");
      break;
    case TypeReference.METHOD_REFERENCE:
      stringBuilder.append("METHOD_REFERENCE");
      break;
    case TypeReference.CAST:
      stringBuilder.append("CAST ").append(typeReference.getTypeArgumentIndex());
      break;
    case TypeReference.CONSTRUCTOR_INVOCATION_TYPE_ARGUMENT:
      stringBuilder
          .append("CONSTRUCTOR_INVOCATION_TYPE_ARGUMENT ")
          .append(typeReference.getTypeArgumentIndex());
      break;
    case TypeReference.METHOD_INVOCATION_TYPE_ARGUMENT:
      stringBuilder
          .append("METHOD_INVOCATION_TYPE_ARGUMENT ")
          .append(typeReference.getTypeArgumentIndex());
      break;
    case TypeReference.CONSTRUCTOR_REFERENCE_TYPE_ARGUMENT:
      stringBuilder
          .append("CONSTRUCTOR_REFERENCE_TYPE_ARGUMENT ")
          .append(typeReference.getTypeArgumentIndex());
      break;
    case TypeReference.METHOD_REFERENCE_TYPE_ARGUMENT:
      stringBuilder
          .append("METHOD_REFERENCE_TYPE_ARGUMENT ")
          .append(typeReference.getTypeArgumentIndex());
      break;
    default:
      throw new IllegalArgumentException();
  }
}