Class ClassPool

  • All Implemented Interfaces:
    ClassSection<java.lang.CharSequence,​java.lang.CharSequence,​TypeListPool.Key<? extends java.util.Collection<? extends java.lang.CharSequence>>,​org.jf.dexlib2.writer.pool.PoolClassDef,​Field,​org.jf.dexlib2.writer.pool.PoolMethod,​java.util.Set<? extends Annotation>,​ArrayEncodedValue>, IndexSection<org.jf.dexlib2.writer.pool.PoolClassDef>, Markable

    public class ClassPool
    extends BasePool<java.lang.String,​org.jf.dexlib2.writer.pool.PoolClassDef>
    implements ClassSection<java.lang.CharSequence,​java.lang.CharSequence,​TypeListPool.Key<? extends java.util.Collection<? extends java.lang.CharSequence>>,​org.jf.dexlib2.writer.pool.PoolClassDef,​Field,​org.jf.dexlib2.writer.pool.PoolMethod,​java.util.Set<? extends Annotation>,​ArrayEncodedValue>
    • Constructor Detail

      • ClassPool

        public ClassPool​(@Nonnull
                         DexPool dexPool)
    • Method Detail

      • intern

        public void intern​(@Nonnull
                           ClassDef classDef)
      • getSortedClasses

        @Nonnull
        public java.util.Collection<? extends org.jf.dexlib2.writer.pool.PoolClassDef> getSortedClasses()
        Specified by:
        getSortedClasses in interface ClassSection<java.lang.CharSequence,​java.lang.CharSequence,​TypeListPool.Key<? extends java.util.Collection<? extends java.lang.CharSequence>>,​org.jf.dexlib2.writer.pool.PoolClassDef,​Field,​org.jf.dexlib2.writer.pool.PoolMethod,​java.util.Set<? extends Annotation>,​ArrayEncodedValue>
      • getClassEntryByType

        @Nullable
        public java.util.Map.Entry<? extends org.jf.dexlib2.writer.pool.PoolClassDef,​java.lang.Integer> getClassEntryByType​(@Nullable
                                                                                                                                  java.lang.CharSequence name)
        Specified by:
        getClassEntryByType in interface ClassSection<java.lang.CharSequence,​java.lang.CharSequence,​TypeListPool.Key<? extends java.util.Collection<? extends java.lang.CharSequence>>,​org.jf.dexlib2.writer.pool.PoolClassDef,​Field,​org.jf.dexlib2.writer.pool.PoolMethod,​java.util.Set<? extends Annotation>,​ArrayEncodedValue>
      • getType

        @Nonnull
        public java.lang.CharSequence getType​(@Nonnull
                                              org.jf.dexlib2.writer.pool.PoolClassDef classDef)
        Specified by:
        getType in interface ClassSection<java.lang.CharSequence,​java.lang.CharSequence,​TypeListPool.Key<? extends java.util.Collection<? extends java.lang.CharSequence>>,​org.jf.dexlib2.writer.pool.PoolClassDef,​Field,​org.jf.dexlib2.writer.pool.PoolMethod,​java.util.Set<? extends Annotation>,​ArrayEncodedValue>
      • getAccessFlags

        public int getAccessFlags​(@Nonnull
                                  org.jf.dexlib2.writer.pool.PoolClassDef classDef)
        Specified by:
        getAccessFlags in interface ClassSection<java.lang.CharSequence,​java.lang.CharSequence,​TypeListPool.Key<? extends java.util.Collection<? extends java.lang.CharSequence>>,​org.jf.dexlib2.writer.pool.PoolClassDef,​Field,​org.jf.dexlib2.writer.pool.PoolMethod,​java.util.Set<? extends Annotation>,​ArrayEncodedValue>
      • getSuperclass

        @Nullable
        public java.lang.CharSequence getSuperclass​(@Nonnull
                                                    org.jf.dexlib2.writer.pool.PoolClassDef classDef)
        Specified by:
        getSuperclass in interface ClassSection<java.lang.CharSequence,​java.lang.CharSequence,​TypeListPool.Key<? extends java.util.Collection<? extends java.lang.CharSequence>>,​org.jf.dexlib2.writer.pool.PoolClassDef,​Field,​org.jf.dexlib2.writer.pool.PoolMethod,​java.util.Set<? extends Annotation>,​ArrayEncodedValue>
      • getInterfaces

        @Nullable
        public TypeListPool.Key<java.util.List<java.lang.String>> getInterfaces​(@Nonnull
                                                                                org.jf.dexlib2.writer.pool.PoolClassDef classDef)
        Specified by:
        getInterfaces in interface ClassSection<java.lang.CharSequence,​java.lang.CharSequence,​TypeListPool.Key<? extends java.util.Collection<? extends java.lang.CharSequence>>,​org.jf.dexlib2.writer.pool.PoolClassDef,​Field,​org.jf.dexlib2.writer.pool.PoolMethod,​java.util.Set<? extends Annotation>,​ArrayEncodedValue>
      • getSourceFile

        @Nullable
        public java.lang.CharSequence getSourceFile​(@Nonnull
                                                    org.jf.dexlib2.writer.pool.PoolClassDef classDef)
        Specified by:
        getSourceFile in interface ClassSection<java.lang.CharSequence,​java.lang.CharSequence,​TypeListPool.Key<? extends java.util.Collection<? extends java.lang.CharSequence>>,​org.jf.dexlib2.writer.pool.PoolClassDef,​Field,​org.jf.dexlib2.writer.pool.PoolMethod,​java.util.Set<? extends Annotation>,​ArrayEncodedValue>
      • getStaticInitializers

        @Nullable
        public ArrayEncodedValue getStaticInitializers​(@Nonnull
                                                       org.jf.dexlib2.writer.pool.PoolClassDef classDef)
        Specified by:
        getStaticInitializers in interface ClassSection<java.lang.CharSequence,​java.lang.CharSequence,​TypeListPool.Key<? extends java.util.Collection<? extends java.lang.CharSequence>>,​org.jf.dexlib2.writer.pool.PoolClassDef,​Field,​org.jf.dexlib2.writer.pool.PoolMethod,​java.util.Set<? extends Annotation>,​ArrayEncodedValue>
      • getSortedStaticFields

        @Nonnull
        public java.util.Collection<? extends Field> getSortedStaticFields​(@Nonnull
                                                                           org.jf.dexlib2.writer.pool.PoolClassDef classDef)
        Specified by:
        getSortedStaticFields in interface ClassSection<java.lang.CharSequence,​java.lang.CharSequence,​TypeListPool.Key<? extends java.util.Collection<? extends java.lang.CharSequence>>,​org.jf.dexlib2.writer.pool.PoolClassDef,​Field,​org.jf.dexlib2.writer.pool.PoolMethod,​java.util.Set<? extends Annotation>,​ArrayEncodedValue>
      • getSortedInstanceFields

        @Nonnull
        public java.util.Collection<? extends Field> getSortedInstanceFields​(@Nonnull
                                                                             org.jf.dexlib2.writer.pool.PoolClassDef classDef)
        Specified by:
        getSortedInstanceFields in interface ClassSection<java.lang.CharSequence,​java.lang.CharSequence,​TypeListPool.Key<? extends java.util.Collection<? extends java.lang.CharSequence>>,​org.jf.dexlib2.writer.pool.PoolClassDef,​Field,​org.jf.dexlib2.writer.pool.PoolMethod,​java.util.Set<? extends Annotation>,​ArrayEncodedValue>
      • getSortedFields

        @Nonnull
        public java.util.Collection<? extends Field> getSortedFields​(@Nonnull
                                                                     org.jf.dexlib2.writer.pool.PoolClassDef classDef)
        Specified by:
        getSortedFields in interface ClassSection<java.lang.CharSequence,​java.lang.CharSequence,​TypeListPool.Key<? extends java.util.Collection<? extends java.lang.CharSequence>>,​org.jf.dexlib2.writer.pool.PoolClassDef,​Field,​org.jf.dexlib2.writer.pool.PoolMethod,​java.util.Set<? extends Annotation>,​ArrayEncodedValue>
      • getSortedDirectMethods

        @Nonnull
        public java.util.Collection<org.jf.dexlib2.writer.pool.PoolMethod> getSortedDirectMethods​(@Nonnull
                                                                                                  org.jf.dexlib2.writer.pool.PoolClassDef classDef)
        Specified by:
        getSortedDirectMethods in interface ClassSection<java.lang.CharSequence,​java.lang.CharSequence,​TypeListPool.Key<? extends java.util.Collection<? extends java.lang.CharSequence>>,​org.jf.dexlib2.writer.pool.PoolClassDef,​Field,​org.jf.dexlib2.writer.pool.PoolMethod,​java.util.Set<? extends Annotation>,​ArrayEncodedValue>
      • getSortedVirtualMethods

        @Nonnull
        public java.util.Collection<org.jf.dexlib2.writer.pool.PoolMethod> getSortedVirtualMethods​(@Nonnull
                                                                                                   org.jf.dexlib2.writer.pool.PoolClassDef classDef)
        Specified by:
        getSortedVirtualMethods in interface ClassSection<java.lang.CharSequence,​java.lang.CharSequence,​TypeListPool.Key<? extends java.util.Collection<? extends java.lang.CharSequence>>,​org.jf.dexlib2.writer.pool.PoolClassDef,​Field,​org.jf.dexlib2.writer.pool.PoolMethod,​java.util.Set<? extends Annotation>,​ArrayEncodedValue>
      • getSortedMethods

        @Nonnull
        public java.util.Collection<? extends org.jf.dexlib2.writer.pool.PoolMethod> getSortedMethods​(@Nonnull
                                                                                                      org.jf.dexlib2.writer.pool.PoolClassDef classDef)
        Specified by:
        getSortedMethods in interface ClassSection<java.lang.CharSequence,​java.lang.CharSequence,​TypeListPool.Key<? extends java.util.Collection<? extends java.lang.CharSequence>>,​org.jf.dexlib2.writer.pool.PoolClassDef,​Field,​org.jf.dexlib2.writer.pool.PoolMethod,​java.util.Set<? extends Annotation>,​ArrayEncodedValue>
      • getFieldAccessFlags

        public int getFieldAccessFlags​(@Nonnull
                                       Field field)
        Specified by:
        getFieldAccessFlags in interface ClassSection<java.lang.CharSequence,​java.lang.CharSequence,​TypeListPool.Key<? extends java.util.Collection<? extends java.lang.CharSequence>>,​org.jf.dexlib2.writer.pool.PoolClassDef,​Field,​org.jf.dexlib2.writer.pool.PoolMethod,​java.util.Set<? extends Annotation>,​ArrayEncodedValue>
      • getMethodAccessFlags

        public int getMethodAccessFlags​(@Nonnull
                                        org.jf.dexlib2.writer.pool.PoolMethod method)
        Specified by:
        getMethodAccessFlags in interface ClassSection<java.lang.CharSequence,​java.lang.CharSequence,​TypeListPool.Key<? extends java.util.Collection<? extends java.lang.CharSequence>>,​org.jf.dexlib2.writer.pool.PoolClassDef,​Field,​org.jf.dexlib2.writer.pool.PoolMethod,​java.util.Set<? extends Annotation>,​ArrayEncodedValue>
      • getClassAnnotations

        @Nullable
        public java.util.Set<? extends Annotation> getClassAnnotations​(@Nonnull
                                                                       org.jf.dexlib2.writer.pool.PoolClassDef classDef)
        Specified by:
        getClassAnnotations in interface ClassSection<java.lang.CharSequence,​java.lang.CharSequence,​TypeListPool.Key<? extends java.util.Collection<? extends java.lang.CharSequence>>,​org.jf.dexlib2.writer.pool.PoolClassDef,​Field,​org.jf.dexlib2.writer.pool.PoolMethod,​java.util.Set<? extends Annotation>,​ArrayEncodedValue>
      • getFieldAnnotations

        @Nullable
        public java.util.Set<? extends Annotation> getFieldAnnotations​(@Nonnull
                                                                       Field field)
        Specified by:
        getFieldAnnotations in interface ClassSection<java.lang.CharSequence,​java.lang.CharSequence,​TypeListPool.Key<? extends java.util.Collection<? extends java.lang.CharSequence>>,​org.jf.dexlib2.writer.pool.PoolClassDef,​Field,​org.jf.dexlib2.writer.pool.PoolMethod,​java.util.Set<? extends Annotation>,​ArrayEncodedValue>
      • getMethodAnnotations

        @Nullable
        public java.util.Set<? extends Annotation> getMethodAnnotations​(@Nonnull
                                                                        org.jf.dexlib2.writer.pool.PoolMethod method)
        Specified by:
        getMethodAnnotations in interface ClassSection<java.lang.CharSequence,​java.lang.CharSequence,​TypeListPool.Key<? extends java.util.Collection<? extends java.lang.CharSequence>>,​org.jf.dexlib2.writer.pool.PoolClassDef,​Field,​org.jf.dexlib2.writer.pool.PoolMethod,​java.util.Set<? extends Annotation>,​ArrayEncodedValue>
      • getParameterAnnotations

        @Nullable
        public java.util.List<? extends java.util.Set<? extends Annotation>> getParameterAnnotations​(@Nonnull
                                                                                                     org.jf.dexlib2.writer.pool.PoolMethod method)
        Specified by:
        getParameterAnnotations in interface ClassSection<java.lang.CharSequence,​java.lang.CharSequence,​TypeListPool.Key<? extends java.util.Collection<? extends java.lang.CharSequence>>,​org.jf.dexlib2.writer.pool.PoolClassDef,​Field,​org.jf.dexlib2.writer.pool.PoolMethod,​java.util.Set<? extends Annotation>,​ArrayEncodedValue>
      • getDebugItems

        @Nullable
        public java.lang.Iterable<? extends DebugItem> getDebugItems​(@Nonnull
                                                                     org.jf.dexlib2.writer.pool.PoolMethod method)
        Specified by:
        getDebugItems in interface ClassSection<java.lang.CharSequence,​java.lang.CharSequence,​TypeListPool.Key<? extends java.util.Collection<? extends java.lang.CharSequence>>,​org.jf.dexlib2.writer.pool.PoolClassDef,​Field,​org.jf.dexlib2.writer.pool.PoolMethod,​java.util.Set<? extends Annotation>,​ArrayEncodedValue>
      • getParameterNames

        @Nullable
        public java.lang.Iterable<java.lang.CharSequence> getParameterNames​(@Nonnull
                                                                            org.jf.dexlib2.writer.pool.PoolMethod method)
        Specified by:
        getParameterNames in interface ClassSection<java.lang.CharSequence,​java.lang.CharSequence,​TypeListPool.Key<? extends java.util.Collection<? extends java.lang.CharSequence>>,​org.jf.dexlib2.writer.pool.PoolClassDef,​Field,​org.jf.dexlib2.writer.pool.PoolMethod,​java.util.Set<? extends Annotation>,​ArrayEncodedValue>
      • getRegisterCount

        public int getRegisterCount​(@Nonnull
                                    org.jf.dexlib2.writer.pool.PoolMethod method)
        Specified by:
        getRegisterCount in interface ClassSection<java.lang.CharSequence,​java.lang.CharSequence,​TypeListPool.Key<? extends java.util.Collection<? extends java.lang.CharSequence>>,​org.jf.dexlib2.writer.pool.PoolClassDef,​Field,​org.jf.dexlib2.writer.pool.PoolMethod,​java.util.Set<? extends Annotation>,​ArrayEncodedValue>
      • getInstructions

        @Nullable
        public java.lang.Iterable<? extends Instruction> getInstructions​(@Nonnull
                                                                         org.jf.dexlib2.writer.pool.PoolMethod method)
        Specified by:
        getInstructions in interface ClassSection<java.lang.CharSequence,​java.lang.CharSequence,​TypeListPool.Key<? extends java.util.Collection<? extends java.lang.CharSequence>>,​org.jf.dexlib2.writer.pool.PoolClassDef,​Field,​org.jf.dexlib2.writer.pool.PoolMethod,​java.util.Set<? extends Annotation>,​ArrayEncodedValue>
      • getTryBlocks

        @Nonnull
        public java.util.List<? extends TryBlock<? extends ExceptionHandler>> getTryBlocks​(@Nonnull
                                                                                           org.jf.dexlib2.writer.pool.PoolMethod method)
        Specified by:
        getTryBlocks in interface ClassSection<java.lang.CharSequence,​java.lang.CharSequence,​TypeListPool.Key<? extends java.util.Collection<? extends java.lang.CharSequence>>,​org.jf.dexlib2.writer.pool.PoolClassDef,​Field,​org.jf.dexlib2.writer.pool.PoolMethod,​java.util.Set<? extends Annotation>,​ArrayEncodedValue>
      • getExceptionType

        @Nullable
        public java.lang.CharSequence getExceptionType​(@Nonnull
                                                       ExceptionHandler handler)
        Specified by:
        getExceptionType in interface ClassSection<java.lang.CharSequence,​java.lang.CharSequence,​TypeListPool.Key<? extends java.util.Collection<? extends java.lang.CharSequence>>,​org.jf.dexlib2.writer.pool.PoolClassDef,​Field,​org.jf.dexlib2.writer.pool.PoolMethod,​java.util.Set<? extends Annotation>,​ArrayEncodedValue>
      • setAnnotationDirectoryOffset

        public void setAnnotationDirectoryOffset​(@Nonnull
                                                 org.jf.dexlib2.writer.pool.PoolClassDef classDef,
                                                 int offset)
        Specified by:
        setAnnotationDirectoryOffset in interface ClassSection<java.lang.CharSequence,​java.lang.CharSequence,​TypeListPool.Key<? extends java.util.Collection<? extends java.lang.CharSequence>>,​org.jf.dexlib2.writer.pool.PoolClassDef,​Field,​org.jf.dexlib2.writer.pool.PoolMethod,​java.util.Set<? extends Annotation>,​ArrayEncodedValue>
      • getAnnotationDirectoryOffset

        public int getAnnotationDirectoryOffset​(@Nonnull
                                                org.jf.dexlib2.writer.pool.PoolClassDef classDef)
        Specified by:
        getAnnotationDirectoryOffset in interface ClassSection<java.lang.CharSequence,​java.lang.CharSequence,​TypeListPool.Key<? extends java.util.Collection<? extends java.lang.CharSequence>>,​org.jf.dexlib2.writer.pool.PoolClassDef,​Field,​org.jf.dexlib2.writer.pool.PoolMethod,​java.util.Set<? extends Annotation>,​ArrayEncodedValue>
      • setAnnotationSetRefListOffset

        public void setAnnotationSetRefListOffset​(@Nonnull
                                                  org.jf.dexlib2.writer.pool.PoolMethod method,
                                                  int offset)
        Specified by:
        setAnnotationSetRefListOffset in interface ClassSection<java.lang.CharSequence,​java.lang.CharSequence,​TypeListPool.Key<? extends java.util.Collection<? extends java.lang.CharSequence>>,​org.jf.dexlib2.writer.pool.PoolClassDef,​Field,​org.jf.dexlib2.writer.pool.PoolMethod,​java.util.Set<? extends Annotation>,​ArrayEncodedValue>
      • getAnnotationSetRefListOffset

        public int getAnnotationSetRefListOffset​(@Nonnull
                                                 org.jf.dexlib2.writer.pool.PoolMethod method)
        Specified by:
        getAnnotationSetRefListOffset in interface ClassSection<java.lang.CharSequence,​java.lang.CharSequence,​TypeListPool.Key<? extends java.util.Collection<? extends java.lang.CharSequence>>,​org.jf.dexlib2.writer.pool.PoolClassDef,​Field,​org.jf.dexlib2.writer.pool.PoolMethod,​java.util.Set<? extends Annotation>,​ArrayEncodedValue>
      • setCodeItemOffset

        public void setCodeItemOffset​(@Nonnull
                                      org.jf.dexlib2.writer.pool.PoolMethod method,
                                      int offset)
        Specified by:
        setCodeItemOffset in interface ClassSection<java.lang.CharSequence,​java.lang.CharSequence,​TypeListPool.Key<? extends java.util.Collection<? extends java.lang.CharSequence>>,​org.jf.dexlib2.writer.pool.PoolClassDef,​Field,​org.jf.dexlib2.writer.pool.PoolMethod,​java.util.Set<? extends Annotation>,​ArrayEncodedValue>
      • getCodeItemOffset

        public int getCodeItemOffset​(@Nonnull
                                     org.jf.dexlib2.writer.pool.PoolMethod method)
        Specified by:
        getCodeItemOffset in interface ClassSection<java.lang.CharSequence,​java.lang.CharSequence,​TypeListPool.Key<? extends java.util.Collection<? extends java.lang.CharSequence>>,​org.jf.dexlib2.writer.pool.PoolClassDef,​Field,​org.jf.dexlib2.writer.pool.PoolMethod,​java.util.Set<? extends Annotation>,​ArrayEncodedValue>
      • writeDebugItem

        public void writeDebugItem​(@Nonnull
                                   DebugWriter<java.lang.CharSequence,​java.lang.CharSequence> writer,
                                   DebugItem debugItem)
                            throws java.io.IOException
        Specified by:
        writeDebugItem in interface ClassSection<java.lang.CharSequence,​java.lang.CharSequence,​TypeListPool.Key<? extends java.util.Collection<? extends java.lang.CharSequence>>,​org.jf.dexlib2.writer.pool.PoolClassDef,​Field,​org.jf.dexlib2.writer.pool.PoolMethod,​java.util.Set<? extends Annotation>,​ArrayEncodedValue>
        Throws:
        java.io.IOException
      • getItemIndex

        public int getItemIndex​(@Nonnull
                                org.jf.dexlib2.writer.pool.PoolClassDef classDef)
        Specified by:
        getItemIndex in interface IndexSection<org.jf.dexlib2.writer.pool.PoolClassDef>
      • getItems

        @Nonnull
        public java.util.Collection<? extends java.util.Map.Entry<org.jf.dexlib2.writer.pool.PoolClassDef,​java.lang.Integer>> getItems()
        Specified by:
        getItems in interface IndexSection<org.jf.dexlib2.writer.pool.PoolClassDef>