本文整理汇总了Java中org.jf.dexlib2.ReferenceType.STRING属性的典型用法代码示例。如果您正苦于以下问题:Java ReferenceType.STRING属性的具体用法?Java ReferenceType.STRING怎么用?Java ReferenceType.STRING使用的例子?那么, 这里精选的属性代码示例或许可以为您提供帮助。您也可以进一步了解该属性所在类org.jf.dexlib2.ReferenceType
的用法示例。
在下文中一共展示了ReferenceType.STRING属性的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: analyze
private void analyze(@Nonnull DexBackedMethodImplementation implementation) {
cyclomaticComplexity = calculateComplexity(implementation);
registerCount = implementation.getRegisterCount();
tryCatchCount = implementation.getTryBlocks().size();
debugItemCount = Utils.makeCollection(implementation.getDebugItems()).size();
for (Instruction instruction : implementation.getInstructions()) {
instructionCount++;
Opcode op = instruction.getOpcode();
opCounts.adjustOrPutValue(op, 1, 1);
if (instruction instanceof ReferenceInstruction) {
ReferenceInstruction refInstr = (ReferenceInstruction) instruction;
switch (op.referenceType) {
case ReferenceType.METHOD:
MethodReference methodRef = (MethodReference) refInstr.getReference();
if (fullMethodSignatures) {
apiCounts.adjustOrPutValue(methodRef, 1, 1);
} else {
ShortMethodReference shortMethodRef = new ShortMethodReference(methodRef);
apiCounts.adjustOrPutValue(shortMethodRef, 1, 1);
}
break;
case ReferenceType.FIELD:
FieldReference fieldRef = (FieldReference) refInstr.getReference();
fieldReferenceCounts.adjustOrPutValue(fieldRef, 1, 1);
break;
case ReferenceType.STRING:
StringReference stringRef = (StringReference) refInstr.getReference();
stringReferenceCounts.adjustOrPutValue(stringRef, 1, 1);
break;
}
}
}
}
示例7: 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);
}
示例8: 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);
}
}
示例9: 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();
}
}
示例10: 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);
}
}
示例11: 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;
}
示例12: 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);
}
示例13: 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();
}
}
示例14: 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));
}
}
示例15: 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);
}