本文整理汇总了Java中org.jf.dexlib2.iface.reference.StringReference类的典型用法代码示例。如果您正苦于以下问题:Java StringReference类的具体用法?Java StringReference怎么用?Java StringReference使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
StringReference类属于org.jf.dexlib2.iface.reference包,在下文中一共展示了StringReference类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的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
示例16: checkStringReference
import org.jf.dexlib2.iface.reference.StringReference; //导入依赖的package包/类
@Nullable private BuilderStringReference checkStringReference(@Nullable StringReference stringReference) {
if (stringReference == null) {
return null;
}
try {
return (BuilderStringReference)stringReference;
} catch (ClassCastException ex) {
throw new IllegalStateException("Only StringReference instances returned by " +
"DexBuilder.internStringReference or DexBuilder.internNullableStringReference may be used.");
}
}
开发者ID:CvvT,项目名称:andbg,代码行数:12,代码来源:BuilderClassPool.java
示例17: BuilderStartLocal
import org.jf.dexlib2.iface.reference.StringReference; //导入依赖的package包/类
public BuilderStartLocal(int register,
@Nullable StringReference name,
@Nullable TypeReference type,
@Nullable StringReference signature) {
this.register = register;
this.name = name;
this.type = type;
this.signature = signature;
}
开发者ID:CvvT,项目名称:andbg,代码行数:10,代码来源:BuilderStartLocal.java
示例18: getSourceFileReference
import org.jf.dexlib2.iface.reference.StringReference; //导入依赖的package包/类
@Override public StringReference getSourceFileReference() {
return sourceFile==null?null:new BaseStringReference() {
@Override public String getString() {
return sourceFile;
}
};
}
开发者ID:AndreJCL,项目名称:JCL,代码行数:8,代码来源:ImmutableSetSourceFile.java
示例19: getNameReference
import org.jf.dexlib2.iface.reference.StringReference; //导入依赖的package包/类
@Override public StringReference getNameReference() {
return name==null?null:new BaseStringReference() {
@Override public String getString() {
return name;
}
};
}
开发者ID:AndreJCL,项目名称:JCL,代码行数:8,代码来源:ImmutableStartLocal.java
示例20: getSignatureReference
import org.jf.dexlib2.iface.reference.StringReference; //导入依赖的package包/类
@Override public StringReference getSignatureReference() {
return signature==null?null:new BaseStringReference() {
@Override public String getString() {
return signature;
}
};
}
开发者ID:AndreJCL,项目名称:JCL,代码行数:8,代码来源:ImmutableStartLocal.java
注:本文中的org.jf.dexlib2.iface.reference.StringReference类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论