public class oadd.org.apache.commons.collections.UnboundedFifoBuffer extends java.util.AbstractCollection implements oadd.org.apache.commons.collections.Buffer
{
protected java.lang.Object[] m_buffer;
protected int m_head;
protected int m_tail;
public void <init>()
{
oadd.org.apache.commons.collections.UnboundedFifoBuffer v;
v := @this: oadd.org.apache.commons.collections.UnboundedFifoBuffer;
specialinvoke v.<oadd.org.apache.commons.collections.UnboundedFifoBuffer: void <init>(int)>(32);
return;
}
public void <init>(int)
{
java.lang.Object[] v;
oadd.org.apache.commons.collections.UnboundedFifoBuffer v;
int v, v;
java.lang.IllegalArgumentException v;
v := @this: oadd.org.apache.commons.collections.UnboundedFifoBuffer;
v := @parameter: int;
specialinvoke v.<java.util.AbstractCollection: void <init>()>();
if v > 0 goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("The size must be greater than 0");
throw v;
label:
v = v + 1;
v = newarray (java.lang.Object)[v];
v.<oadd.org.apache.commons.collections.UnboundedFifoBuffer: java.lang.Object[] m_buffer> = v;
v.<oadd.org.apache.commons.collections.UnboundedFifoBuffer: int m_head> = 0;
v.<oadd.org.apache.commons.collections.UnboundedFifoBuffer: int m_tail> = 0;
return;
}
public int size()
{
java.lang.Object[] v;
oadd.org.apache.commons.collections.UnboundedFifoBuffer v;
int v, v, v, v, v, v, v, v, v;
v := @this: oadd.org.apache.commons.collections.UnboundedFifoBuffer;
v = v.<oadd.org.apache.commons.collections.UnboundedFifoBuffer: int m_tail>;
v = v.<oadd.org.apache.commons.collections.UnboundedFifoBuffer: int m_head>;
if v >= v goto label;
v = v.<oadd.org.apache.commons.collections.UnboundedFifoBuffer: java.lang.Object[] m_buffer>;
v = lengthof v;
v = v.<oadd.org.apache.commons.collections.UnboundedFifoBuffer: int m_head>;
v = v - v;
v = v.<oadd.org.apache.commons.collections.UnboundedFifoBuffer: int m_tail>;
v = v + v;
goto label;
label:
v = v.<oadd.org.apache.commons.collections.UnboundedFifoBuffer: int m_tail>;
v = v.<oadd.org.apache.commons.collections.UnboundedFifoBuffer: int m_head>;
v = v - v;
label:
return v;
}
public boolean isEmpty()
{
int v;
boolean v;
oadd.org.apache.commons.collections.UnboundedFifoBuffer v;
v := @this: oadd.org.apache.commons.collections.UnboundedFifoBuffer;
v = virtualinvoke v.<oadd.org.apache.commons.collections.UnboundedFifoBuffer: int size()>();
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public boolean add(java.lang.Object)
{
java.lang.Object[] v, v, v, v, v, v, v, v;
java.lang.NullPointerException v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
oadd.org.apache.commons.collections.UnboundedFifoBuffer v;
java.lang.Object v, v;
v := @this: oadd.org.apache.commons.collections.UnboundedFifoBuffer;
v := @parameter: java.lang.Object;
if v != null goto label;
v = new java.lang.NullPointerException;
specialinvoke v.<java.lang.NullPointerException: void <init>(java.lang.String)>("Attempted to add null object to buffer");
throw v;
label:
v = virtualinvoke v.<oadd.org.apache.commons.collections.UnboundedFifoBuffer: int size()>();
v = v + 1;
v = v.<oadd.org.apache.commons.collections.UnboundedFifoBuffer: java.lang.Object[] m_buffer>;
v = lengthof v;
if v < v goto label;
v = v.<oadd.org.apache.commons.collections.UnboundedFifoBuffer: java.lang.Object[] m_buffer>;
v = lengthof v;
v = v - 1;
v = v * 2;
v = v + 1;
v = newarray (java.lang.Object)[v];
v = 0;
v = v.<oadd.org.apache.commons.collections.UnboundedFifoBuffer: int m_head>;
label:
v = v.<oadd.org.apache.commons.collections.UnboundedFifoBuffer: int m_tail>;
if v == v goto label;
v = v.<oadd.org.apache.commons.collections.UnboundedFifoBuffer: java.lang.Object[] m_buffer>;
v = v[v];
v[v] = v;
v = v.<oadd.org.apache.commons.collections.UnboundedFifoBuffer: java.lang.Object[] m_buffer>;
v[v] = null;
v = v + 1;
v = v + 1;
v = v.<oadd.org.apache.commons.collections.UnboundedFifoBuffer: java.lang.Object[] m_buffer>;
v = lengthof v;
if v != v goto label;
v = 0;
goto label;
label:
v.<oadd.org.apache.commons.collections.UnboundedFifoBuffer: java.lang.Object[] m_buffer> = v;
v.<oadd.org.apache.commons.collections.UnboundedFifoBuffer: int m_head> = 0;
v.<oadd.org.apache.commons.collections.UnboundedFifoBuffer: int m_tail> = v;
label:
v = v.<oadd.org.apache.commons.collections.UnboundedFifoBuffer: java.lang.Object[] m_buffer>;
v = v.<oadd.org.apache.commons.collections.UnboundedFifoBuffer: int m_tail>;
v[v] = v;
v = v.<oadd.org.apache.commons.collections.UnboundedFifoBuffer: int m_tail>;
v = v + 1;
v.<oadd.org.apache.commons.collections.UnboundedFifoBuffer: int m_tail> = v;
v = v.<oadd.org.apache.commons.collections.UnboundedFifoBuffer: int m_tail>;
v = v.<oadd.org.apache.commons.collections.UnboundedFifoBuffer: java.lang.Object[] m_buffer>;
v = lengthof v;
if v < v goto label;
v.<oadd.org.apache.commons.collections.UnboundedFifoBuffer: int m_tail> = 0;
label:
return 1;
}
public java.lang.Object get()
{
java.lang.Object[] v;
oadd.org.apache.commons.collections.BufferUnderflowException v;
oadd.org.apache.commons.collections.UnboundedFifoBuffer v;
int v;
java.lang.Object v;
boolean v;
v := @this: oadd.org.apache.commons.collections.UnboundedFifoBuffer;
v = virtualinvoke v.<oadd.org.apache.commons.collections.UnboundedFifoBuffer: boolean isEmpty()>();
if v == 0 goto label;
v = new oadd.org.apache.commons.collections.BufferUnderflowException;
specialinvoke v.<oadd.org.apache.commons.collections.BufferUnderflowException: void <init>(java.lang.String)>("The buffer is already empty");
throw v;
label:
v = v.<oadd.org.apache.commons.collections.UnboundedFifoBuffer: java.lang.Object[] m_buffer>;
v = v.<oadd.org.apache.commons.collections.UnboundedFifoBuffer: int m_head>;
v = v[v];
return v;
}
public java.lang.Object remove()
{
java.lang.Object[] v, v, v;
oadd.org.apache.commons.collections.UnboundedFifoBuffer v;
oadd.org.apache.commons.collections.BufferUnderflowException v;
int v, v, v, v, v, v;
java.lang.Object v;
boolean v;
v := @this: oadd.org.apache.commons.collections.UnboundedFifoBuffer;
v = virtualinvoke v.<oadd.org.apache.commons.collections.UnboundedFifoBuffer: boolean isEmpty()>();
if v == 0 goto label;
v = new oadd.org.apache.commons.collections.BufferUnderflowException;
specialinvoke v.<oadd.org.apache.commons.collections.BufferUnderflowException: void <init>(java.lang.String)>("The buffer is already empty");
throw v;
label:
v = v.<oadd.org.apache.commons.collections.UnboundedFifoBuffer: java.lang.Object[] m_buffer>;
v = v.<oadd.org.apache.commons.collections.UnboundedFifoBuffer: int m_head>;
v = v[v];
if null == v goto label;
v = v.<oadd.org.apache.commons.collections.UnboundedFifoBuffer: java.lang.Object[] m_buffer>;
v = v.<oadd.org.apache.commons.collections.UnboundedFifoBuffer: int m_head>;
v[v] = null;
v = v.<oadd.org.apache.commons.collections.UnboundedFifoBuffer: int m_head>;
v = v + 1;
v.<oadd.org.apache.commons.collections.UnboundedFifoBuffer: int m_head> = v;
v = v.<oadd.org.apache.commons.collections.UnboundedFifoBuffer: int m_head>;
v = v.<oadd.org.apache.commons.collections.UnboundedFifoBuffer: java.lang.Object[] m_buffer>;
v = lengthof v;
if v < v goto label;
v.<oadd.org.apache.commons.collections.UnboundedFifoBuffer: int m_head> = 0;
label:
return v;
}
private int increment(int)
{
java.lang.Object[] v;
oadd.org.apache.commons.collections.UnboundedFifoBuffer v;
int v, v, v;
v := @this: oadd.org.apache.commons.collections.UnboundedFifoBuffer;
v := @parameter: int;
v = v + 1;
v = v.<oadd.org.apache.commons.collections.UnboundedFifoBuffer: java.lang.Object[] m_buffer>;
v = lengthof v;
if v < v goto label;
v = 0;
label:
return v;
}
private int decrement(int)
{
java.lang.Object[] v;
oadd.org.apache.commons.collections.UnboundedFifoBuffer v;
int v, v, v;
v := @this: oadd.org.apache.commons.collections.UnboundedFifoBuffer;
v := @parameter: int;
v = v - 1;
if v >= 0 goto label;
v = v.<oadd.org.apache.commons.collections.UnboundedFifoBuffer: java.lang.Object[] m_buffer>;
v = lengthof v;
v = v - 1;
label:
return v;
}
public java.util.Iterator iterator()
{
oadd.org.apache.commons.collections.UnboundedFifoBuffer$1 v;
oadd.org.apache.commons.collections.UnboundedFifoBuffer v;
v := @this: oadd.org.apache.commons.collections.UnboundedFifoBuffer;
v = new oadd.org.apache.commons.collections.UnboundedFifoBuffer$1;
specialinvoke v.<oadd.org.apache.commons.collections.UnboundedFifoBuffer$1: void <init>(oadd.org.apache.commons.collections.UnboundedFifoBuffer)>(v);
return v;
}
}