public final class org.apache.xmlgraphics.xmp.XMPPacketParser
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: org.apache.xmlgraphics.xmp.XMPPacketParser
super_class: java.lang.Object
{
private static final byte[] ;
descriptor: [B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final byte[] ;
descriptor: [B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final byte[] PACKET_TRAILER;
descriptor: [B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=0, args_size=0
0: ldc "<?xpacket begin="
ldc "US-ASCII"
invokevirtual java.lang.String.getBytes:(Ljava/lang/String;)[B
putstatic org.apache.xmlgraphics.xmp.XMPPacketParser.PACKET_HEADER:[B
1: ldc "?>"
ldc "US-ASCII"
invokevirtual java.lang.String.getBytes:(Ljava/lang/String;)[B
putstatic org.apache.xmlgraphics.xmp.XMPPacketParser.PACKET_HEADER_END:[B
2: ldc "<?xpacket"
ldc "US-ASCII"
invokevirtual java.lang.String.getBytes:(Ljava/lang/String;)[B
putstatic org.apache.xmlgraphics.xmp.XMPPacketParser.PACKET_TRAILER:[B
3: goto 6
StackMap locals:
StackMap stack: java.io.UnsupportedEncodingException
4: pop
5: new java.lang.RuntimeException
dup
ldc "Incompatible JVM! US-ASCII encoding not supported."
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals:
StackMap stack:
return
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
0 3 4 Class java.io.UnsupportedEncodingException
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/xmlgraphics/xmp/XMPPacketParser;
public static org.apache.xmlgraphics.xmp.Metadata parse(java.io.InputStream);
descriptor: (Ljava/io/InputStream;)Lorg/apache/xmlgraphics/xmp/Metadata;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=5, args_size=1
start local 0 0: aload 0
invokevirtual java.io.InputStream.markSupported:()Z
ifne 2
1: new java.io.BufferedInputStream
dup
aload 0
invokespecial java.io.BufferedInputStream.<init>:(Ljava/io/InputStream;)V
astore 0
2: StackMap locals:
StackMap stack:
aload 0
getstatic org.apache.xmlgraphics.xmp.XMPPacketParser.PACKET_HEADER:[B
invokestatic org.apache.xmlgraphics.xmp.XMPPacketParser.skipAfter:(Ljava/io/InputStream;[B)Z
istore 1
start local 1 3: iload 1
ifne 5
4: aconst_null
areturn
5: StackMap locals: int
StackMap stack:
aload 0
getstatic org.apache.xmlgraphics.xmp.XMPPacketParser.PACKET_HEADER_END:[B
invokestatic org.apache.xmlgraphics.xmp.XMPPacketParser.skipAfter:(Ljava/io/InputStream;[B)Z
ifne 7
6: new java.io.IOException
dup
ldc "Invalid XMP packet header!"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
7: StackMap locals:
StackMap stack:
aconst_null
astore 2
start local 2 8: new org.apache.commons.io.output.ByteArrayOutputStream
dup
invokespecial org.apache.commons.io.output.ByteArrayOutputStream.<init>:()V
astore 2
9: aload 0
getstatic org.apache.xmlgraphics.xmp.XMPPacketParser.PACKET_TRAILER:[B
aload 2
invokestatic org.apache.xmlgraphics.xmp.XMPPacketParser.skipAfter:(Ljava/io/InputStream;[BLjava/io/OutputStream;)Z
ifne 11
10: new java.io.IOException
dup
ldc "XMP packet not properly terminated!"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
11: StackMap locals: org.apache.commons.io.output.ByteArrayOutputStream
StackMap stack:
new javax.xml.transform.stream.StreamSource
dup
new java.io.ByteArrayInputStream
dup
aload 2
invokevirtual org.apache.commons.io.output.ByteArrayOutputStream.toByteArray:()[B
invokespecial java.io.ByteArrayInputStream.<init>:([B)V
invokespecial javax.xml.transform.stream.StreamSource.<init>:(Ljava/io/InputStream;)V
12: invokestatic org.apache.xmlgraphics.xmp.XMPParser.parseXMP:(Ljavax/xml/transform/Source;)Lorg/apache/xmlgraphics/xmp/Metadata;
astore 3
start local 3 13: goto 17
end local 3 StackMap locals:
StackMap stack: java.lang.Throwable
14: astore 4
15: aload 2
invokestatic org.apache.commons.io.IOUtils.closeQuietly:(Ljava/io/OutputStream;)V
16: aload 4
athrow
start local 3 17: StackMap locals: org.apache.xmlgraphics.xmp.Metadata
StackMap stack:
aload 2
invokestatic org.apache.commons.io.IOUtils.closeQuietly:(Ljava/io/OutputStream;)V
18: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 in Ljava/io/InputStream;
3 19 1 foundXMP Z
8 19 2 baout Lorg/apache/commons/io/output/ByteArrayOutputStream;
13 14 3 metadata Lorg/apache/xmlgraphics/xmp/Metadata;
17 19 3 metadata Lorg/apache/xmlgraphics/xmp/Metadata;
Exception table:
from to target type
8 14 14 any
Exceptions:
throws java.io.IOException, javax.xml.transform.TransformerException
MethodParameters:
Name Flags
in
private static boolean skipAfter(java.io.InputStream, byte[]);
descriptor: (Ljava/io/InputStream;[B)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
aconst_null
invokestatic org.apache.xmlgraphics.xmp.XMPPacketParser.skipAfter:(Ljava/io/InputStream;[BLjava/io/OutputStream;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 in Ljava/io/InputStream;
0 1 1 match [B
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
in
match
private static boolean skipAfter(java.io.InputStream, byte[], java.io.OutputStream);
descriptor: (Ljava/io/InputStream;[BLjava/io/OutputStream;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=6, args_size=3
start local 0 start local 1 start local 2 0: iconst_0
istore 3
start local 3 1: aload 1
arraylength
istore 4
start local 4 2: goto 12
start local 5 3: StackMap locals: int int int
StackMap stack:
iload 5
aload 1
iload 3
baload
if_icmpne 7
4: iinc 3 1
5: iload 3
iload 4
if_icmpne 12
6: iconst_1
ireturn
7: StackMap locals:
StackMap stack:
aload 2
ifnull 11
8: iload 3
ifle 10
9: aload 2
aload 1
iconst_0
iload 3
invokevirtual java.io.OutputStream.write:([BII)V
10: StackMap locals:
StackMap stack:
aload 2
iload 5
invokevirtual java.io.OutputStream.write:(I)V
11: StackMap locals:
StackMap stack:
iconst_0
istore 3
end local 5 12: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.io.InputStream.read:()I
dup
istore 5
start local 5 13: ifge 3
14: iconst_0
ireturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 in Ljava/io/InputStream;
0 15 1 match [B
0 15 2 out Ljava/io/OutputStream;
1 15 3 found I
2 15 4 len I
3 12 5 b I
13 15 5 b I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
in
match
out
}
SourceFile: "XMPPacketParser.java"