final class org.jvnet.mimepull.MemoryData extends java.lang.Object implements org.jvnet.mimepull.Data
{
private static final java.util.logging.Logger LOGGER;
private final byte[] data;
private final int len;
private final org.jvnet.mimepull.MIMEConfig config;
private static final boolean DELETE_ON_EXIT;
void <init>(java.nio.ByteBuffer, org.jvnet.mimepull.MIMEConfig)
{
byte[] v;
org.jvnet.mimepull.MIMEConfig v;
org.jvnet.mimepull.MemoryData v;
int v;
java.nio.ByteBuffer v;
v := @this: org.jvnet.mimepull.MemoryData;
v := @parameter: java.nio.ByteBuffer;
v := @parameter: org.jvnet.mimepull.MIMEConfig;
specialinvoke v.<java.lang.Object: void <init>()>();
v = virtualinvoke v.<java.nio.ByteBuffer: byte[] array()>();
v.<org.jvnet.mimepull.MemoryData: byte[] data> = v;
v = virtualinvoke v.<java.nio.ByteBuffer: int limit()>();
v.<org.jvnet.mimepull.MemoryData: int len> = v;
v.<org.jvnet.mimepull.MemoryData: org.jvnet.mimepull.MIMEConfig config> = v;
return;
}
public int size()
{
int v;
org.jvnet.mimepull.MemoryData v;
v := @this: org.jvnet.mimepull.MemoryData;
v = v.<org.jvnet.mimepull.MemoryData: int len>;
return v;
}
public byte[] read()
{
byte[] v;
org.jvnet.mimepull.MemoryData v;
v := @this: org.jvnet.mimepull.MemoryData;
v = v.<org.jvnet.mimepull.MemoryData: byte[] data>;
return v;
}
public long writeTo(org.jvnet.mimepull.DataFile)
{
byte[] v;
org.jvnet.mimepull.DataFile v;
org.jvnet.mimepull.MemoryData v;
int v;
long v;
v := @this: org.jvnet.mimepull.MemoryData;
v := @parameter: org.jvnet.mimepull.DataFile;
v = v.<org.jvnet.mimepull.MemoryData: byte[] data>;
v = v.<org.jvnet.mimepull.MemoryData: int len>;
v = virtualinvoke v.<org.jvnet.mimepull.DataFile: long writeTo(byte[],int,int)>(v, 0, v);
return v;
}
public org.jvnet.mimepull.Data createNext(org.jvnet.mimepull.DataHead, java.nio.ByteBuffer)
{
org.jvnet.mimepull.Data v;
org.jvnet.mimepull.MIMEConfig v, v, v, v, v, v;
java.nio.ByteBuffer v;
byte v;
org.jvnet.mimepull.DataHead v;
boolean v, v, v;
java.util.logging.Logger v, v;
org.jvnet.mimepull.MemoryData v, v;
long v, v, v;
java.util.logging.Level v, v;
int v;
org.jvnet.mimepull.Chunk v, v;
org.jvnet.mimepull.MIMEParsingException v;
java.lang.String v, v;
java.io.IOException v;
java.io.File v, v;
org.jvnet.mimepull.FileData v, v;
org.jvnet.mimepull.DataFile v, v, v, v;
v := @this: org.jvnet.mimepull.MemoryData;
v := @parameter: org.jvnet.mimepull.DataHead;
v := @parameter: java.nio.ByteBuffer;
v = v.<org.jvnet.mimepull.MemoryData: org.jvnet.mimepull.MIMEConfig config>;
v = virtualinvoke v.<org.jvnet.mimepull.MIMEConfig: boolean isOnlyMemory()>();
if v != 0 goto label;
v = v.<org.jvnet.mimepull.DataHead: long inMemory>;
v = v.<org.jvnet.mimepull.MemoryData: org.jvnet.mimepull.MIMEConfig config>;
v = v.<org.jvnet.mimepull.MIMEConfig: long memoryThreshold>;
v = v cmp v;
if v < 0 goto label;
label:
v = v.<org.jvnet.mimepull.MemoryData: org.jvnet.mimepull.MIMEConfig config>;
v = virtualinvoke v.<org.jvnet.mimepull.MIMEConfig: java.lang.String getTempFilePrefix()>();
v = v.<org.jvnet.mimepull.MemoryData: org.jvnet.mimepull.MIMEConfig config>;
v = virtualinvoke v.<org.jvnet.mimepull.MIMEConfig: java.lang.String getTempFileSuffix()>();
v = v.<org.jvnet.mimepull.MemoryData: org.jvnet.mimepull.MIMEConfig config>;
v = virtualinvoke v.<org.jvnet.mimepull.MIMEConfig: java.io.File getTempDir()>();
v = staticinvoke <org.jvnet.mimepull.MemoryData: java.io.File createTempFile(java.lang.String,java.lang.String,java.io.File)>(v, v, v);
v = <org.jvnet.mimepull.MemoryData: boolean DELETE_ON_EXIT>;
if v == 0 goto label;
virtualinvoke v.<java.io.File: void deleteOnExit()>();
label:
v = <org.jvnet.mimepull.MemoryData: java.util.logging.Logger LOGGER>;
v = <java.util.logging.Level: java.util.logging.Level FINE>;
v = virtualinvoke v.<java.util.logging.Logger: boolean isLoggable(java.util.logging.Level)>(v);
if v == 0 goto label;
v = <org.jvnet.mimepull.MemoryData: java.util.logging.Logger LOGGER>;
v = <java.util.logging.Level: java.util.logging.Level FINE>;
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String,java.lang.Object)>(v, "Created temp file = {0}", v);
label:
v = new org.jvnet.mimepull.DataFile;
specialinvoke v.<org.jvnet.mimepull.DataFile: void <init>(java.io.File)>(v);
v.<org.jvnet.mimepull.DataHead: org.jvnet.mimepull.DataFile dataFile> = v;
label:
goto label;
label:
v := @caughtexception;
v = new org.jvnet.mimepull.MIMEParsingException;
specialinvoke v.<org.jvnet.mimepull.MIMEParsingException: void <init>(java.lang.Throwable)>(v);
throw v;
label:
v = v.<org.jvnet.mimepull.DataHead: org.jvnet.mimepull.Chunk head>;
if v == null goto label;
v = v.<org.jvnet.mimepull.DataHead: org.jvnet.mimepull.Chunk head>;
label:
if v == null goto label;
v = v.<org.jvnet.mimepull.Chunk: org.jvnet.mimepull.Data data>;
v = v.<org.jvnet.mimepull.DataHead: org.jvnet.mimepull.DataFile dataFile>;
v = interfaceinvoke v.<org.jvnet.mimepull.Data: long writeTo(org.jvnet.mimepull.DataFile)>(v);
v = new org.jvnet.mimepull.FileData;
v = v.<org.jvnet.mimepull.DataHead: org.jvnet.mimepull.DataFile dataFile>;
v = v.<org.jvnet.mimepull.MemoryData: int len>;
specialinvoke v.<org.jvnet.mimepull.FileData: void <init>(org.jvnet.mimepull.DataFile,long,int)>(v, v, v);
v.<org.jvnet.mimepull.Chunk: org.jvnet.mimepull.Data data> = v;
v = v.<org.jvnet.mimepull.Chunk: org.jvnet.mimepull.Chunk next>;
goto label;
label:
v = new org.jvnet.mimepull.FileData;
v = v.<org.jvnet.mimepull.DataHead: org.jvnet.mimepull.DataFile dataFile>;
specialinvoke v.<org.jvnet.mimepull.FileData: void <init>(org.jvnet.mimepull.DataFile,java.nio.ByteBuffer)>(v, v);
return v;
label:
v = new org.jvnet.mimepull.MemoryData;
v = v.<org.jvnet.mimepull.MemoryData: org.jvnet.mimepull.MIMEConfig config>;
specialinvoke v.<org.jvnet.mimepull.MemoryData: void <init>(java.nio.ByteBuffer,org.jvnet.mimepull.MIMEConfig)>(v, v);
return v;
catch java.io.IOException from label to label with label;
}
private static java.io.File createTempFile(java.lang.String, java.lang.String, java.io.File) throws java.io.IOException
{
java.io.File v, v, v;
java.nio.file.attribute.FileAttribute[] v, v;
java.lang.String v, v;
java.nio.file.Path v, v, v;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.io.File;
if v == null goto label;
v = virtualinvoke v.<java.io.File: java.nio.file.Path toPath()>();
v = newarray (java.nio.file.attribute.FileAttribute)[0];
v = staticinvoke <java.nio.file.Files: java.nio.file.Path createTempFile(java.nio.file.Path,java.lang.String,java.lang.String,java.nio.file.attribute.FileAttribute[])>(v, v, v, v);
v = interfaceinvoke v.<java.nio.file.Path: java.io.File toFile()>();
return v;
label:
v = newarray (java.nio.file.attribute.FileAttribute)[0];
v = staticinvoke <java.nio.file.Files: java.nio.file.Path createTempFile(java.lang.String,java.lang.String,java.nio.file.attribute.FileAttribute[])>(v, v, v);
v = interfaceinvoke v.<java.nio.file.Path: java.io.File toFile()>();
return v;
}
static void <clinit>()
{
java.lang.Class v;
java.lang.String v;
java.util.logging.Logger v;
boolean v;
v = class "Lorg/jvnet/mimepull/MemoryData;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = staticinvoke <java.util.logging.Logger: java.util.logging.Logger getLogger(java.lang.String)>(v);
<org.jvnet.mimepull.MemoryData: java.util.logging.Logger LOGGER> = v;
v = staticinvoke <java.lang.Boolean: boolean getBoolean(java.lang.String)>("org.jvnet.mimepull.deletetemponexit");
<org.jvnet.mimepull.MemoryData: boolean DELETE_ON_EXIT> = v;
return;
}
}