public abstract class org.apache.axiom.util.base.AbstractBase64EncodingOutputStream extends java.io.OutputStream
{
private final boolean ignoreFlush;
private final byte[] in;
private final byte[] out;
private int rest;
private boolean completed;
public void <init>(boolean)
{
byte[] v, v;
org.apache.axiom.util.base.AbstractBase64EncodingOutputStream v;
boolean v;
v := @this: org.apache.axiom.util.base.AbstractBase64EncodingOutputStream;
v := @parameter: boolean;
specialinvoke v.<java.io.OutputStream: void <init>()>();
v = newarray (byte)[3];
v.<org.apache.axiom.util.base.AbstractBase64EncodingOutputStream: byte[] in> = v;
v = newarray (byte)[4];
v.<org.apache.axiom.util.base.AbstractBase64EncodingOutputStream: byte[] out> = v;
v.<org.apache.axiom.util.base.AbstractBase64EncodingOutputStream: boolean ignoreFlush> = v;
return;
}
public void <init>()
{
org.apache.axiom.util.base.AbstractBase64EncodingOutputStream v;
v := @this: org.apache.axiom.util.base.AbstractBase64EncodingOutputStream;
specialinvoke v.<org.apache.axiom.util.base.AbstractBase64EncodingOutputStream: void <init>(boolean)>(0);
return;
}
public final void write(byte[], int, int) throws java.io.IOException
{
byte[] v, v, v, v;
byte v, v;
org.apache.axiom.util.base.AbstractBase64EncodingOutputStream v;
int v, v, v, v, v, v, v, v, v, v, v;
boolean v;
java.io.IOException v;
v := @this: org.apache.axiom.util.base.AbstractBase64EncodingOutputStream;
v := @parameter: byte[];
v := @parameter: int;
v := @parameter: int;
v = v.<org.apache.axiom.util.base.AbstractBase64EncodingOutputStream: boolean completed>;
if v == 0 goto label;
v = new java.io.IOException;
specialinvoke v.<java.io.IOException: void <init>(java.lang.String)>("Attempt to write data after base encoding has been completed");
throw v;
label:
v = v.<org.apache.axiom.util.base.AbstractBase64EncodingOutputStream: int rest>;
if v <= 0 goto label;
label:
if v <= 0 goto label;
v = v.<org.apache.axiom.util.base.AbstractBase64EncodingOutputStream: int rest>;
if v >= 3 goto label;
v = v.<org.apache.axiom.util.base.AbstractBase64EncodingOutputStream: byte[] in>;
v = v.<org.apache.axiom.util.base.AbstractBase64EncodingOutputStream: int rest>;
v = v + 1;
v.<org.apache.axiom.util.base.AbstractBase64EncodingOutputStream: int rest> = v;
v = v;
v = v + 1;
v = v[v];
v[v] = v;
v = v - 1;
goto label;
label:
v = v.<org.apache.axiom.util.base.AbstractBase64EncodingOutputStream: int rest>;
if v != 3 goto label;
v = v.<org.apache.axiom.util.base.AbstractBase64EncodingOutputStream: byte[] in>;
specialinvoke v.<org.apache.axiom.util.base.AbstractBase64EncodingOutputStream: void encode(byte[],int,int)>(v, 0, 3);
v.<org.apache.axiom.util.base.AbstractBase64EncodingOutputStream: int rest> = 0;
label:
if v < 3 goto label;
specialinvoke v.<org.apache.axiom.util.base.AbstractBase64EncodingOutputStream: void encode(byte[],int,int)>(v, v, 3);
v = v + 3;
v = v - 3;
goto label;
label:
if v <= 0 goto label;
v = v.<org.apache.axiom.util.base.AbstractBase64EncodingOutputStream: byte[] in>;
v = v.<org.apache.axiom.util.base.AbstractBase64EncodingOutputStream: int rest>;
v = v + 1;
v.<org.apache.axiom.util.base.AbstractBase64EncodingOutputStream: int rest> = v;
v = v;
v = v + 1;
v = v[v];
v[v] = v;
v = v - 1;
goto label;
label:
return;
}
public final void write(int) throws java.io.IOException
{
byte[] v, v;
org.apache.axiom.util.base.AbstractBase64EncodingOutputStream v;
int v, v, v, v;
v := @this: org.apache.axiom.util.base.AbstractBase64EncodingOutputStream;
v := @parameter: int;
v = v.<org.apache.axiom.util.base.AbstractBase64EncodingOutputStream: byte[] in>;
v = v.<org.apache.axiom.util.base.AbstractBase64EncodingOutputStream: int rest>;
v = v + 1;
v.<org.apache.axiom.util.base.AbstractBase64EncodingOutputStream: int rest> = v;
v[v] = v;
v = v.<org.apache.axiom.util.base.AbstractBase64EncodingOutputStream: int rest>;
if v != 3 goto label;
v = v.<org.apache.axiom.util.base.AbstractBase64EncodingOutputStream: byte[] in>;
specialinvoke v.<org.apache.axiom.util.base.AbstractBase64EncodingOutputStream: void encode(byte[],int,int)>(v, 0, 3);
v.<org.apache.axiom.util.base.AbstractBase64EncodingOutputStream: int rest> = 0;
label:
return;
}
public final void complete() throws java.io.IOException
{
byte[] v;
org.apache.axiom.util.base.AbstractBase64EncodingOutputStream v;
int v, v;
boolean v;
v := @this: org.apache.axiom.util.base.AbstractBase64EncodingOutputStream;
v = v.<org.apache.axiom.util.base.AbstractBase64EncodingOutputStream: boolean completed>;
if v != 0 goto label;
v = v.<org.apache.axiom.util.base.AbstractBase64EncodingOutputStream: int rest>;
if v <= 0 goto label;
v = v.<org.apache.axiom.util.base.AbstractBase64EncodingOutputStream: byte[] in>;
v = v.<org.apache.axiom.util.base.AbstractBase64EncodingOutputStream: int rest>;
specialinvoke v.<org.apache.axiom.util.base.AbstractBase64EncodingOutputStream: void encode(byte[],int,int)>(v, 0, v);
label:
virtualinvoke v.<org.apache.axiom.util.base.AbstractBase64EncodingOutputStream: void flushBuffer()>();
v.<org.apache.axiom.util.base.AbstractBase64EncodingOutputStream: boolean completed> = 1;
label:
return;
}
private void encode(byte[], int, int) throws java.io.IOException
{
byte[] v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
byte v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
org.apache.axiom.util.base.AbstractBase64EncodingOutputStream v;
short v, v, v, v, v, v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
v := @this: org.apache.axiom.util.base.AbstractBase64EncodingOutputStream;
v := @parameter: byte[];
v := @parameter: int;
v := @parameter: int;
if v != 1 goto label;
v = v[v];
v = v & 255;
v = v.<org.apache.axiom.util.base.AbstractBase64EncodingOutputStream: byte[] out>;
v = <org.apache.axiom.util.base.Base64Constants: byte[] S_BASE64CHAR>;
v = v >> 2;
v = v[v];
v[0] = v;
v = v.<org.apache.axiom.util.base.AbstractBase64EncodingOutputStream: byte[] out>;
v = <org.apache.axiom.util.base.Base64Constants: byte[] S_BASE64CHAR>;
v = v << 4;
v = v & 63;
v = v[v];
v[1] = v;
v = v.<org.apache.axiom.util.base.AbstractBase64EncodingOutputStream: byte[] out>;
v[2] = 61;
v = v.<org.apache.axiom.util.base.AbstractBase64EncodingOutputStream: byte[] out>;
v[3] = 61;
goto label;
label:
if v != 2 goto label;
v = v[v];
v = v & 255;
v = v << 8;
v = v + 1;
v = v[v];
v = v & 255;
v = v + v;
v = v.<org.apache.axiom.util.base.AbstractBase64EncodingOutputStream: byte[] out>;
v = <org.apache.axiom.util.base.Base64Constants: byte[] S_BASE64CHAR>;
v = v >> 10;
v = v[v];
v[0] = v;
v = v.<org.apache.axiom.util.base.AbstractBase64EncodingOutputStream: byte[] out>;
v = <org.apache.axiom.util.base.Base64Constants: byte[] S_BASE64CHAR>;
v = v >> 4;
v = v & 63;
v = v[v];
v[1] = v;
v = v.<org.apache.axiom.util.base.AbstractBase64EncodingOutputStream: byte[] out>;
v = <org.apache.axiom.util.base.Base64Constants: byte[] S_BASE64CHAR>;
v = v << 2;
v = v & 63;
v = v[v];
v[2] = v;
v = v.<org.apache.axiom.util.base.AbstractBase64EncodingOutputStream: byte[] out>;
v[3] = 61;
goto label;
label:
v = v[v];
v = v & 255;
v = v << 16;
v = v + 1;
v = v[v];
v = v & 255;
v = v << 8;
v = v + v;
v = v + 2;
v = v[v];
v = v & 255;
v = v + v;
v = v.<org.apache.axiom.util.base.AbstractBase64EncodingOutputStream: byte[] out>;
v = <org.apache.axiom.util.base.Base64Constants: byte[] S_BASE64CHAR>;
v = v >> 18;
v = v[v];
v[0] = v;
v = v.<org.apache.axiom.util.base.AbstractBase64EncodingOutputStream: byte[] out>;
v = <org.apache.axiom.util.base.Base64Constants: byte[] S_BASE64CHAR>;
v = v >> 12;
v = v & 63;
v = v[v];
v[1] = v;
v = v.<org.apache.axiom.util.base.AbstractBase64EncodingOutputStream: byte[] out>;
v = <org.apache.axiom.util.base.Base64Constants: byte[] S_BASE64CHAR>;
v = v >> 6;
v = v & 63;
v = v[v];
v[2] = v;
v = v.<org.apache.axiom.util.base.AbstractBase64EncodingOutputStream: byte[] out>;
v = <org.apache.axiom.util.base.Base64Constants: byte[] S_BASE64CHAR>;
v = v & 63;
v = v[v];
v[3] = v;
label:
v = v.<org.apache.axiom.util.base.AbstractBase64EncodingOutputStream: byte[] out>;
virtualinvoke v.<org.apache.axiom.util.base.AbstractBase64EncodingOutputStream: void doWrite(byte[])>(v);
return;
}
public final void flush() throws java.io.IOException
{
org.apache.axiom.util.base.AbstractBase64EncodingOutputStream v;
boolean v;
v := @this: org.apache.axiom.util.base.AbstractBase64EncodingOutputStream;
v = v.<org.apache.axiom.util.base.AbstractBase64EncodingOutputStream: boolean ignoreFlush>;
if v != 0 goto label;
virtualinvoke v.<org.apache.axiom.util.base.AbstractBase64EncodingOutputStream: void flushBuffer()>();
virtualinvoke v.<org.apache.axiom.util.base.AbstractBase64EncodingOutputStream: void doFlush()>();
label:
return;
}
public final void close() throws java.io.IOException
{
org.apache.axiom.util.base.AbstractBase64EncodingOutputStream v;
v := @this: org.apache.axiom.util.base.AbstractBase64EncodingOutputStream;
virtualinvoke v.<org.apache.axiom.util.base.AbstractBase64EncodingOutputStream: void complete()>();
virtualinvoke v.<org.apache.axiom.util.base.AbstractBase64EncodingOutputStream: void doClose()>();
return;
}
protected abstract void doWrite(byte[]) throws java.io.IOException;
protected abstract void flushBuffer() throws java.io.IOException;
protected abstract void doFlush() throws java.io.IOException;
protected abstract void doClose() throws java.io.IOException;
}