public class org.jvnet.hk.internal.IndexedListData extends java.lang.Object
{
private final java.util.ArrayList unsortedList;
private volatile boolean sorted;
public void <init>()
{
org.jvnet.hk.internal.IndexedListData v;
java.util.ArrayList v;
v := @this: org.jvnet.hk.internal.IndexedListData;
specialinvoke v.<java.lang.Object: void <init>()>();
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v.<org.jvnet.hk.internal.IndexedListData: java.util.ArrayList unsortedList> = v;
v.<org.jvnet.hk.internal.IndexedListData: boolean sorted> = 1;
return;
}
public java.util.Collection getSortedList()
{
java.lang.Throwable v;
org.jvnet.hk.internal.DescriptorComparator v;
org.jvnet.hk.internal.IndexedListData v;
java.util.ArrayList v, v, v, v, v, v;
int v;
boolean v, v;
v := @this: org.jvnet.hk.internal.IndexedListData;
v = v.<org.jvnet.hk.internal.IndexedListData: boolean sorted>;
if v == 0 goto label;
v = v.<org.jvnet.hk.internal.IndexedListData: java.util.ArrayList unsortedList>;
return v;
label:
entermonitor v;
label:
v = v.<org.jvnet.hk.internal.IndexedListData: boolean sorted>;
if v == 0 goto label;
v = v.<org.jvnet.hk.internal.IndexedListData: java.util.ArrayList unsortedList>;
exitmonitor v;
label:
return v;
label:
v = v.<org.jvnet.hk.internal.IndexedListData: java.util.ArrayList unsortedList>;
v = virtualinvoke v.<java.util.ArrayList: int size()>();
if v > 1 goto label;
v.<org.jvnet.hk.internal.IndexedListData: boolean sorted> = 1;
v = v.<org.jvnet.hk.internal.IndexedListData: java.util.ArrayList unsortedList>;
exitmonitor v;
label:
return v;
label:
v = v.<org.jvnet.hk.internal.IndexedListData: java.util.ArrayList unsortedList>;
v = <org.jvnet.hk.internal.ServiceLocatorImpl: org.jvnet.hk.internal.DescriptorComparator DESCRIPTOR_COMPARATOR>;
staticinvoke <java.util.Collections: void sort(java.util.List,java.util.Comparator)>(v, v);
v.<org.jvnet.hk.internal.IndexedListData: boolean sorted> = 1;
v = v.<org.jvnet.hk.internal.IndexedListData: java.util.ArrayList unsortedList>;
exitmonitor v;
label:
return v;
label:
v := @caughtexception;
exitmonitor v;
throw v;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
public synchronized void addDescriptor(org.jvnet.hk.internal.SystemDescriptor)
{
org.jvnet.hk.internal.SystemDescriptor v;
int v;
org.jvnet.hk.internal.IndexedListData v;
boolean v;
java.util.ArrayList v, v;
v := @this: org.jvnet.hk.internal.IndexedListData;
v := @parameter: org.jvnet.hk.internal.SystemDescriptor;
v = v.<org.jvnet.hk.internal.IndexedListData: java.util.ArrayList unsortedList>;
virtualinvoke v.<java.util.ArrayList: boolean add(java.lang.Object)>(v);
v = v.<org.jvnet.hk.internal.IndexedListData: java.util.ArrayList unsortedList>;
v = virtualinvoke v.<java.util.ArrayList: int size()>();
if v > 1 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v.<org.jvnet.hk.internal.IndexedListData: boolean sorted> = v;
virtualinvoke v.<org.jvnet.hk.internal.SystemDescriptor: void addList(org.jvnet.hk.internal.IndexedListData)>(v);
return;
}
public synchronized void removeDescriptor(org.jvnet.hk.internal.SystemDescriptor)
{
org.jvnet.hk.internal.DescriptorComparator v;
java.util.ListIterator v;
org.jvnet.hk.internal.IndexedListData v;
java.util.ArrayList v, v;
org.jvnet.hk.internal.SystemDescriptor v;
int v, v;
java.lang.Object v;
boolean v, v;
v := @this: org.jvnet.hk.internal.IndexedListData;
v := @parameter: org.jvnet.hk.internal.SystemDescriptor;
v = v.<org.jvnet.hk.internal.IndexedListData: java.util.ArrayList unsortedList>;
v = virtualinvoke v.<java.util.ArrayList: java.util.ListIterator listIterator()>();
label:
v = interfaceinvoke v.<java.util.ListIterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.ListIterator: java.lang.Object next()>();
v = <org.jvnet.hk.internal.ServiceLocatorImpl: org.jvnet.hk.internal.DescriptorComparator DESCRIPTOR_COMPARATOR>;
v = virtualinvoke v.<org.jvnet.hk.internal.DescriptorComparator: int compare(org.glassfish.hk.api.Descriptor,org.glassfish.hk.api.Descriptor)>(v, v);
if v != 0 goto label;
interfaceinvoke v.<java.util.ListIterator: void remove()>();
label:
v = v.<org.jvnet.hk.internal.IndexedListData: java.util.ArrayList unsortedList>;
v = virtualinvoke v.<java.util.ArrayList: int size()>();
if v > 1 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v.<org.jvnet.hk.internal.IndexedListData: boolean sorted> = v;
virtualinvoke v.<org.jvnet.hk.internal.SystemDescriptor: void removeList(org.jvnet.hk.internal.IndexedListData)>(v);
return;
}
public synchronized boolean isEmpty()
{
org.jvnet.hk.internal.IndexedListData v;
boolean v;
java.util.ArrayList v;
v := @this: org.jvnet.hk.internal.IndexedListData;
v = v.<org.jvnet.hk.internal.IndexedListData: java.util.ArrayList unsortedList>;
v = virtualinvoke v.<java.util.ArrayList: boolean isEmpty()>();
return v;
}
public synchronized void unSort()
{
int v;
org.jvnet.hk.internal.IndexedListData v;
java.util.ArrayList v;
v := @this: org.jvnet.hk.internal.IndexedListData;
v = v.<org.jvnet.hk.internal.IndexedListData: java.util.ArrayList unsortedList>;
v = virtualinvoke v.<java.util.ArrayList: int size()>();
if v <= 1 goto label;
v.<org.jvnet.hk.internal.IndexedListData: boolean sorted> = 0;
label:
return;
}
public synchronized void clear()
{
java.util.Iterator v;
org.jvnet.hk.internal.IndexedListData v;
java.lang.Object v;
boolean v;
java.util.ArrayList v, v;
v := @this: org.jvnet.hk.internal.IndexedListData;
v = v.<org.jvnet.hk.internal.IndexedListData: java.util.ArrayList unsortedList>;
v = virtualinvoke v.<java.util.ArrayList: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
virtualinvoke v.<org.jvnet.hk.internal.SystemDescriptor: void removeList(org.jvnet.hk.internal.IndexedListData)>(v);
goto label;
label:
v = v.<org.jvnet.hk.internal.IndexedListData: java.util.ArrayList unsortedList>;
virtualinvoke v.<java.util.ArrayList: void clear()>();
return;
}
public synchronized int size()
{
int v;
org.jvnet.hk.internal.IndexedListData v;
java.util.ArrayList v;
v := @this: org.jvnet.hk.internal.IndexedListData;
v = v.<org.jvnet.hk.internal.IndexedListData: java.util.ArrayList unsortedList>;
v = virtualinvoke v.<java.util.ArrayList: int size()>();
return v;
}
}