public abstract class org.apache.batik.svggen.ImageCacher implements org.apache.batik.svggen.SVGSyntax, org.apache.batik.svggen.ErrorConstants
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.apache.batik.svggen.ImageCacher
  super_class: java.lang.Object
{
  org.apache.batik.svggen.DOMTreeManager domTreeManager;
    descriptor: Lorg/apache/batik/svggen/DOMTreeManager;
    flags: (0x0000) 

  java.util.Map imageCache;
    descriptor: Ljava/util/Map;
    flags: (0x0000) 

  java.util.zip.Checksum checkSum;
    descriptor: Ljava/util/zip/Checksum;
    flags: (0x0000) 

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.batik.svggen.ImageCacher this
         0: .line 54
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 47
            aload 0 /* this */
            aconst_null
            putfield org.apache.batik.svggen.ImageCacher.domTreeManager:Lorg/apache/batik/svggen/DOMTreeManager;
         2: .line 55
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.apache.batik.svggen.ImageCacher.imageCache:Ljava/util/Map;
         3: .line 56
            aload 0 /* this */
            new java.util.zip.Adler32
            dup
            invokespecial java.util.zip.Adler32.<init>:()V
            putfield org.apache.batik.svggen.ImageCacher.checkSum:Ljava/util/zip/Checksum;
         4: .line 57
            return
        end local 0 // org.apache.batik.svggen.ImageCacher this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/apache/batik/svggen/ImageCacher;

  public void <init>(org.apache.batik.svggen.DOMTreeManager);
    descriptor: (Lorg/apache/batik/svggen/DOMTreeManager;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.batik.svggen.ImageCacher this
        start local 1 // org.apache.batik.svggen.DOMTreeManager domTreeManager
         0: .line 65
            aload 0 /* this */
            invokespecial org.apache.batik.svggen.ImageCacher.<init>:()V
         1: .line 66
            aload 0 /* this */
            aload 1 /* domTreeManager */
            invokevirtual org.apache.batik.svggen.ImageCacher.setDOMTreeManager:(Lorg/apache/batik/svggen/DOMTreeManager;)V
         2: .line 67
            return
        end local 1 // org.apache.batik.svggen.DOMTreeManager domTreeManager
        end local 0 // org.apache.batik.svggen.ImageCacher this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0            this  Lorg/apache/batik/svggen/ImageCacher;
            0    3     1  domTreeManager  Lorg/apache/batik/svggen/DOMTreeManager;
    MethodParameters:
                Name  Flags
      domTreeManager  

  public void setDOMTreeManager(org.apache.batik.svggen.DOMTreeManager);
    descriptor: (Lorg/apache/batik/svggen/DOMTreeManager;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.batik.svggen.ImageCacher this
        start local 1 // org.apache.batik.svggen.DOMTreeManager domTreeManager
         0: .line 75
            aload 1 /* domTreeManager */
            ifnonnull 2
         1: .line 76
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
         2: .line 78
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* domTreeManager */
            putfield org.apache.batik.svggen.ImageCacher.domTreeManager:Lorg/apache/batik/svggen/DOMTreeManager;
         3: .line 79
            return
        end local 1 // org.apache.batik.svggen.DOMTreeManager domTreeManager
        end local 0 // org.apache.batik.svggen.ImageCacher this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0            this  Lorg/apache/batik/svggen/ImageCacher;
            0    4     1  domTreeManager  Lorg/apache/batik/svggen/DOMTreeManager;
    MethodParameters:
                Name  Flags
      domTreeManager  

  public org.apache.batik.svggen.DOMTreeManager getDOMTreeManager();
    descriptor: ()Lorg/apache/batik/svggen/DOMTreeManager;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.batik.svggen.ImageCacher this
         0: .line 82
            aload 0 /* this */
            getfield org.apache.batik.svggen.ImageCacher.domTreeManager:Lorg/apache/batik/svggen/DOMTreeManager;
            areturn
        end local 0 // org.apache.batik.svggen.ImageCacher this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/batik/svggen/ImageCacher;

  public java.lang.String lookup(java.io.ByteArrayOutputStream, int, int, org.apache.batik.svggen.SVGGeneratorContext);
    descriptor: (Ljava/io/ByteArrayOutputStream;IILorg/apache/batik/svggen/SVGGeneratorContext;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=12, args_size=5
        start local 0 // org.apache.batik.svggen.ImageCacher this
        start local 1 // java.io.ByteArrayOutputStream os
        start local 2 // int width
        start local 3 // int height
        start local 4 // org.apache.batik.svggen.SVGGeneratorContext ctx
         0: .line 105
            aload 0 /* this */
            aload 1 /* os */
            invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
            invokevirtual org.apache.batik.svggen.ImageCacher.getChecksum:([B)I
            istore 5 /* checksum */
        start local 5 // int checksum
         1: .line 106
            iload 5 /* checksum */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            astore 6 /* key */
        start local 6 // java.lang.Integer key
         2: .line 107
            aconst_null
            astore 7 /* href */
        start local 7 // java.lang.String href
         3: .line 109
            aload 0 /* this */
            aload 1 /* os */
            invokevirtual org.apache.batik.svggen.ImageCacher.getCacheableData:(Ljava/io/ByteArrayOutputStream;)Ljava/lang/Object;
            astore 8 /* data */
        start local 8 // java.lang.Object data
         4: .line 111
            aload 0 /* this */
            getfield org.apache.batik.svggen.ImageCacher.imageCache:Ljava/util/Map;
            aload 6 /* key */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.LinkedList
            astore 9 /* list */
        start local 9 // java.util.LinkedList list
         5: .line 112
            aload 9 /* list */
            ifnonnull 9
         6: .line 114
            new java.util.LinkedList
            dup
            invokespecial java.util.LinkedList.<init>:()V
            astore 9 /* list */
         7: .line 115
            aload 0 /* this */
            getfield org.apache.batik.svggen.ImageCacher.imageCache:Ljava/util/Map;
            aload 6 /* key */
            aload 9 /* list */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         8: .line 116
            goto 16
         9: .line 118
      StackMap locals: org.apache.batik.svggen.ImageCacher java.io.ByteArrayOutputStream int int org.apache.batik.svggen.SVGGeneratorContext int java.lang.Integer java.lang.String java.lang.Object java.util.LinkedList
      StackMap stack:
            aload 9 /* list */
            iconst_0
            invokevirtual java.util.LinkedList.listIterator:(I)Ljava/util/ListIterator;
            astore 10 /* i */
        start local 10 // java.util.ListIterator i
        10: goto 15
        11: .line 119
      StackMap locals: java.util.ListIterator
      StackMap stack:
            aload 10 /* i */
            invokeinterface java.util.ListIterator.next:()Ljava/lang/Object;
            checkcast org.apache.batik.svggen.ImageCacher$ImageCacheEntry
            astore 11 /* entry */
        start local 11 // org.apache.batik.svggen.ImageCacher$ImageCacheEntry entry
        12: .line 120
            aload 11 /* entry */
            getfield org.apache.batik.svggen.ImageCacher$ImageCacheEntry.checksum:I
            iload 5 /* checksum */
            if_icmpne 15
            aload 0 /* this */
            aload 11 /* entry */
            getfield org.apache.batik.svggen.ImageCacher$ImageCacheEntry.src:Ljava/lang/Object;
            aload 8 /* data */
            invokevirtual org.apache.batik.svggen.ImageCacher.imagesMatch:(Ljava/lang/Object;Ljava/lang/Object;)Z
            ifeq 15
        13: .line 121
            aload 11 /* entry */
            getfield org.apache.batik.svggen.ImageCacher$ImageCacheEntry.href:Ljava/lang/String;
            astore 7 /* href */
        14: .line 122
            goto 16
        end local 11 // org.apache.batik.svggen.ImageCacher$ImageCacheEntry entry
        15: .line 118
      StackMap locals:
      StackMap stack:
            aload 10 /* i */
            invokeinterface java.util.ListIterator.hasNext:()Z
            ifne 11
        end local 10 // java.util.ListIterator i
        16: .line 127
      StackMap locals:
      StackMap stack:
            aload 7 /* href */
            ifnonnull 23
        17: .line 129
            aload 0 /* this */
            iload 5 /* checksum */
            aload 8 /* data */
        18: .line 130
            iload 2 /* width */
            iload 3 /* height */
        19: .line 131
            aload 4 /* ctx */
        20: .line 129
            invokevirtual org.apache.batik.svggen.ImageCacher.createEntry:(ILjava/lang/Object;IILorg/apache/batik/svggen/SVGGeneratorContext;)Lorg/apache/batik/svggen/ImageCacher$ImageCacheEntry;
            astore 10 /* newEntry */
        start local 10 // org.apache.batik.svggen.ImageCacher$ImageCacheEntry newEntry
        21: .line 132
            aload 9 /* list */
            aload 10 /* newEntry */
            invokevirtual java.util.LinkedList.add:(Ljava/lang/Object;)Z
            pop
        22: .line 133
            aload 10 /* newEntry */
            getfield org.apache.batik.svggen.ImageCacher$ImageCacheEntry.href:Ljava/lang/String;
            astore 7 /* href */
        end local 10 // org.apache.batik.svggen.ImageCacher$ImageCacheEntry newEntry
        23: .line 136
      StackMap locals:
      StackMap stack:
            aload 7 /* href */
            areturn
        end local 9 // java.util.LinkedList list
        end local 8 // java.lang.Object data
        end local 7 // java.lang.String href
        end local 6 // java.lang.Integer key
        end local 5 // int checksum
        end local 4 // org.apache.batik.svggen.SVGGeneratorContext ctx
        end local 3 // int height
        end local 2 // int width
        end local 1 // java.io.ByteArrayOutputStream os
        end local 0 // org.apache.batik.svggen.ImageCacher this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   24     0      this  Lorg/apache/batik/svggen/ImageCacher;
            0   24     1        os  Ljava/io/ByteArrayOutputStream;
            0   24     2     width  I
            0   24     3    height  I
            0   24     4       ctx  Lorg/apache/batik/svggen/SVGGeneratorContext;
            1   24     5  checksum  I
            2   24     6       key  Ljava/lang/Integer;
            3   24     7      href  Ljava/lang/String;
            4   24     8      data  Ljava/lang/Object;
            5   24     9      list  Ljava/util/LinkedList;
           10   16    10         i  Ljava/util/ListIterator;
           12   15    11     entry  Lorg/apache/batik/svggen/ImageCacher$ImageCacheEntry;
           21   23    10  newEntry  Lorg/apache/batik/svggen/ImageCacher$ImageCacheEntry;
    Exceptions:
      throws org.apache.batik.svggen.SVGGraphics2DIOException
    MethodParameters:
        Name  Flags
      os      
      width   
      height  
      ctx     

  abstract java.lang.Object getCacheableData(java.io.ByteArrayOutputStream);
    descriptor: (Ljava/io/ByteArrayOutputStream;)Ljava/lang/Object;
    flags: (0x0400) ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      os    

  abstract boolean imagesMatch(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Z
    flags: (0x0400) ACC_ABSTRACT
    Exceptions:
      throws org.apache.batik.svggen.SVGGraphics2DIOException
    MethodParameters:
      Name  Flags
      o1    
      o2    

  abstract org.apache.batik.svggen.ImageCacher$ImageCacheEntry createEntry(int, java.lang.Object, int, int, org.apache.batik.svggen.SVGGeneratorContext);
    descriptor: (ILjava/lang/Object;IILorg/apache/batik/svggen/SVGGeneratorContext;)Lorg/apache/batik/svggen/ImageCacher$ImageCacheEntry;
    flags: (0x0400) ACC_ABSTRACT
    Exceptions:
      throws org.apache.batik.svggen.SVGGraphics2DIOException
    MethodParameters:
          Name  Flags
      checksum  
      data      
      width     
      height    
      ctx       

  int getChecksum(byte[]);
    descriptor: ([B)I
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.apache.batik.svggen.ImageCacher this
        start local 1 // byte[] data
         0: .line 179
            aload 0 /* this */
            getfield org.apache.batik.svggen.ImageCacher.checkSum:Ljava/util/zip/Checksum;
            invokeinterface java.util.zip.Checksum.reset:()V
         1: .line 180
            aload 0 /* this */
            getfield org.apache.batik.svggen.ImageCacher.checkSum:Ljava/util/zip/Checksum;
            aload 1 /* data */
            iconst_0
            aload 1 /* data */
            arraylength
            invokeinterface java.util.zip.Checksum.update:([BII)V
         2: .line 181
            aload 0 /* this */
            getfield org.apache.batik.svggen.ImageCacher.checkSum:Ljava/util/zip/Checksum;
            invokeinterface java.util.zip.Checksum.getValue:()J
            l2i
            ireturn
        end local 1 // byte[] data
        end local 0 // org.apache.batik.svggen.ImageCacher this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/batik/svggen/ImageCacher;
            0    3     1  data  [B
    MethodParameters:
      Name  Flags
      data  
}
SourceFile: "ImageCacher.java"
NestMembers:
  org.apache.batik.svggen.ImageCacher$Embedded  org.apache.batik.svggen.ImageCacher$External  org.apache.batik.svggen.ImageCacher$ImageCacheEntry
InnerClasses:
  public Embedded = org.apache.batik.svggen.ImageCacher$Embedded of org.apache.batik.svggen.ImageCacher
  public External = org.apache.batik.svggen.ImageCacher$External of org.apache.batik.svggen.ImageCacher
  private ImageCacheEntry = org.apache.batik.svggen.ImageCacher$ImageCacheEntry of org.apache.batik.svggen.ImageCacher