ImmutableField field = new ImmutableField(classType, f.getName(), SootToDexUtils.getDexTypeDescriptor(f.getType()), f.getModifiers(), staticInit, fieldAnnotations); fields.add(field);
public static ImmutableField of(ImmutableField field){ return ImmutableField.of(field); } }
public ImmutableClassDef(@Nonnull String type, int accessFlags, @Nullable String superclass, @Nullable Collection<String> interfaces, @Nullable String sourceFile, @Nullable Collection<? extends Annotation> annotations, @Nullable Iterable<? extends Field> fields, @Nullable Iterable<? extends Method> methods) { if (fields == null) { fields = ImmutableList.of(); } if (methods == null) { methods = ImmutableList.of(); } this.type = type; this.accessFlags = accessFlags; this.superclass = superclass; this.interfaces = interfaces==null ? ImmutableList.<String>of() : ImmutableList.copyOf(interfaces); this.sourceFile = sourceFile; this.annotations = ImmutableAnnotation.immutableSetOf(annotations); this.staticFields = ImmutableField.immutableSetOf(Iterables.filter(fields, FieldUtil.FIELD_IS_STATIC)); this.instanceFields = ImmutableField.immutableSetOf(Iterables.filter(fields, FieldUtil.FIELD_IS_INSTANCE)); this.directMethods = ImmutableMethod.immutableSetOf(Iterables.filter(methods, MethodUtil.METHOD_IS_DIRECT)); this.virtualMethods = ImmutableMethod.immutableSetOf(Iterables.filter(methods, MethodUtil.METHOD_IS_VIRTUAL)); }
public ImmutableClassDef(@Nonnull String type, int accessFlags, @Nullable String superclass, @Nullable Collection<String> interfaces, @Nullable String sourceFile, @Nullable Collection<? extends Annotation> annotations, @Nullable Iterable<? extends Field> fields, @Nullable Iterable<? extends Method> methods) { if (fields == null) { fields = ImmutableList.of(); } if (methods == null) { methods = ImmutableList.of(); } this.type = type; this.accessFlags = accessFlags; this.superclass = superclass; this.interfaces = interfaces==null ? ImmutableList.<String>of() : ImmutableList.copyOf(interfaces); this.sourceFile = sourceFile; this.annotations = ImmutableAnnotation.immutableSetOf(annotations); this.staticFields = ImmutableField.immutableSetOf(Iterables.filter(fields, FieldUtil.FIELD_IS_STATIC)); this.instanceFields = ImmutableField.immutableSetOf(Iterables.filter(fields, FieldUtil.FIELD_IS_INSTANCE)); this.directMethods = ImmutableMethod.immutableSetOf(Iterables.filter(methods, MethodUtil.METHOD_IS_DIRECT)); this.virtualMethods = ImmutableMethod.immutableSetOf(Iterables.filter(methods, MethodUtil.METHOD_IS_VIRTUAL)); }
public ImmutableField build(){ return new ImmutableField(definingClass,fieldName,valueType,accessFlags,initialValue,annotations); }
@Nonnull @Override protected ImmutableField makeImmutable(@Nonnull Field item) { return ImmutableField.of(item); } };
public ImmutableClassDef(@Nonnull String type, int accessFlags, @Nullable String superclass, @Nullable Collection<String> interfaces, @Nullable String sourceFile, @Nullable Collection<? extends Annotation> annotations, @Nullable Iterable<? extends Field> fields, @Nullable Iterable<? extends Method> methods) { if (fields == null) { fields = ImmutableList.of(); } if (methods == null) { methods = ImmutableList.of(); } this.type = type; this.accessFlags = accessFlags; this.superclass = superclass; this.interfaces = interfaces==null ? ImmutableSet.<String>of() : ImmutableSet.copyOf(interfaces); this.sourceFile = sourceFile; this.annotations = ImmutableAnnotation.immutableSetOf(annotations); this.staticFields = ImmutableField.immutableSetOf(Iterables.filter(fields, FieldUtil.FIELD_IS_STATIC)); this.instanceFields = ImmutableField.immutableSetOf(Iterables.filter(fields, FieldUtil.FIELD_IS_INSTANCE)); this.directMethods = ImmutableMethod.immutableSetOf(Iterables.filter(methods, MethodUtil.METHOD_IS_DIRECT)); this.virtualMethods = ImmutableMethod.immutableSetOf(Iterables.filter(methods, MethodUtil.METHOD_IS_VIRTUAL)); }
public static ImmutableField of(Field field) { if (field instanceof ImmutableField) { return (ImmutableField)field; } return new ImmutableField( field.getDefiningClass(), field.getName(), field.getType(), field.getAccessFlags(), field.getInitialValue(), field.getAnnotations()); }
@Nonnull @Override protected ImmutableField makeImmutable(@Nonnull Field item) { return ImmutableField.of(item); } };
this.sourceFile = sourceFile; this.annotations = ImmutableAnnotation.immutableSetOf(annotations); this.staticFields = ImmutableField.immutableSetOf(staticFields); this.instanceFields = ImmutableField.immutableSetOf(instanceFields); this.directMethods = ImmutableMethod.immutableSetOf(directMethods); this.virtualMethods = ImmutableMethod.immutableSetOf(virtualMethods);
public static ImmutableField of(Field field) { if (field instanceof ImmutableField) { return (ImmutableField)field; } return new ImmutableField( field.getDefiningClass(), field.getName(), field.getType(), field.getAccessFlags(), field.getInitialValue(), field.getAnnotations()); }
@Nonnull @Override protected ImmutableField makeImmutable(@Nonnull Field item) { return ImmutableField.of(item); } };
this.sourceFile = sourceFile; this.annotations = ImmutableAnnotation.immutableSetOf(annotations); this.staticFields = ImmutableField.immutableSetOf(staticFields); this.instanceFields = ImmutableField.immutableSetOf(instanceFields); this.directMethods = ImmutableMethod.immutableSetOf(directMethods); this.virtualMethods = ImmutableMethod.immutableSetOf(virtualMethods);
public static ImmutableField of(Field field) { if (field instanceof ImmutableField) { return (ImmutableField)field; } return new ImmutableField( field.getDefiningClass(), field.getName(), field.getType(), field.getAccessFlags(), field.getInitialValue(), field.getAnnotations()); }
this.sourceFile = sourceFile; this.annotations = ImmutableAnnotation.immutableSetOf(annotations); this.staticFields = ImmutableField.immutableSetOf(staticFields); this.instanceFields = ImmutableField.immutableSetOf(instanceFields); this.directMethods = ImmutableMethod.immutableSetOf(directMethods); this.virtualMethods = ImmutableMethod.immutableSetOf(virtualMethods);
@Override protected Field reField(Field field) { String name = field.getName(); String newType; boolean isBasic = false; boolean isArray = false; if (field.getType().startsWith("[")) { isArray = true; } if (basicType.containsKey(field.getType())) { newType = field.getType(); isBasic = true; } else { newType = DefineUtils.getDalvikClassName(field.getType()); } String defineClass = DefineUtils.getDalvikClassName(field.getDefiningClass()); return new ImmutableField( reType, classProcessor.filedProcess(defineClass, isBasic ? basicType.get(newType) : newType + (isArray ? "[]" : ""), name).fieldName, isBasic ? newType : DefineUtils.getDefineClassName(classProcessor.classProcess(isBasic ? basicType.get(newType) : newType).className, isArray), field.getAccessFlags(), field.getInitialValue(), getAnnotation(field.getAnnotations())); }
Lists.newArrayList(new ImmutableAnnotation(AnnotationVisibility.RUNTIME, "Lannotation;", null)), Lists.<Field>newArrayList( new ImmutableField("Lcls1;", "field1", "I", AccessFlags.PUBLIC.getValue(), null, null) ), Lists.<Method>newArrayList( Lists.newArrayList(new ImmutableAnnotation(AnnotationVisibility.RUNTIME, "Lannotation2;", null)), Lists.<Field>newArrayList( new ImmutableField("Lcls2;", "field2", "D", AccessFlags.PUBLIC.getValue(), null, null) ), Lists.<Method>newArrayList(