class org.apache.axiom.blob.OverflowableBlobImpl$OutputStreamImpl extends java.io.OutputStream implements org.apache.axiom.ext.io.ReadFromSupport
{
final org.apache.axiom.blob.OverflowableBlobImpl this$0;
void <init>(org.apache.axiom.blob.OverflowableBlobImpl)
{
org.apache.axiom.blob.OverflowableBlobImpl v;
org.apache.axiom.blob.OverflowableBlobImpl$OutputStreamImpl v;
v := @this: org.apache.axiom.blob.OverflowableBlobImpl$OutputStreamImpl;
v := @parameter: org.apache.axiom.blob.OverflowableBlobImpl;
v.<org.apache.axiom.blob.OverflowableBlobImpl$OutputStreamImpl: org.apache.axiom.blob.OverflowableBlobImpl this$0> = v;
specialinvoke v.<java.io.OutputStream: void <init>()>();
return;
}
public void write(byte[], int, int) throws java.io.IOException
{
byte[] v, v;
java.lang.IllegalStateException v;
org.apache.axiom.blob.OverflowableBlobImpl$OutputStreamImpl v;
org.apache.axiom.blob.OverflowableBlobImpl v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
byte[][] v;
org.apache.axiom.blob.State v, v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.io.OutputStream v, v, v;
v := @this: org.apache.axiom.blob.OverflowableBlobImpl$OutputStreamImpl;
v := @parameter: byte[];
v := @parameter: int;
v := @parameter: int;
v = v.<org.apache.axiom.blob.OverflowableBlobImpl$OutputStreamImpl: org.apache.axiom.blob.OverflowableBlobImpl this$0>;
v = v.<org.apache.axiom.blob.OverflowableBlobImpl: org.apache.axiom.blob.State state>;
v = <org.apache.axiom.blob.State: org.apache.axiom.blob.State UNCOMMITTED>;
if v == v goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>()>();
throw v;
label:
v = v.<org.apache.axiom.blob.OverflowableBlobImpl$OutputStreamImpl: org.apache.axiom.blob.OverflowableBlobImpl this$0>;
v = v.<org.apache.axiom.blob.OverflowableBlobImpl: java.io.OutputStream overflowOutputStream>;
if v == null goto label;
v = v.<org.apache.axiom.blob.OverflowableBlobImpl$OutputStreamImpl: org.apache.axiom.blob.OverflowableBlobImpl this$0>;
v = v.<org.apache.axiom.blob.OverflowableBlobImpl: java.io.OutputStream overflowOutputStream>;
virtualinvoke v.<java.io.OutputStream: void write(byte[],int,int)>(v, v, v);
goto label;
label:
v = v.<org.apache.axiom.blob.OverflowableBlobImpl$OutputStreamImpl: org.apache.axiom.blob.OverflowableBlobImpl this$0>;
v = v.<org.apache.axiom.blob.OverflowableBlobImpl: byte[][] chunks>;
v = lengthof v;
v = v.<org.apache.axiom.blob.OverflowableBlobImpl$OutputStreamImpl: org.apache.axiom.blob.OverflowableBlobImpl this$0>;
v = v.<org.apache.axiom.blob.OverflowableBlobImpl: int chunkIndex>;
v = v - v;
v = v.<org.apache.axiom.blob.OverflowableBlobImpl$OutputStreamImpl: org.apache.axiom.blob.OverflowableBlobImpl this$0>;
v = v.<org.apache.axiom.blob.OverflowableBlobImpl: int chunkSize>;
v = v * v;
v = v.<org.apache.axiom.blob.OverflowableBlobImpl$OutputStreamImpl: org.apache.axiom.blob.OverflowableBlobImpl this$0>;
v = v.<org.apache.axiom.blob.OverflowableBlobImpl: int chunkOffset>;
v = v - v;
if v <= v goto label;
v = v.<org.apache.axiom.blob.OverflowableBlobImpl$OutputStreamImpl: org.apache.axiom.blob.OverflowableBlobImpl this$0>;
virtualinvoke v.<org.apache.axiom.blob.OverflowableBlobImpl: void switchToOverflowBlob()>();
v = v.<org.apache.axiom.blob.OverflowableBlobImpl$OutputStreamImpl: org.apache.axiom.blob.OverflowableBlobImpl this$0>;
v = v.<org.apache.axiom.blob.OverflowableBlobImpl: java.io.OutputStream overflowOutputStream>;
virtualinvoke v.<java.io.OutputStream: void write(byte[],int,int)>(v, v, v);
goto label;
label:
if v <= 0 goto label;
v = v.<org.apache.axiom.blob.OverflowableBlobImpl$OutputStreamImpl: org.apache.axiom.blob.OverflowableBlobImpl this$0>;
v = virtualinvoke v.<org.apache.axiom.blob.OverflowableBlobImpl: byte[] getCurrentChunk()>();
v = v.<org.apache.axiom.blob.OverflowableBlobImpl$OutputStreamImpl: org.apache.axiom.blob.OverflowableBlobImpl this$0>;
v = v.<org.apache.axiom.blob.OverflowableBlobImpl: int chunkSize>;
v = v.<org.apache.axiom.blob.OverflowableBlobImpl$OutputStreamImpl: org.apache.axiom.blob.OverflowableBlobImpl this$0>;
v = v.<org.apache.axiom.blob.OverflowableBlobImpl: int chunkOffset>;
v = v - v;
v = staticinvoke <java.lang.Math: int min(int,int)>(v, v);
v = v.<org.apache.axiom.blob.OverflowableBlobImpl$OutputStreamImpl: org.apache.axiom.blob.OverflowableBlobImpl this$0>;
v = v.<org.apache.axiom.blob.OverflowableBlobImpl: int chunkOffset>;
staticinvoke <java.lang.System: void arraycopy(java.lang.Object,int,java.lang.Object,int,int)>(v, v, v, v, v);
v = v - v;
v = v + v;
v = v.<org.apache.axiom.blob.OverflowableBlobImpl$OutputStreamImpl: org.apache.axiom.blob.OverflowableBlobImpl this$0>;
v = v.<org.apache.axiom.blob.OverflowableBlobImpl: int chunkOffset>;
v = v + v;
v.<org.apache.axiom.blob.OverflowableBlobImpl: int chunkOffset> = v;
v = v.<org.apache.axiom.blob.OverflowableBlobImpl$OutputStreamImpl: org.apache.axiom.blob.OverflowableBlobImpl this$0>;
v = v.<org.apache.axiom.blob.OverflowableBlobImpl: int chunkOffset>;
v = v.<org.apache.axiom.blob.OverflowableBlobImpl$OutputStreamImpl: org.apache.axiom.blob.OverflowableBlobImpl this$0>;
v = v.<org.apache.axiom.blob.OverflowableBlobImpl: int chunkSize>;
if v != v goto label;
v = v.<org.apache.axiom.blob.OverflowableBlobImpl$OutputStreamImpl: org.apache.axiom.blob.OverflowableBlobImpl this$0>;
v = v.<org.apache.axiom.blob.OverflowableBlobImpl: int chunkIndex>;
v = v + 1;
v.<org.apache.axiom.blob.OverflowableBlobImpl: int chunkIndex> = v;
v = v.<org.apache.axiom.blob.OverflowableBlobImpl$OutputStreamImpl: org.apache.axiom.blob.OverflowableBlobImpl this$0>;
v.<org.apache.axiom.blob.OverflowableBlobImpl: int chunkOffset> = 0;
goto label;
label:
return;
}
public void write(byte[]) throws java.io.IOException
{
int v;
byte[] v;
org.apache.axiom.blob.OverflowableBlobImpl$OutputStreamImpl v;
v := @this: org.apache.axiom.blob.OverflowableBlobImpl$OutputStreamImpl;
v := @parameter: byte[];
v = lengthof v;
virtualinvoke v.<org.apache.axiom.blob.OverflowableBlobImpl$OutputStreamImpl: void write(byte[],int,int)>(v, 0, v);
return;
}
public void write(int) throws java.io.IOException
{
int v;
byte[] v;
org.apache.axiom.blob.OverflowableBlobImpl$OutputStreamImpl v;
v := @this: org.apache.axiom.blob.OverflowableBlobImpl$OutputStreamImpl;
v := @parameter: int;
v = newarray (byte)[1];
v[0] = v;
virtualinvoke v.<org.apache.axiom.blob.OverflowableBlobImpl$OutputStreamImpl: void write(byte[],int,int)>(v, 0, 1);
return;
}
public void close() throws java.io.IOException
{
java.io.OutputStream v, v;
org.apache.axiom.blob.OverflowableBlobImpl v, v, v;
org.apache.axiom.blob.State v;
org.apache.axiom.blob.OverflowableBlobImpl$OutputStreamImpl v;
v := @this: org.apache.axiom.blob.OverflowableBlobImpl$OutputStreamImpl;
v = v.<org.apache.axiom.blob.OverflowableBlobImpl$OutputStreamImpl: org.apache.axiom.blob.OverflowableBlobImpl this$0>;
v = v.<org.apache.axiom.blob.OverflowableBlobImpl: java.io.OutputStream overflowOutputStream>;
if v == null goto label;
v = v.<org.apache.axiom.blob.OverflowableBlobImpl$OutputStreamImpl: org.apache.axiom.blob.OverflowableBlobImpl this$0>;
v = v.<org.apache.axiom.blob.OverflowableBlobImpl: java.io.OutputStream overflowOutputStream>;
virtualinvoke v.<java.io.OutputStream: void close()>();
label:
v = v.<org.apache.axiom.blob.OverflowableBlobImpl$OutputStreamImpl: org.apache.axiom.blob.OverflowableBlobImpl this$0>;
v = <org.apache.axiom.blob.State: org.apache.axiom.blob.State COMMITTED>;
v.<org.apache.axiom.blob.OverflowableBlobImpl: org.apache.axiom.blob.State state> = v;
return;
}
public long readFrom(java.io.InputStream, long) throws org.apache.axiom.ext.io.StreamCopyException
{
org.apache.axiom.blob.OverflowableBlobImpl v;
long v, v;
java.io.InputStream v;
org.apache.axiom.blob.OverflowableBlobImpl$OutputStreamImpl v;
v := @this: org.apache.axiom.blob.OverflowableBlobImpl$OutputStreamImpl;
v := @parameter: java.io.InputStream;
v := @parameter: long;
v = v.<org.apache.axiom.blob.OverflowableBlobImpl$OutputStreamImpl: org.apache.axiom.blob.OverflowableBlobImpl this$0>;
v = virtualinvoke v.<org.apache.axiom.blob.OverflowableBlobImpl: long readFrom(java.io.InputStream,long,boolean)>(v, v, 0);
return v;
}
}