当前位置: 首页>>代码示例>>Java>>正文


Java StringReference类代码示例

本文整理汇总了Java中org.jf.dexlib2.iface.reference.StringReference的典型用法代码示例。如果您正苦于以下问题:Java StringReference类的具体用法?Java StringReference怎么用?Java StringReference使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


StringReference类属于org.jf.dexlib2.iface.reference包,在下文中一共展示了StringReference类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: if

import org.jf.dexlib2.iface.reference.StringReference; //导入依赖的package包/类
public LinkedHashMap<String,BundleListing.BundleInfo>read(String className,String memberName) throws Exception {

        if (reader!= null) {
            Method method = (Method) reader.read(className, memberName);
            if (method!= null){
                Iterable<? extends Instruction> instructions = method.getImplementation().getInstructions();
                for (Instruction instruction:instructions){
                    if (instruction instanceof ReferenceInstruction){
                        if (((ReferenceInstruction) instruction).getReferenceType()== 0){
                            StringReference s = (StringReference) ((ReferenceInstruction) instruction).getReference();
                            return BundleListingUtil.parseArray(s.getString(), (LinkedHashMap<String, BundleListing.BundleInfo>) map);
                        }
                    }
                }
            }
        }
        return null;
    }
 
开发者ID:alibaba,项目名称:atlas,代码行数:19,代码来源:AtlasFrameworkPropertiesReader.java

示例2: writeReference

import org.jf.dexlib2.iface.reference.StringReference; //导入依赖的package包/类
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");
    }
}
 
开发者ID:alibaba,项目名称:atlas,代码行数:20,代码来源:ReferenceFormatter.java

示例3: addRegisterAssignmentDebugInfo

import org.jf.dexlib2.iface.reference.StringReference; //导入依赖的package包/类
private void addRegisterAssignmentDebugInfo(
		LocalRegisterAssignmentInformation registerAssignment, Map<Local, Integer> seenRegisters, MethodImplementationBuilder builder) {
	Local local = registerAssignment.getLocal();
	String dexLocalType = SootToDexUtils.getDexTypeDescriptor(local.getType());
	StringReference localName = dexFile.internStringReference(local.getName());
	Register reg = registerAssignment.getRegister();
	int register = reg.getNumber();
	
	Integer beforeRegister = seenRegisters.get(local);
	if (beforeRegister != null)
	{
		if (beforeRegister == register)
			//No change
			return;
		builder.addEndLocal(beforeRegister);
	}
	builder.addStartLocal(register, localName, dexFile.internTypeReference(dexLocalType), dexFile.internStringReference(""));
	seenRegisters.put(local, register);
}
 
开发者ID:flankerhqd,项目名称:JAADAS,代码行数:20,代码来源:DexPrinter.java

示例4: of

import org.jf.dexlib2.iface.reference.StringReference; //导入依赖的package包/类
@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");
}
 
开发者ID:niranjan94,项目名称:show-java,代码行数:17,代码来源:ImmutableReferenceFactory.java

示例5: internReference

import org.jf.dexlib2.iface.reference.StringReference; //导入依赖的package包/类
@Nonnull
public BuilderReference internReference(@Nonnull Reference reference) {
    if (reference instanceof StringReference) {
        return internStringReference(((StringReference) reference).getString());
    }
    if (reference instanceof TypeReference) {
        return internTypeReference(((TypeReference) reference).getType());
    }
    if (reference instanceof MethodReference) {
        return internMethodReference((MethodReference) reference);
    }
    if (reference instanceof FieldReference) {
        return internFieldReference((FieldReference) reference);
    }
    throw new IllegalArgumentException("Could not determine type of reference");
}
 
开发者ID:niranjan94,项目名称:show-java,代码行数:17,代码来源:DexBuilder.java

示例6: getReferenceString

import org.jf.dexlib2.iface.reference.StringReference; //导入依赖的package包/类
@Nullable
public static String getReferenceString(Reference reference) {
    if (reference instanceof StringReference) {
        return String.format("\"%s\"", StringUtils.escapeString(((StringReference) reference).getString()));
    }
    if (reference instanceof TypeReference) {
        return ((TypeReference) reference).getType();
    }
    if (reference instanceof FieldReference) {
        return getFieldDescriptor((FieldReference) reference);
    }
    if (reference instanceof MethodReference) {
        return getMethodDescriptor((MethodReference) reference);
    }
    return null;
}
 
开发者ID:niranjan94,项目名称:show-java,代码行数:17,代码来源:ReferenceUtil.java

示例7: convertDebugItem

