本文整理汇总了Java中org.jf.dexlib2.ReferenceType.TYPE属性的典型用法代码示例。如果您正苦于以下问题:Java ReferenceType.TYPE属性的具体用法?Java ReferenceType.TYPE怎么用?Java ReferenceType.TYPE使用的例子?那么, 这里精选的属性代码示例或许可以为您提供帮助。您也可以进一步了解该属性所在类org.jf.dexlib2.ReferenceType
的用法示例。
在下文中一共展示了ReferenceType.TYPE属性的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: writeReference
public static void writeReference(IndentingWriter writer, int referenceType,
Reference reference) throws IOException {
switch (referenceType) {
case ReferenceType.STRING:
writeStringReference(writer, ((StringReference)reference).getString());
return;
case ReferenceType.TYPE:
writer.write(((TypeReference)reference).getType());
return;
case ReferenceType.METHOD:
ReferenceUtil.writeMethodDescriptor(writer, (MethodReference) reference);
return;
case ReferenceType.FIELD:
ReferenceUtil.writeFieldDescriptor(writer, (FieldReference)reference);
return;
default:
throw new IllegalStateException("Unknown reference type");
}
}
示例2: writeReference
public static void writeReference(IndentingWriter writer, int referenceType,
Reference reference) throws IOException {
switch (referenceType) {
case ReferenceType.STRING:
writeStringReference(writer, ((StringReference)reference).getString());
return;
case ReferenceType.TYPE:
writer.write(((TypeReference)reference).getType());
return;
case ReferenceType.METHOD:
ReferenceUtil.writeMethodDescriptor(writer, (MethodReference)reference);
return;
case ReferenceType.FIELD:
ReferenceUtil.writeFieldDescriptor(writer, (FieldReference)reference);
return;
default:
throw new IllegalStateException("Unknown reference type");
}
}
示例3: getReferenceIndex
private int getReferenceIndex(int referenceType, Reference reference) {
switch (referenceType) {
case ReferenceType.FIELD:
return fieldSection.getItemIndex((FieldRefKey) reference);
case ReferenceType.METHOD:
return methodSection.getItemIndex((MethodRefKey) reference);
case ReferenceType.STRING:
return stringSection.getItemIndex((StringRef) reference);
case ReferenceType.TYPE:
return typeSection.getItemIndex((TypeRef) reference);
case ReferenceType.METHOD_PROTO:
return protoSection.getItemIndex((ProtoRefKey) reference);
default:
throw new ExceptionWithContext("Unknown reference type: %d", referenceType);
}
}
示例4: makeReference
public static Reference makeReference( DexBackedDexFile dexFile, int referenceType, int referenceIndex) {
switch (referenceType) {
case ReferenceType.STRING:
return new DexBackedStringReference(dexFile, referenceIndex);
case ReferenceType.TYPE:
return new DexBackedTypeReference(dexFile, referenceIndex);
case ReferenceType.METHOD:
return new DexBackedMethodReference(dexFile, referenceIndex);
case ReferenceType.FIELD:
return new DexBackedFieldReference(dexFile, referenceIndex);
case ReferenceType.METHOD_PROTO:
return new DexBackedMethodProtoReference(dexFile, referenceIndex);
default:
throw new ExceptionWithContext("Invalid reference type: %d", referenceType);
}
}
示例5: getReference
@Override
@Nonnull
public Reference getReference() {
switch (getReferenceType()) {
case ReferenceType.TYPE:
return RewriterUtils.rewriteTypeReference(rewriters.getTypeRewriter(),
(TypeReference) instruction.getReference());
case ReferenceType.FIELD:
return rewriters.getFieldReferenceRewriter().rewrite((FieldReference) instruction.getReference());
case ReferenceType.METHOD:
return rewriters.getMethodReferenceRewriter().rewrite((MethodReference) instruction.getReference());
case ReferenceType.STRING:
return instruction.getReference();
default:
throw new IllegalArgumentException();
}
}
示例6: of
@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);
}
示例7: getReferenceIndex
private int getReferenceIndex(ReferenceInstruction referenceInstruction) {
switch (referenceInstruction.getOpcode().referenceType) {
case ReferenceType.FIELD:
return fieldSection.getItemIndex((FieldRefKey)referenceInstruction.getReference());
case ReferenceType.METHOD:
return methodSection.getItemIndex((MethodRefKey)referenceInstruction.getReference());
case ReferenceType.STRING:
return stringSection.getItemIndex((StringRef)referenceInstruction.getReference());
case ReferenceType.TYPE:
return typeSection.getItemIndex((TypeRef)referenceInstruction.getReference());
default:
throw new ExceptionWithContext("Unknown reference type: %d",
referenceInstruction.getOpcode().referenceType);
}
}
示例8: getReference
@Override @Nonnull public Reference getReference() {
switch (getReferenceType()) {
case ReferenceType.TYPE:
return RewriterUtils.rewriteTypeReference(rewriters.getTypeRewriter(),
(TypeReference)instruction.getReference());
case ReferenceType.FIELD:
return rewriters.getFieldReferenceRewriter().rewrite((FieldReference)instruction.getReference());
case ReferenceType.METHOD:
return rewriters.getMethodReferenceRewriter().rewrite((MethodReference)instruction.getReference());
case ReferenceType.STRING:
return instruction.getReference();
default:
throw new IllegalArgumentException();
}
}
示例9: makeReference
public static Reference makeReference(@Nonnull DexBackedDexFile dexFile, int referenceType, int referenceIndex) {
switch (referenceType) {
case ReferenceType.STRING:
return new DexBackedStringReference(dexFile, referenceIndex);
case ReferenceType.TYPE:
return new DexBackedTypeReference(dexFile, referenceIndex);
case ReferenceType.METHOD:
return new DexBackedMethodReference(dexFile, referenceIndex);
case ReferenceType.FIELD:
return new DexBackedFieldReference(dexFile, referenceIndex);
default:
throw new ExceptionWithContext("Invalid reference type: %d", referenceType);
}
}
示例10: checkReference
public static <T extends Reference> T checkReference(int referenceType, T reference) {
switch (referenceType) {
case ReferenceType.STRING:
if (!(reference instanceof StringReference)) {
throw new IllegalArgumentException("Invalid reference type, expecting a string reference");
}
break;
case ReferenceType.TYPE:
if (!(reference instanceof TypeReference)) {
throw new IllegalArgumentException("Invalid reference type, expecting a type reference");
}
break;
case ReferenceType.FIELD:
if (!(reference instanceof FieldReference)) {
throw new IllegalArgumentException("Invalid reference type, expecting a field reference");
}
break;
case ReferenceType.METHOD:
if (!(reference instanceof MethodReference)) {
throw new IllegalArgumentException("Invalid reference type, expecting a method reference");
}
break;
default:
throw new IllegalArgumentException(String.format("Not a valid reference type: %d", referenceType));
}
return reference;
}
示例11: of
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);
}
throw new ExceptionWithContext("Invalid reference type: %d", referenceType);
}
示例12: getReference
@Override public Reference getReference() {
switch (getReferenceType()) {
case ReferenceType.TYPE:
return RewriterUtils.rewriteTypeReference(rewriters.getTypeRewriter(),
(TypeReference)instruction.getReference());
case ReferenceType.FIELD:
return rewriters.getFieldReferenceRewriter().rewrite((FieldReference)instruction.getReference());
case ReferenceType.METHOD:
return rewriters.getMethodReferenceRewriter().rewrite((MethodReference)instruction.getReference());
case ReferenceType.STRING:
return instruction.getReference();
default:
throw new IllegalArgumentException();
}
}
示例13: getReferences
public List<? extends Reference> getReferences(int referenceType) {
switch (referenceType) {
case ReferenceType.STRING:
return getStrings();
case ReferenceType.TYPE:
return getTypes();
case ReferenceType.METHOD:
return getMethods();
case ReferenceType.FIELD:
return getFields();
default:
throw new IllegalArgumentException(String.format("Invalid reference type: %d", referenceType));
}
}
示例14: of
@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);
}
示例15: internCode
private void internCode(@Nonnull Method method) {
// this also handles parameter names, which aren't directly tied to the MethodImplementation, even though the debug items are
boolean hasInstruction = false;
MethodImplementation methodImpl = method.getImplementation();
if (methodImpl != null) {
for (Instruction instruction: methodImpl.getInstructions()) {
hasInstruction = true;
if (instruction instanceof ReferenceInstruction) {
Reference reference = ((ReferenceInstruction)instruction).getReference();
switch (instruction.getOpcode().referenceType) {
case ReferenceType.STRING:
stringPool.intern((StringReference)reference);
break;
case ReferenceType.TYPE:
typePool.intern((TypeReference)reference);
break;
case ReferenceType.FIELD:
fieldPool.intern((FieldReference) reference);
break;
case ReferenceType.METHOD:
methodPool.intern((MethodReference)reference);
break;
default:
throw new ExceptionWithContext("Unrecognized reference type: %d",
instruction.getOpcode().referenceType);
}
}
}
List<? extends TryBlock> tryBlocks = methodImpl.getTryBlocks();
if (!hasInstruction && tryBlocks.size() > 0) {
throw new ExceptionWithContext("Method %s has no instructions, but has try blocks.",
ReferenceUtil.getMethodDescriptor(method));
}
for (TryBlock<? extends ExceptionHandler> tryBlock: methodImpl.getTryBlocks()) {
for (ExceptionHandler handler: tryBlock.getExceptionHandlers()) {
typePool.internNullable(handler.getExceptionType());
}
}
}
}