public class purejavacomm.CommPortIdentifier
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: purejavacomm.CommPortIdentifier
super_class: java.lang.Object
{
public static final int PORT_SERIAL;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 1
public static final int PORT_PARALLEL;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 2
private static volatile java.lang.Object m_Mutex;
descriptor: Ljava/lang/Object;
flags: (0x004a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE
private volatile java.lang.String m_PortName;
descriptor: Ljava/lang/String;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile int m_PortType;
descriptor: I
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile purejavacomm.CommDriver m_Driver;
descriptor: Lpurejavacomm/CommDriver;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private static volatile java.util.Hashtable<java.lang.String, purejavacomm.CommPortIdentifier> m_PortIdentifiers;
descriptor: Ljava/util/Hashtable;
flags: (0x004a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE
Signature: Ljava/util/Hashtable<Ljava/lang/String;Lpurejavacomm/CommPortIdentifier;>;
private static volatile java.util.Hashtable<purejavacomm.CommPort, purejavacomm.CommPortIdentifier> m_OpenPorts;
descriptor: Ljava/util/Hashtable;
flags: (0x004a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE
Signature: Ljava/util/Hashtable<Lpurejavacomm/CommPort;Lpurejavacomm/CommPortIdentifier;>;
private static volatile java.util.Hashtable<purejavacomm.CommPortIdentifier, java.lang.String> m_Owners;
descriptor: Ljava/util/Hashtable;
flags: (0x004a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE
Signature: Ljava/util/Hashtable<Lpurejavacomm/CommPortIdentifier;Ljava/lang/String;>;
private volatile java.util.Hashtable<purejavacomm.CommPortIdentifier, java.util.List<purejavacomm.CommPortOwnershipListener>> m_OwnerShipListeners;
descriptor: Ljava/util/Hashtable;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
Signature: Ljava/util/Hashtable<Lpurejavacomm/CommPortIdentifier;Ljava/util/List<Lpurejavacomm/CommPortOwnershipListener;>;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putstatic purejavacomm.CommPortIdentifier.m_Mutex:Ljava/lang/Object;
1: new java.util.Hashtable
dup
invokespecial java.util.Hashtable.<init>:()V
putstatic purejavacomm.CommPortIdentifier.m_PortIdentifiers:Ljava/util/Hashtable;
2: new java.util.Hashtable
dup
invokespecial java.util.Hashtable.<init>:()V
putstatic purejavacomm.CommPortIdentifier.m_OpenPorts:Ljava/util/Hashtable;
3: new java.util.Hashtable
dup
invokespecial java.util.Hashtable.<init>:()V
putstatic purejavacomm.CommPortIdentifier.m_Owners:Ljava/util/Hashtable;
return
LocalVariableTable:
Start End Slot Name Signature
public boolean equals(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
instanceof purejavacomm.CommPortIdentifier
ifeq 1
aload 0
getfield purejavacomm.CommPortIdentifier.m_PortName:Ljava/lang/String;
aload 1
checkcast purejavacomm.CommPortIdentifier
getfield purejavacomm.CommPortIdentifier.m_PortName:Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lpurejavacomm/CommPortIdentifier;
0 2 1 x Ljava/lang/Object;
MethodParameters:
Name Flags
x
public int hashCode();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield purejavacomm.CommPortIdentifier.m_PortName:Ljava/lang/String;
invokevirtual java.lang.String.hashCode:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lpurejavacomm/CommPortIdentifier;
public static void addPortName(java.lang.String, int, purejavacomm.CommDriver);
descriptor: (Ljava/lang/String;ILpurejavacomm/CommDriver;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=7, locals=4, args_size=3
start local 0 start local 1 start local 2 0: getstatic purejavacomm.CommPortIdentifier.m_Mutex:Ljava/lang/Object;
dup
astore 3
monitorenter
1: getstatic purejavacomm.CommPortIdentifier.m_PortIdentifiers:Ljava/util/Hashtable;
aload 0
new purejavacomm.CommPortIdentifier
dup
aload 0
iload 1
aload 2
invokespecial purejavacomm.CommPortIdentifier.<init>:(Ljava/lang/String;ILpurejavacomm/CommDriver;)V
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
2: aload 3
monitorexit
3: goto 6
StackMap locals: java.lang.String int purejavacomm.CommDriver java.lang.Object
StackMap stack: java.lang.Throwable
4: aload 3
monitorexit
5: athrow
6: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 portName Ljava/lang/String;
0 7 1 portType I
0 7 2 driver Lpurejavacomm/CommDriver;
Exception table:
from to target type
1 3 4 any
4 5 4 any
MethodParameters:
Name Flags
portName
portType
driver
private void <init>(java.lang.String, int, purejavacomm.CommDriver);
descriptor: (Ljava/lang/String;ILpurejavacomm/CommDriver;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.Hashtable
dup
invokespecial java.util.Hashtable.<init>:()V
putfield purejavacomm.CommPortIdentifier.m_OwnerShipListeners:Ljava/util/Hashtable;
2: aload 0
aload 1
putfield purejavacomm.CommPortIdentifier.m_PortName:Ljava/lang/String;
3: aload 0
iload 2
putfield purejavacomm.CommPortIdentifier.m_PortType:I
4: aload 0
aload 3
putfield purejavacomm.CommPortIdentifier.m_Driver:Lpurejavacomm/CommDriver;
5: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lpurejavacomm/CommPortIdentifier;
0 6 1 name Ljava/lang/String;
0 6 2 portType I
0 6 3 driver Lpurejavacomm/CommDriver;
MethodParameters:
Name Flags
name
portType
driver
public static purejavacomm.CommPortIdentifier getPortIdentifier(java.lang.String);
descriptor: (Ljava/lang/String;)Lpurejavacomm/CommPortIdentifier;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=5, args_size=1
start local 0 0: getstatic purejavacomm.CommPortIdentifier.m_Mutex:Ljava/lang/Object;
dup
astore 1
monitorenter
1: iconst_0
istore 2
start local 2 2: getstatic purejavacomm.CommPortIdentifier.m_OpenPorts:Ljava/util/Hashtable;
invokevirtual java.util.Hashtable.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 4
goto 7
StackMap locals: java.lang.String java.lang.Object int top java.util.Iterator
StackMap stack:
3: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast purejavacomm.CommPortIdentifier
astore 3
start local 3 4: aload 3
invokevirtual purejavacomm.CommPortIdentifier.getName:()Ljava/lang/String;
aload 0
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 7
5: aload 3
aload 1
monitorexit
6: areturn
end local 3 7: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
8: iload 2
ifeq 17
9: invokestatic purejavacomm.CommPortIdentifier.getPortIdentifiers:()Ljava/util/Enumeration;
astore 3
start local 3 10: goto 15
11: StackMap locals: java.lang.String java.lang.Object int java.util.Enumeration
StackMap stack:
aload 3
invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
checkcast purejavacomm.CommPortIdentifier
astore 4
start local 4 12: aload 4
invokevirtual purejavacomm.CommPortIdentifier.getName:()Ljava/lang/String;
aload 0
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 15
13: aload 4
aload 1
monitorexit
14: areturn
end local 4 15: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Enumeration.hasMoreElements:()Z
ifne 11
end local 3 16: goto 34
17: StackMap locals:
StackMap stack:
getstatic purejavacomm.CommPortIdentifier.m_PortIdentifiers:Ljava/util/Hashtable;
aload 0
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast purejavacomm.CommPortIdentifier
astore 3
start local 3 18: aload 3
ifnull 21
19: aload 3
aload 1
monitorexit
20: areturn
21: StackMap locals: purejavacomm.CommPortIdentifier
StackMap stack:
aload 0
getstatic jtermios.JTermios.O_RDWR:I
getstatic jtermios.JTermios.O_NOCTTY:I
ior
getstatic jtermios.JTermios.O_NONBLOCK:I
ior
invokestatic jtermios.JTermios.open:(Ljava/lang/String;I)I
istore 4
start local 4 22: iload 4
iconst_m1
if_icmpeq 31
23: iload 4
new jtermios.Termios
dup
invokespecial jtermios.Termios.<init>:()V
invokestatic jtermios.JTermios.tcgetattr:(ILjtermios/Termios;)I
iconst_m1
if_icmpne 24
invokestatic jtermios.JTermios.errno:()I
getstatic jtermios.JTermios.ENOTTY:I
if_icmpeq 29
24: StackMap locals: int
StackMap stack:
iload 4
invokestatic jtermios.JTermios.close:(I)I
pop
25: new purejavacomm.CommPortIdentifier
dup
aload 0
iconst_1
26: aconst_null
27: invokespecial purejavacomm.CommPortIdentifier.<init>:(Ljava/lang/String;ILpurejavacomm/CommDriver;)V
aload 1
monitorexit
28: areturn
29: StackMap locals:
StackMap stack:
iload 4
invokestatic jtermios.JTermios.close:(I)I
pop
30: goto 34
StackMap locals:
StackMap stack:
31: invokestatic jtermios.JTermios.errno:()I
getstatic jtermios.JTermios.ENOENT:I
if_icmpeq 34
32: new purejavacomm.CommPortIdentifier
dup
aload 0
iconst_1
aconst_null
invokespecial purejavacomm.CommPortIdentifier.<init>:(Ljava/lang/String;ILpurejavacomm/CommDriver;)V
aload 1
monitorexit
33: areturn
end local 4 end local 3 34: StackMap locals:
StackMap stack:
new purejavacomm.NoSuchPortException
dup
invokespecial purejavacomm.NoSuchPortException.<init>:()V
athrow
end local 2 35: StackMap locals: java.lang.String java.lang.Object
StackMap stack: java.lang.Throwable
aload 1
monitorexit
36: athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 37 0 portName Ljava/lang/String;
2 35 2 ENUMERATE Z
4 7 3 portid Lpurejavacomm/CommPortIdentifier;
10 16 3 e Ljava/util/Enumeration;
12 15 4 portid Lpurejavacomm/CommPortIdentifier;
18 34 3 portid Lpurejavacomm/CommPortIdentifier;
22 34 4 fd I
Exception table:
from to target type
1 6 35 any
7 14 35 any
15 20 35 any
21 28 35 any
29 33 35 any
34 36 35 any
Exceptions:
throws purejavacomm.NoSuchPortException
MethodParameters:
Name Flags
portName
public static purejavacomm.CommPortIdentifier getPortIdentifier(purejavacomm.CommPort);
descriptor: (Lpurejavacomm/CommPort;)Lpurejavacomm/CommPortIdentifier;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=3, args_size=1
start local 0 0: getstatic purejavacomm.CommPortIdentifier.m_Mutex:Ljava/lang/Object;
dup
astore 1
monitorenter
1: getstatic purejavacomm.CommPortIdentifier.m_OpenPorts:Ljava/util/Hashtable;
aload 0
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast purejavacomm.CommPortIdentifier
astore 2
start local 2 2: aload 2
ifnonnull 4
3: new purejavacomm.NoSuchPortException
dup
invokespecial purejavacomm.NoSuchPortException.<init>:()V
athrow
4: StackMap locals: java.lang.Object purejavacomm.CommPortIdentifier
StackMap stack:
aload 2
aload 1
monitorexit
5: areturn
end local 2 6: StackMap locals: purejavacomm.CommPort java.lang.Object
StackMap stack: java.lang.Throwable
aload 1
monitorexit
7: athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 port Lpurejavacomm/CommPort;
2 6 2 portid Lpurejavacomm/CommPortIdentifier;
Exception table:
from to target type
1 5 6 any
6 7 6 any
Exceptions:
throws purejavacomm.NoSuchPortException
MethodParameters:
Name Flags
port
public purejavacomm.CommPort open(java.lang.String, int);
descriptor: (Ljava/lang/String;I)Lpurejavacomm/CommPort;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=9, args_size=3
start local 0 start local 1 start local 2 0: getstatic purejavacomm.CommPortIdentifier.m_Mutex:Ljava/lang/Object;
dup
astore 3
monitorenter
1: invokestatic java.lang.System.currentTimeMillis:()J
lstore 4
start local 4 2: getstatic purejavacomm.CommPortIdentifier.m_Owners:Ljava/util/Hashtable;
aload 0
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
astore 6
start local 6 3: aload 6
ifnull 13
4: aload 0
iconst_3
invokevirtual purejavacomm.CommPortIdentifier.fireOwnershipEvent:(I)V
5: goto 9
6: StackMap locals: java.lang.Object long java.lang.String
StackMap stack:
getstatic purejavacomm.CommPortIdentifier.m_Mutex:Ljava/lang/Object;
ldc 5
invokevirtual java.lang.Object.wait:(J)V
7: aload 0
invokevirtual purejavacomm.CommPortIdentifier.isCurrentlyOwned:()Z
ifne 9
8: goto 13
9: StackMap locals:
StackMap stack:
invokestatic java.lang.System.currentTimeMillis:()J
lload 4
lsub
iload 2
i2l
lcmp
iflt 6
10: goto 13
StackMap locals:
StackMap stack: java.lang.InterruptedException
11: pop
12: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.interrupt:()V
13: StackMap locals:
StackMap stack:
aload 0
invokevirtual purejavacomm.CommPortIdentifier.isCurrentlyOwned:()Z
ifeq 15
14: new purejavacomm.PortInUseException
dup
aload 0
invokevirtual purejavacomm.CommPortIdentifier.getCurrentOwner:()Ljava/lang/String;
invokespecial purejavacomm.PortInUseException.<init>:(Ljava/lang/String;)V
athrow
15: StackMap locals:
StackMap stack:
getstatic purejavacomm.CommPortIdentifier.m_PortIdentifiers:Ljava/util/Hashtable;
aload 0
getfield purejavacomm.CommPortIdentifier.m_PortName:Ljava/lang/String;
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast purejavacomm.CommPortIdentifier
astore 7
start local 7 16: aload 7
ifnull 19
17: aload 7
getfield purejavacomm.CommPortIdentifier.m_Driver:Lpurejavacomm/CommDriver;
aload 0
getfield purejavacomm.CommPortIdentifier.m_PortName:Ljava/lang/String;
aload 7
getfield purejavacomm.CommPortIdentifier.m_PortType:I
invokeinterface purejavacomm.CommDriver.getCommPort:(Ljava/lang/String;I)Lpurejavacomm/CommPort;
astore 8
start local 8 18: goto 20
end local 8 19: StackMap locals: purejavacomm.CommPortIdentifier
StackMap stack:
new purejavacomm.PureJavaSerialPort
dup
aload 0
getfield purejavacomm.CommPortIdentifier.m_PortName:Ljava/lang/String;
iload 2
invokespecial purejavacomm.PureJavaSerialPort.<init>:(Ljava/lang/String;I)V
astore 8
start local 8 20: StackMap locals: purejavacomm.CommPort
StackMap stack:
getstatic purejavacomm.CommPortIdentifier.m_OpenPorts:Ljava/util/Hashtable;
aload 8
aload 0
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
21: getstatic purejavacomm.CommPortIdentifier.m_Owners:Ljava/util/Hashtable;
aload 0
aload 1
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
22: aload 0
iconst_1
invokevirtual purejavacomm.CommPortIdentifier.fireOwnershipEvent:(I)V
23: aload 8
aload 3
monitorexit
24: areturn
end local 8 end local 7 end local 6 end local 4 25: StackMap locals: purejavacomm.CommPortIdentifier java.lang.String int java.lang.Object
StackMap stack: java.lang.Throwable
aload 3
monitorexit
26: athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 27 0 this Lpurejavacomm/CommPortIdentifier;
0 27 1 appname Ljava/lang/String;
0 27 2 timeout I
2 25 4 t0 J
3 25 6 owner Ljava/lang/String;
16 25 7 info Lpurejavacomm/CommPortIdentifier;
18 19 8 port Lpurejavacomm/CommPort;
20 25 8 port Lpurejavacomm/CommPort;
Exception table:
from to target type
5 10 11 Class java.lang.InterruptedException
1 24 25 any
25 26 25 any
Exceptions:
throws purejavacomm.PortInUseException
MethodParameters:
Name Flags
appname
timeout
static void close(purejavacomm.CommPort);
descriptor: (Lpurejavacomm/CommPort;)V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=3, args_size=1
start local 0 0: getstatic purejavacomm.CommPortIdentifier.m_Mutex:Ljava/lang/Object;
dup
astore 1
monitorenter
1: getstatic purejavacomm.CommPortIdentifier.m_OpenPorts:Ljava/util/Hashtable;
aload 0
invokevirtual java.util.Hashtable.remove:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast purejavacomm.CommPortIdentifier
astore 2
start local 2 2: aload 2
ifnull 5
3: aload 2
iconst_2
invokevirtual purejavacomm.CommPortIdentifier.fireOwnershipEvent:(I)V
4: getstatic purejavacomm.CommPortIdentifier.m_Owners:Ljava/util/Hashtable;
aload 2
invokevirtual java.util.Hashtable.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 2 5: StackMap locals: java.lang.Object
StackMap stack:
aload 1
monitorexit
6: goto 9
StackMap locals:
StackMap stack: java.lang.Throwable
7: aload 1
monitorexit
8: athrow
9: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 port Lpurejavacomm/CommPort;
2 5 2 portid Lpurejavacomm/CommPortIdentifier;
Exception table:
from to target type
1 6 7 any
7 8 7 any
MethodParameters:
Name Flags
port
public purejavacomm.CommPort open(java.io.FileDescriptor);
descriptor: (Ljava/io/FileDescriptor;)Lpurejavacomm/CommPort;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: new purejavacomm.UnsupportedCommOperationException
dup
ldc "open from file descriptor not supported"
invokespecial purejavacomm.UnsupportedCommOperationException.<init>:(Ljava/lang/String;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lpurejavacomm/CommPortIdentifier;
0 1 1 fd Ljava/io/FileDescriptor;
Exceptions:
throws purejavacomm.UnsupportedCommOperationException
MethodParameters:
Name Flags
fd
public java.lang.String getName();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield purejavacomm.CommPortIdentifier.m_PortName:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lpurejavacomm/CommPortIdentifier;
public int getPortType();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield purejavacomm.CommPortIdentifier.m_PortType:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lpurejavacomm/CommPortIdentifier;
public static java.util.Enumeration<purejavacomm.CommPortIdentifier> getPortIdentifiers();
descriptor: ()Ljava/util/Enumeration;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=0
0: getstatic purejavacomm.CommPortIdentifier.m_Mutex:Ljava/lang/Object;
dup
astore 0
monitorenter
1: new purejavacomm.CommPortIdentifier$1
dup
invokespecial purejavacomm.CommPortIdentifier$1.<init>:()V
aload 0
monitorexit
2: areturn
3: StackMap locals: java.lang.Object
StackMap stack: java.lang.Throwable
aload 0
monitorexit
4: athrow
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
1 2 3 any
3 4 3 any
Signature: ()Ljava/util/Enumeration<Lpurejavacomm/CommPortIdentifier;>;
public java.lang.String getCurrentOwner();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: getstatic purejavacomm.CommPortIdentifier.m_Mutex:Ljava/lang/Object;
dup
astore 1
monitorenter
1: getstatic purejavacomm.CommPortIdentifier.m_Owners:Ljava/util/Hashtable;
aload 0
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
aload 1
monitorexit
2: areturn
3: StackMap locals: purejavacomm.CommPortIdentifier java.lang.Object
StackMap stack: java.lang.Throwable
aload 1
monitorexit
4: athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lpurejavacomm/CommPortIdentifier;
Exception table:
from to target type
1 2 3 any
3 4 3 any
public boolean isCurrentlyOwned();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual purejavacomm.CommPortIdentifier.getCurrentOwner:()Ljava/lang/String;
ifnull 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lpurejavacomm/CommPortIdentifier;
public void addPortOwnershipListener(purejavacomm.CommPortOwnershipListener);
descriptor: (Lpurejavacomm/CommPortOwnershipListener;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: getstatic purejavacomm.CommPortIdentifier.m_Mutex:Ljava/lang/Object;
dup
astore 2
monitorenter
1: aload 0
getfield purejavacomm.CommPortIdentifier.m_OwnerShipListeners:Ljava/util/Hashtable;
aload 0
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.List
astore 3
start local 3 2: aload 3
ifnonnull 5
3: new java.util.LinkedList
dup
invokespecial java.util.LinkedList.<init>:()V
astore 3
4: aload 0
getfield purejavacomm.CommPortIdentifier.m_OwnerShipListeners:Ljava/util/Hashtable;
aload 0
aload 3
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
5: StackMap locals: java.lang.Object java.util.List
StackMap stack:
aload 3
aload 1
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 3 6: aload 2
monitorexit
7: goto 10
StackMap locals: purejavacomm.CommPortIdentifier purejavacomm.CommPortOwnershipListener java.lang.Object
StackMap stack: java.lang.Throwable
8: aload 2
monitorexit
9: athrow
10: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lpurejavacomm/CommPortIdentifier;
0 11 1 listener Lpurejavacomm/CommPortOwnershipListener;
2 6 3 list Ljava/util/List<Lpurejavacomm/CommPortOwnershipListener;>;
Exception table:
from to target type
1 7 8 any
8 9 8 any
MethodParameters:
Name Flags
listener
public void removePortOwnershipListener(purejavacomm.CommPortOwnershipListener);
descriptor: (Lpurejavacomm/CommPortOwnershipListener;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: getstatic purejavacomm.CommPortIdentifier.m_Mutex:Ljava/lang/Object;
dup
astore 2
monitorenter
1: aload 0
getfield purejavacomm.CommPortIdentifier.m_OwnerShipListeners:Ljava/util/Hashtable;
aload 0
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.List
astore 3
start local 3 2: aload 3
ifnonnull 5
3: aload 2
monitorexit
4: return
5: StackMap locals: java.lang.Object java.util.List
StackMap stack:
aload 3
aload 1
invokeinterface java.util.List.remove:(Ljava/lang/Object;)Z
pop
6: aload 3
invokeinterface java.util.List.isEmpty:()Z
ifeq 8
7: aload 0
getfield purejavacomm.CommPortIdentifier.m_OwnerShipListeners:Ljava/util/Hashtable;
aload 0
invokevirtual java.util.Hashtable.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 3 8: StackMap locals:
StackMap stack:
aload 2
monitorexit
9: goto 12
StackMap locals:
StackMap stack: java.lang.Throwable
10: aload 2
monitorexit
11: athrow
12: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lpurejavacomm/CommPortIdentifier;
0 13 1 listener Lpurejavacomm/CommPortOwnershipListener;
2 8 3 list Ljava/util/List<Lpurejavacomm/CommPortOwnershipListener;>;
Exception table:
from to target type
1 4 10 any
5 9 10 any
10 11 10 any
MethodParameters:
Name Flags
listener
private void fireOwnershipEvent(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=6, args_size=2
start local 0 start local 1 0: getstatic purejavacomm.CommPortIdentifier.m_Mutex:Ljava/lang/Object;
dup
astore 2
monitorenter
1: aload 0
getfield purejavacomm.CommPortIdentifier.m_OwnerShipListeners:Ljava/util/Hashtable;
aload 0
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.List
astore 3
start local 3 2: aload 3
ifnonnull 5
3: aload 2
monitorexit
4: return
5: StackMap locals: java.lang.Object java.util.List
StackMap stack:
aload 3
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 5
goto 8
StackMap locals: purejavacomm.CommPortIdentifier int java.lang.Object java.util.List top java.util.Iterator
StackMap stack:
6: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast purejavacomm.CommPortOwnershipListener
astore 4
start local 4 7: aload 4
iload 1
invokeinterface purejavacomm.CommPortOwnershipListener.ownershipChange:(I)V
end local 4 8: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 6
end local 3 9: aload 2
monitorexit
10: goto 13
StackMap locals: purejavacomm.CommPortIdentifier int java.lang.Object
StackMap stack: java.lang.Throwable
11: aload 2
monitorexit
12: athrow
13: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lpurejavacomm/CommPortIdentifier;
0 14 1 type I
2 9 3 list Ljava/util/List<Lpurejavacomm/CommPortOwnershipListener;>;
7 8 4 listener Lpurejavacomm/CommPortOwnershipListener;
Exception table:
from to target type
1 4 11 any
5 10 11 any
11 12 11 any
MethodParameters:
Name Flags
type
}
SourceFile: "CommPortIdentifier.java"
NestMembers:
purejavacomm.CommPortIdentifier$1
InnerClasses:
purejavacomm.CommPortIdentifier$1