import org.jf.dexlib2.iface.reference.StringReference; //导入依赖的package包/类
@Nonnull
private BuilderDebugItem convertDebugItem(@Nonnull DebugItem debugItem) {
    switch (debugItem.getDebugItemType()) {
        case DebugItemType.START_LOCAL: {
            StartLocal startLocal = (StartLocal) debugItem;
            return new BuilderStartLocal(startLocal.getRegister(),
                    (StringReference) convertReference(startLocal.getNameReference()),
                    (TypeReference) convertReference(startLocal.getTypeReference()),
                    (StringReference) convertReference(startLocal.getSignatureReference()));
        }
        case DebugItemType.END_LOCAL: {
            EndLocal endLocal = (EndLocal) debugItem;
            return new BuilderEndLocal(endLocal.getRegister());
        }
        case DebugItemType.RESTART_LOCAL: {
            RestartLocal restartLocal = (RestartLocal) debugItem;
            return new BuilderRestartLocal(restartLocal.getRegister());
        }
        case DebugItemType.PROLOGUE_END:
            return new BuilderPrologueEnd();
        case DebugItemType.EPILOGUE_BEGIN:
            return new BuilderEpilogueBegin();
        case DebugItemType.LINE_NUMBER: {
            LineNumber lineNumber = (LineNumber) debugItem;
            return new BuilderLineNumber(lineNumber.getLineNumber());
        }
        case DebugItemType.SET_SOURCE_FILE: {
            SetSourceFile setSourceFile = (SetSourceFile) debugItem;
            return new BuilderSetSourceFile(
                    (StringReference) convertReference(setSourceFile.getSourceFileReference())
            );
        }
        default:
            throw new ExceptionWithContext("Invalid debug item type: " + debugItem.getDebugItemType());
    }
}
 
开发者ID:weiwenqiang,项目名称:GitHub,代码行数:37,代码来源:BuilderMutableMethodImplementation.java

示例8: analyze

import org.jf.dexlib2.iface.reference.StringReference; //导入依赖的package包/类
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;
            }
        }
    }
}
 
开发者ID:CalebFenton,项目名称:apkfile,代码行数:36,代码来源:DexMethod.java

示例9: getSourceFileReference

import org.jf.dexlib2.iface.reference.StringReference; //导入依赖的package包/类
@Nullable @Override public StringReference getSourceFileReference() {
    return sourceFile==null?null:new BaseStringReference() {
        @Nonnull @Override public String getString() {
            return sourceFile;
        }
    };
}
 
开发者ID:CvvT,项目名称:andbg,代码行数:8,代码来源:ImmutableSetSourceFile.java

示例10: getNameReference

import org.jf.dexlib2.iface.reference.StringReference; //导入依赖的package包/类
@Nullable @Override public StringReference getNameReference() {
    return name==null?null:new BaseStringReference() {
        @Nonnull @Override public String getString() {
            return name;
        }
    };
}
 
开发者ID:CvvT,项目名称:andbg,代码行数:8,代码来源:ImmutableStartLocal.java

示例11: getSignatureReference

import org.jf.dexlib2.iface.reference.StringReference; //导入依赖的package包/类
@Nullable @Override public StringReference getSignatureReference() {
    return signature==null?null:new BaseStringReference() {
        @Nonnull @Override public String getString() {
            return signature;
        }
    };
}
 
开发者ID:CvvT,项目名称:andbg,代码行数:8,代码来源:ImmutableStartLocal.java

示例12: of

import org.jf.dexlib2.iface.reference.StringReference; //导入依赖的package包/类
@Nonnull
public static ImmutableStringReference of(@Nonnull StringReference stringReference) {
    if (stringReference instanceof ImmutableStringReference) {
        return (ImmutableStringReference)stringReference;
    }
    return new ImmutableStringReference(stringReference.getString());
}
 
开发者ID:CvvT,项目名称:andbg,代码行数:8,代码来源:ImmutableStringReference.java

示例13: equals

import org.jf.dexlib2.iface.reference.StringReference; //导入依赖的package包/类
@Override
public boolean equals(@Nullable Object o) {
    if (o != null && o instanceof StringReference) {
        return getString().equals(((StringReference)o).getString());
    }
    return false;
}
 
开发者ID:CvvT,项目名称:andbg,代码行数:8,代码来源:BaseStringReference.java

示例14: makeInstructionWriter

import org.jf.dexlib2.iface.reference.StringReference; //导入依赖的package包/类
@Nonnull static <StringRef extends StringReference, TypeRef extends TypeReference, FieldRefKey extends FieldReference, MethodRefKey extends MethodReference>
        InstructionWriter<StringRef, TypeRef, FieldRefKey, MethodRefKey>
        makeInstructionWriter(
            @Nonnull DexDataWriter writer,
            @Nonnull StringSection<?, StringRef> stringSection,
            @Nonnull TypeSection<?, ?, TypeRef> typeSection,
            @Nonnull FieldSection<?, ?, FieldRefKey, ?> fieldSection,
            @Nonnull MethodSection<?, ?, ?, MethodRefKey, ?> methodSection) {
    return new InstructionWriter<StringRef, TypeRef, FieldRefKey, MethodRefKey>(
            writer, stringSection, typeSection, fieldSection, methodSection);
}
 
开发者ID:CvvT,项目名称:andbg,代码行数:12,代码来源:InstructionWriter.java

示例15: getItemIndex

import org.jf.dexlib2.iface.reference.StringReference; //导入依赖的package包/类
@Override public int getItemIndex(@Nonnull StringReference key) {
    Integer index = internedItems.get(key.toString());
    if (index == null) {
        throw new ExceptionWithContext("Item not found.: %s", key.toString());
    }
    return index;
}
 
开发者ID:CvvT,项目名称:andbg,代码行数:8,代码来源:StringPool.java


注:本文中的org.jf.dexlib2.iface.reference.StringReference类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。