private Set<Annotation> buildMethodAnnotations(SootMethod m) { Set<String> skipList = new HashSet<String>(); Set<Annotation> annotations = buildCommonAnnotations(m, skipList); for (Tag t : m.getTags()) { if (t.getName().equals("VisibilityAnnotationTag")) { List<ImmutableAnnotation> visibilityItems = buildVisibilityAnnotationTag((VisibilityAnnotationTag) t, skipList); annotations.addAll(visibilityItems); } } List<SootClass> exceptionList = m.getExceptionsUnsafe(); if (exceptionList != null && !exceptionList.isEmpty()) { List<ImmutableEncodedValue> valueList = new ArrayList<ImmutableEncodedValue>(exceptionList.size()); for (SootClass exceptionClass : exceptionList) { valueList.add(new ImmutableTypeEncodedValue(DexType.toDalvikICAT(exceptionClass.getName()).replace(".", "/"))); } ImmutableArrayEncodedValue valueValue = new ImmutableArrayEncodedValue(valueList); ImmutableAnnotationElement valueElement = new ImmutableAnnotationElement("value", valueValue); Set<ImmutableAnnotationElement> elements = Collections.singleton(valueElement); ImmutableAnnotation ann = new ImmutableAnnotation(AnnotationVisibility.SYSTEM, "Ldalvik/annotation/Throws;", elements); annotations.add(ann); } return annotations; }
return ImmutableStringEncodedValue.of((StringEncodedValue)encodedValue); case ValueType.TYPE: return ImmutableTypeEncodedValue.of((TypeEncodedValue)encodedValue); case ValueType.FIELD: return ImmutableFieldEncodedValue.of((FieldEncodedValue)encodedValue);
return ImmutableStringEncodedValue.of((StringEncodedValue)encodedValue); case ValueType.TYPE: return ImmutableTypeEncodedValue.of((TypeEncodedValue)encodedValue); case ValueType.FIELD: return ImmutableFieldEncodedValue.of((FieldEncodedValue)encodedValue);
List<EncodedValue> classes = new ArrayList<EncodedValue>(); for (String memberClass : memberClasses) { ImmutableTypeEncodedValue classValue = new ImmutableTypeEncodedValue(memberClass); classes.add(classValue);
return ImmutableStringEncodedValue.of((StringEncodedValue)encodedValue); case ValueType.TYPE: return ImmutableTypeEncodedValue.of((TypeEncodedValue)encodedValue); case ValueType.FIELD: return ImmutableFieldEncodedValue.of((FieldEncodedValue)encodedValue);
new ImmutableTypeEncodedValue(SootToDexUtils.getDexClassName(c.getOuterClass().getName()))); annotations.add(new ImmutableAnnotation(AnnotationVisibility.SYSTEM, "Ldalvik/annotation/EnclosingClass;", Collections.singleton(enclosingElement)));
return new ImmutableTypeEncodedValue(e.getDesc());
state._fsp--; encodedValue = new ImmutableTypeEncodedValue(type_descriptor33);
public static ImmutableTypeEncodedValue of(@Nonnull TypeEncodedValue typeEncodedValue) { if (typeEncodedValue instanceof ImmutableTypeEncodedValue) { return (ImmutableTypeEncodedValue)typeEncodedValue; } return new ImmutableTypeEncodedValue(typeEncodedValue.getValue()); }
public static ImmutableTypeEncodedValue of(@Nonnull TypeEncodedValue typeEncodedValue) { if (typeEncodedValue instanceof ImmutableTypeEncodedValue) { return (ImmutableTypeEncodedValue)typeEncodedValue; } return new ImmutableTypeEncodedValue(typeEncodedValue.getValue()); }
public static ImmutableTypeEncodedValue of(@Nonnull TypeEncodedValue typeEncodedValue) { if (typeEncodedValue instanceof ImmutableTypeEncodedValue) { return (ImmutableTypeEncodedValue)typeEncodedValue; } return new ImmutableTypeEncodedValue(typeEncodedValue.getValue()); }
newValueSub = DefineUtils.getDefineClassName(classProcessor.classProcess(DefineUtils.getDalvikClassName(value)).className, isArray2); ImmutableTypeEncodedValue immutableTypeEncodedValue = new ImmutableTypeEncodedValue(newValueSub); lists.add(immutableTypeEncodedValue); newValueSub = DefineUtils.getDefineClassName(classProcessor.classProcess(DefineUtils.getDalvikClassName(value)).className, isArray2); ImmutableTypeEncodedValue immutableTypeEncodedValue = new ImmutableTypeEncodedValue(newValueSub); ImmutableAnnotationElement immutableAnnotationElement = new ImmutableAnnotationElement(name, immutableTypeEncodedValue); newAnnotationElement.add(immutableAnnotationElement);
newValueSub = DefineUtils.getDefineClassName(classProcessor.classProcess(DefineUtils.getDalvikClassName(value)).className, isArray2); ImmutableTypeEncodedValue immutableTypeEncodedValue = new ImmutableTypeEncodedValue(newValueSub); lists.add(immutableTypeEncodedValue); newValue = DefineUtils.getDefineClassName(classProcessor.classProcess(DefineUtils.getDalvikClassName(value)).className, isArray2); ImmutableTypeEncodedValue immutableTypeEncodedValue = new ImmutableTypeEncodedValue(newValue); ImmutableAnnotationElement immutableAnnotationElement = new ImmutableAnnotationElement(name, immutableTypeEncodedValue);
state._fsp--; encodedValue = new ImmutableTypeEncodedValue(type_descriptor33);
state._fsp--; encodedValue = new ImmutableTypeEncodedValue(type_descriptor33);