Package proguard.util

Interface Processable

All Superinterfaces:
Serializable
All Known Subinterfaces:
Clazz, Field, Member, Method
All Known Implementing Classes:
Annotation, AnnotationDefaultAttribute, AnnotationElementValue, AnnotationsAttribute, AnyMethodrefConstant, ArrayElementValue, Attribute, BootstrapMethodInfo, BootstrapMethodsAttribute, ClassConstant, ClassElementValue, CodeAttribute, Constant, ConstantElementValue, ConstantValueAttribute, DeprecatedAttribute, DoubleConstant, DoubleType, DynamicConstant, ElementValue, EnclosingMethodAttribute, EnumConstantElementValue, ExceptionInfo, ExceptionsAttribute, ExportsInfo, FieldrefConstant, FloatConstant, FloatType, FullFrame, InnerClassesAttribute, InnerClassesInfo, IntegerConstant, IntegerType, InterfaceMethodrefConstant, InvokeDynamicConstant, KotlinAnnotation, KotlinAnnotationArgument, KotlinClassKindMetadata, KotlinConstructorMetadata, KotlinContractMetadata, KotlinDeclarationContainerMetadata, KotlinEffectExpressionMetadata, KotlinEffectMetadata, KotlinEnumEntryMetadata, KotlinFileFacadeKindMetadata, KotlinFunctionMetadata, KotlinMetadata, KotlinModule, KotlinMultiFileFacadeKindMetadata, KotlinMultiFilePartKindMetadata, KotlinPropertyAccessorMetadata, KotlinPropertyMetadata, KotlinSyntheticClassKindMetadata, KotlinTypeAliasMetadata, KotlinTypeMetadata, KotlinTypeParameterMetadata, KotlinValueParameterMetadata, KotlinVersionRequirementMetadata, LessZeroFrame, LibraryClass, LibraryField, LibraryMember, LibraryMethod, LineNumberTableAttribute, LocalVariableInfo, LocalVariableTableAttribute, LocalVariableTypeInfo, LocalVariableTypeTableAttribute, LongConstant, LongType, MethodHandleConstant, MethodParametersAttribute, MethodrefConstant, MethodTypeConstant, ModuleAttribute, ModuleConstant, ModuleMainClassAttribute, ModulePackagesAttribute, MoreZeroFrame, NameAndTypeConstant, NestHostAttribute, NestMembersAttribute, NullType, ObjectType, OpensInfo, PackageConstant, ParameterAnnotationsAttribute, ParameterInfo, PermittedSubclassesAttribute, PrimitiveArrayConstant, ProgramClass, ProgramField, ProgramMember, ProgramMethod, ProvidesInfo, RecordAttribute, RecordComponentInfo, RefConstant, RequiresInfo, ResourceFile, RuntimeInvisibleAnnotationsAttribute, RuntimeInvisibleParameterAnnotationsAttribute, RuntimeInvisibleTypeAnnotationsAttribute, RuntimeVisibleAnnotationsAttribute, RuntimeVisibleParameterAnnotationsAttribute, RuntimeVisibleTypeAnnotationsAttribute, SameOneFrame, SameZeroFrame, SignatureAttribute, SimpleFeatureNamedProcessable, SimpleProcessable, SourceDebugExtensionAttribute, SourceDirAttribute, SourceFileAttribute, StackMapAttribute, StackMapFrame, StackMapTableAttribute, StringConstant, SyntheticAttribute, TopType, TypeAnnotation, TypeAnnotationsAttribute, UninitializedThisType, UninitializedType, UnknownAttribute, UnsupportedKotlinMetadata, Utf8Constant, VerificationType

public interface Processable extends Serializable
Base interface for entities that need flags and/or additional information when they are processed, typically by visitor classes.

The processing flags provide simple boolean markers. In ProGuard, they mark entities to be kept across processing steps, for example.

The processing info provides any more general information. In ProGuard, the contain relatively short-lived information inside processing steps.

  • Method Details

    • setProcessingFlags

      void setProcessingFlags(int processingFlags)
      Sets the processing flags.
    • getProcessingFlags

      int getProcessingFlags()
      Returns the processing flags.
    • addProcessingFlags

      void addProcessingFlags(int... flags)
      Adds all given flags to this processable.
    • removeProcessingFlags

      void removeProcessingFlags(int... flags)
      Removes all given flags from this processable.
    • hasProcessingFlags

      boolean hasProcessingFlags(int... flags)
      Checks whether all the given flags are set on this processable.
    • setProcessingInfo

      void setProcessingInfo(Object processingInfo)
      Sets the processing information.
    • getProcessingInfo

      Object getProcessingInfo()
      Gets the processing information.
    • accept

      default void accept(ProcessableVisitor processableVisitor)
      Accepts the given processable visitor.