public class org.apache.bcel.util.LruCacheClassPathRepository extends org.apache.bcel.util.AbstractClassPathRepository
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.bcel.util.LruCacheClassPathRepository
  super_class: org.apache.bcel.util.AbstractClassPathRepository
{
  private final java.util.LinkedHashMap<java.lang.String, org.apache.bcel.classfile.JavaClass> loadedClasses;
    descriptor: Ljava/util/LinkedHashMap;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/LinkedHashMap<Ljava/lang/String;Lorg/apache/bcel/classfile/JavaClass;>;

  public void <init>(org.apache.bcel.util.ClassPath, int);
    descriptor: (Lorg/apache/bcel/util/ClassPath;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=4, args_size=3
        start local 0 // org.apache.bcel.util.LruCacheClassPathRepository this
        start local 1 // org.apache.bcel.util.ClassPath path
        start local 2 // int cacheSize
         0: .line 40
            aload 0 /* this */
            aload 1 /* path */
            invokespecial org.apache.bcel.util.AbstractClassPathRepository.<init>:(Lorg/apache/bcel/util/ClassPath;)V
         1: .line 42
            iload 2 /* cacheSize */
            iconst_1
            if_icmpge 3
         2: .line 43
            new java.lang.IllegalArgumentException
            dup
            ldc "cacheSize must be a positive number."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 45
      StackMap locals: org.apache.bcel.util.LruCacheClassPathRepository org.apache.bcel.util.ClassPath int
      StackMap stack:
            ldc 0.75
            iload 2 /* cacheSize */
            i2d
            dmul
            d2i
            istore 3 /* initialCapacity */
        start local 3 // int initialCapacity
         4: .line 47
            aload 0 /* this */
            new org.apache.bcel.util.LruCacheClassPathRepository$1
            dup
            aload 0 /* this */
            iload 3 /* initialCapacity */
            iload 2 /* cacheSize */
            i2f
            iconst_1
            iload 2 /* cacheSize */
            invokespecial org.apache.bcel.util.LruCacheClassPathRepository$1.<init>:(Lorg/apache/bcel/util/LruCacheClassPathRepository;IFZI)V
            putfield org.apache.bcel.util.LruCacheClassPathRepository.loadedClasses:Ljava/util/LinkedHashMap;
         5: .line 56
            return
        end local 3 // int initialCapacity
        end local 2 // int cacheSize
        end local 1 // org.apache.bcel.util.ClassPath path
        end local 0 // org.apache.bcel.util.LruCacheClassPathRepository this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    6     0             this  Lorg/apache/bcel/util/LruCacheClassPathRepository;
            0    6     1             path  Lorg/apache/bcel/util/ClassPath;
            0    6     2        cacheSize  I
            4    6     3  initialCapacity  I
    MethodParameters:
           Name  Flags
      path       final
      cacheSize  final

  public org.apache.bcel.classfile.JavaClass findClass(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/apache/bcel/classfile/JavaClass;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.bcel.util.LruCacheClassPathRepository this
        start local 1 // java.lang.String className
         0: .line 60
            aload 0 /* this */
            getfield org.apache.bcel.util.LruCacheClassPathRepository.loadedClasses:Ljava/util/LinkedHashMap;
            aload 1 /* className */
            invokevirtual java.util.LinkedHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.bcel.classfile.JavaClass
            areturn
        end local 1 // java.lang.String className
        end local 0 // org.apache.bcel.util.LruCacheClassPathRepository this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Lorg/apache/bcel/util/LruCacheClassPathRepository;
            0    1     1  className  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      className  final

  public void storeClass(org.apache.bcel.classfile.JavaClass);
    descriptor: (Lorg/apache/bcel/classfile/JavaClass;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.apache.bcel.util.LruCacheClassPathRepository this
        start local 1 // org.apache.bcel.classfile.JavaClass javaClass
         0: .line 66
            aload 0 /* this */
            getfield org.apache.bcel.util.LruCacheClassPathRepository.loadedClasses:Ljava/util/LinkedHashMap;
            aload 1 /* javaClass */
            invokevirtual org.apache.bcel.classfile.JavaClass.getClassName:()Ljava/lang/String;
            aload 1 /* javaClass */
            invokevirtual java.util.LinkedHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 67
            aload 1 /* javaClass */
            aload 0 /* this */
            invokevirtual org.apache.bcel.classfile.JavaClass.setRepository:(Lorg/apache/bcel/util/Repository;)V
         2: .line 68
            return
        end local 1 // org.apache.bcel.classfile.JavaClass javaClass
        end local 0 // org.apache.bcel.util.LruCacheClassPathRepository this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0       this  Lorg/apache/bcel/util/LruCacheClassPathRepository;
            0    3     1  javaClass  Lorg/apache/bcel/classfile/JavaClass;
    MethodParameters:
           Name  Flags
      javaClass  final

  public void removeClass(org.apache.bcel.classfile.JavaClass);
    descriptor: (Lorg/apache/bcel/classfile/JavaClass;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.bcel.util.LruCacheClassPathRepository this
        start local 1 // org.apache.bcel.classfile.JavaClass javaClass
         0: .line 72
            aload 0 /* this */
            getfield org.apache.bcel.util.LruCacheClassPathRepository.loadedClasses:Ljava/util/LinkedHashMap;
            aload 1 /* javaClass */
            invokevirtual org.apache.bcel.classfile.JavaClass.getClassName:()Ljava/lang/String;
            invokevirtual java.util.LinkedHashMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 73
            return
        end local 1 // org.apache.bcel.classfile.JavaClass javaClass
        end local 0 // org.apache.bcel.util.LruCacheClassPathRepository this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lorg/apache/bcel/util/LruCacheClassPathRepository;
            0    2     1  javaClass  Lorg/apache/bcel/classfile/JavaClass;
    MethodParameters:
           Name  Flags
      javaClass  final

  public void clear();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.bcel.util.LruCacheClassPathRepository this
         0: .line 77
            aload 0 /* this */
            getfield org.apache.bcel.util.LruCacheClassPathRepository.loadedClasses:Ljava/util/LinkedHashMap;
            invokevirtual java.util.LinkedHashMap.clear:()V
         1: .line 78
            return
        end local 0 // org.apache.bcel.util.LruCacheClassPathRepository this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/bcel/util/LruCacheClassPathRepository;

  public org.apache.bcel.classfile.JavaClass loadClass(java.lang.Class);
    descriptor: (Ljava/lang/Class;)Lorg/apache/bcel/classfile/JavaClass;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokespecial org.apache.bcel.util.AbstractClassPathRepository.loadClass:(Ljava/lang/Class;)Lorg/apache/bcel/classfile/JavaClass;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws java.lang.ClassNotFoundException

  public org.apache.bcel.classfile.JavaClass loadClass(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/apache/bcel/classfile/JavaClass;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokespecial org.apache.bcel.util.AbstractClassPathRepository.loadClass:(Ljava/lang/String;)Lorg/apache/bcel/classfile/JavaClass;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws java.lang.ClassNotFoundException

  public org.apache.bcel.util.ClassPath getClassPath();
    descriptor: ()Lorg/apache/bcel/util/ClassPath;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokespecial org.apache.bcel.util.AbstractClassPathRepository.getClassPath:()Lorg/apache/bcel/util/ClassPath;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "LruCacheClassPathRepository.java"
NestMembers:
  org.apache.bcel.util.LruCacheClassPathRepository$1
InnerClasses:
  org.apache.bcel.util.LruCacheClassPathRepository$1