public class org.apache.commons.io.input.ReversedLinesFileReader extends java.lang.Object implements java.io.Closeable
{
private static final java.lang.String EMPTY_STRING;
private static final int DEFAULT_BLOCK_SIZE;
private final int blockSize;
private final java.nio.charset.Charset charset;
private final java.nio.channels.SeekableByteChannel channel;
private final long totalByteLength;
private final long totalBlockCount;
private final byte[][] newLineSequences;
private final int avoidNewlineSplitBufferSize;
private final int byteDecrement;
private org.apache.commons.io.input.ReversedLinesFileReader$FilePart currentFilePart;
private boolean trailingNewlineOfFileSkipped;
public static org.apache.commons.io.input.ReversedLinesFileReader$Builder builder()
{
org.apache.commons.io.input.ReversedLinesFileReader$Builder v;
v = new org.apache.commons.io.input.ReversedLinesFileReader$Builder;
specialinvoke v.<org.apache.commons.io.input.ReversedLinesFileReader$Builder: void <init>()>();
return v;
}
public void <init>(java.io.File) throws java.io.IOException
{
java.nio.charset.Charset v;
int v;
java.io.File v;
org.apache.commons.io.input.ReversedLinesFileReader v;
v := @this: org.apache.commons.io.input.ReversedLinesFileReader;
v := @parameter: java.io.File;
v = <org.apache.commons.io.input.ReversedLinesFileReader: int DEFAULT_BLOCK_SIZE>;
v = staticinvoke <java.nio.charset.Charset: java.nio.charset.Charset defaultCharset()>();
specialinvoke v.<org.apache.commons.io.input.ReversedLinesFileReader: void <init>(java.io.File,int,java.nio.charset.Charset)>(v, v, v);
return;
}
public void <init>(java.io.File, java.nio.charset.Charset) throws java.io.IOException
{
java.nio.charset.Charset v;
java.nio.file.Path v;
java.io.File v;
org.apache.commons.io.input.ReversedLinesFileReader v;
v := @this: org.apache.commons.io.input.ReversedLinesFileReader;
v := @parameter: java.io.File;
v := @parameter: java.nio.charset.Charset;
v = virtualinvoke v.<java.io.File: java.nio.file.Path toPath()>();
specialinvoke v.<org.apache.commons.io.input.ReversedLinesFileReader: void <init>(java.nio.file.Path,java.nio.charset.Charset)>(v, v);
return;
}
public void <init>(java.io.File, int, java.nio.charset.Charset) throws java.io.IOException
{
java.nio.charset.Charset v;
int v;
java.nio.file.Path v;
java.io.File v;
org.apache.commons.io.input.ReversedLinesFileReader v;
v := @this: org.apache.commons.io.input.ReversedLinesFileReader;
v := @parameter: java.io.File;
v := @parameter: int;
v := @parameter: java.nio.charset.Charset;
v = virtualinvoke v.<java.io.File: java.nio.file.Path toPath()>();
specialinvoke v.<org.apache.commons.io.input.ReversedLinesFileReader: void <init>(java.nio.file.Path,int,java.nio.charset.Charset)>(v, v, v);
return;
}
public void <init>(java.io.File, int, java.lang.String) throws java.io.IOException
{
int v;
java.lang.String v;
java.nio.file.Path v;
java.io.File v;
org.apache.commons.io.input.ReversedLinesFileReader v;
v := @this: org.apache.commons.io.input.ReversedLinesFileReader;
v := @parameter: java.io.File;
v := @parameter: int;
v := @parameter: java.lang.String;
v = virtualinvoke v.<java.io.File: java.nio.file.Path toPath()>();
specialinvoke v.<org.apache.commons.io.input.ReversedLinesFileReader: void <init>(java.nio.file.Path,int,java.lang.String)>(v, v, v);
return;
}
public void <init>(java.nio.file.Path, java.nio.charset.Charset) throws java.io.IOException
{
java.nio.charset.Charset v;
int v;
java.nio.file.Path v;
org.apache.commons.io.input.ReversedLinesFileReader v;
v := @this: org.apache.commons.io.input.ReversedLinesFileReader;
v := @parameter: java.nio.file.Path;
v := @parameter: java.nio.charset.Charset;
v = <org.apache.commons.io.input.ReversedLinesFileReader: int DEFAULT_BLOCK_SIZE>;
specialinvoke v.<org.apache.commons.io.input.ReversedLinesFileReader: void <init>(java.nio.file.Path,int,java.nio.charset.Charset)>(v, v, v);
return;
}
public void <init>(java.nio.file.Path, int, java.nio.charset.Charset) throws java.io.IOException
{
byte[] v, v, v, v;
org.apache.commons.io.StandardLineSeparator v, v, v;
byte v, v;
java.nio.file.Path v;
org.apache.commons.io.input.ReversedLinesFileReader$FilePart v;
java.nio.file.StandardOpenOption v;
java.nio.channels.SeekableByteChannel v, v;
byte[][] v, v;
java.nio.charset.CharsetEncoder v;
float v;
java.io.UnsupportedEncodingException v, v;
long v, v, v, v, v, v, v, v, v, v;
org.apache.commons.io.input.ReversedLinesFileReader v;
java.nio.charset.Charset v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.nio.file.OpenOption[] v;
int v, v;
java.lang.String v;
v := @this: org.apache.commons.io.input.ReversedLinesFileReader;
v := @parameter: java.nio.file.Path;
v := @parameter: int;
v := @parameter: java.nio.charset.Charset;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<org.apache.commons.io.input.ReversedLinesFileReader: int blockSize> = v;
v = staticinvoke <org.apache.commons.io.Charsets: java.nio.charset.Charset toCharset(java.nio.charset.Charset)>(v);
v.<org.apache.commons.io.input.ReversedLinesFileReader: java.nio.charset.Charset charset> = v;
v = v.<org.apache.commons.io.input.ReversedLinesFileReader: java.nio.charset.Charset charset>;
v = virtualinvoke v.<java.nio.charset.Charset: java.nio.charset.CharsetEncoder newEncoder()>();
v = virtualinvoke v.<java.nio.charset.CharsetEncoder: float maxBytesPerChar()>();
v = v cmpl 1.0F;
if v == 0 goto label;
v = v.<org.apache.commons.io.input.ReversedLinesFileReader: java.nio.charset.Charset charset>;
v = <java.nio.charset.StandardCharsets: java.nio.charset.Charset UTF_8>;
if v != v goto label;
label:
v.<org.apache.commons.io.input.ReversedLinesFileReader: int byteDecrement> = 1;
goto label;
label:
v = v.<org.apache.commons.io.input.ReversedLinesFileReader: java.nio.charset.Charset charset>;
v = staticinvoke <java.nio.charset.Charset: java.nio.charset.Charset forName(java.lang.String)>("Shift_JIS");
if v == v goto label;
v = v.<org.apache.commons.io.input.ReversedLinesFileReader: java.nio.charset.Charset charset>;
v = staticinvoke <java.nio.charset.Charset: java.nio.charset.Charset forName(java.lang.String)>("windows-31j");
if v == v goto label;
v = v.<org.apache.commons.io.input.ReversedLinesFileReader: java.nio.charset.Charset charset>;
v = staticinvoke <java.nio.charset.Charset: java.nio.charset.Charset forName(java.lang.String)>("x-windows-949");
if v == v goto label;
v = v.<org.apache.commons.io.input.ReversedLinesFileReader: java.nio.charset.Charset charset>;
v = staticinvoke <java.nio.charset.Charset: java.nio.charset.Charset forName(java.lang.String)>("gbk");
if v == v goto label;
v = v.<org.apache.commons.io.input.ReversedLinesFileReader: java.nio.charset.Charset charset>;
v = staticinvoke <java.nio.charset.Charset: java.nio.charset.Charset forName(java.lang.String)>("x-windows-950");
if v != v goto label;
label:
v.<org.apache.commons.io.input.ReversedLinesFileReader: int byteDecrement> = 1;
goto label;
label:
v = v.<org.apache.commons.io.input.ReversedLinesFileReader: java.nio.charset.Charset charset>;
v = <java.nio.charset.StandardCharsets: java.nio.charset.Charset UTF_16BE>;
if v == v goto label;
v = v.<org.apache.commons.io.input.ReversedLinesFileReader: java.nio.charset.Charset charset>;
v = <java.nio.charset.StandardCharsets: java.nio.charset.Charset UTF_16LE>;
if v != v goto label;
label:
v.<org.apache.commons.io.input.ReversedLinesFileReader: int byteDecrement> = 2;
goto label;
label:
v = v.<org.apache.commons.io.input.ReversedLinesFileReader: java.nio.charset.Charset charset>;
v = <java.nio.charset.StandardCharsets: java.nio.charset.Charset UTF_16>;
if v != v goto label;
v = new java.io.UnsupportedEncodingException;
specialinvoke v.<java.io.UnsupportedEncodingException: void <init>(java.lang.String)>("For UTF-16, you need to specify the byte order (use UTF-16BE or UTF-16LE)");
throw v;
label:
v = new java.io.UnsupportedEncodingException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.nio.charset.Charset)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Encoding \u is not supported yet (feel free to submit a patch)");
specialinvoke v.<java.io.UnsupportedEncodingException: void <init>(java.lang.String)>(v);
throw v;
label:
v = newarray (byte[])[3];
v = <org.apache.commons.io.StandardLineSeparator: org.apache.commons.io.StandardLineSeparator CRLF>;
v = v.<org.apache.commons.io.input.ReversedLinesFileReader: java.nio.charset.Charset charset>;
v = virtualinvoke v.<org.apache.commons.io.StandardLineSeparator: byte[] getBytes(java.nio.charset.Charset)>(v);
v[0] = v;
v = <org.apache.commons.io.StandardLineSeparator: org.apache.commons.io.StandardLineSeparator LF>;
v = v.<org.apache.commons.io.input.ReversedLinesFileReader: java.nio.charset.Charset charset>;
v = virtualinvoke v.<org.apache.commons.io.StandardLineSeparator: byte[] getBytes(java.nio.charset.Charset)>(v);
v[1] = v;
v = <org.apache.commons.io.StandardLineSeparator: org.apache.commons.io.StandardLineSeparator CR>;
v = v.<org.apache.commons.io.input.ReversedLinesFileReader: java.nio.charset.Charset charset>;
v = virtualinvoke v.<org.apache.commons.io.StandardLineSeparator: byte[] getBytes(java.nio.charset.Charset)>(v);
v[2] = v;
v.<org.apache.commons.io.input.ReversedLinesFileReader: byte[][] newLineSequences> = v;
v = v.<org.apache.commons.io.input.ReversedLinesFileReader: byte[][] newLineSequences>;
v = v[0];
v = lengthof v;
v.<org.apache.commons.io.input.ReversedLinesFileReader: int avoidNewlineSplitBufferSize> = v;
v = newarray (java.nio.file.OpenOption)[1];
v = <java.nio.file.StandardOpenOption: java.nio.file.StandardOpenOption READ>;
v[0] = v;
v = staticinvoke <java.nio.file.Files: java.nio.channels.SeekableByteChannel newByteChannel(java.nio.file.Path,java.nio.file.OpenOption[])>(v, v);
v.<org.apache.commons.io.input.ReversedLinesFileReader: java.nio.channels.SeekableByteChannel channel> = v;
v = v.<org.apache.commons.io.input.ReversedLinesFileReader: java.nio.channels.SeekableByteChannel channel>;
v = interfaceinvoke v.<java.nio.channels.SeekableByteChannel: long size()>();
v.<org.apache.commons.io.input.ReversedLinesFileReader: long totalByteLength> = v;
v = v.<org.apache.commons.io.input.ReversedLinesFileReader: long totalByteLength>;
v = v % v;
if v <= 0 goto label;
v = v.<org.apache.commons.io.input.ReversedLinesFileReader: long totalByteLength>;
v = v / v;
v = v + 1L;
v.<org.apache.commons.io.input.ReversedLinesFileReader: long totalBlockCount> = v;
goto label;
label:
v = v.<org.apache.commons.io.input.ReversedLinesFileReader: long totalByteLength>;
v = v / v;
v.<org.apache.commons.io.input.ReversedLinesFileReader: long totalBlockCount> = v;
v = v.<org.apache.commons.io.input.ReversedLinesFileReader: long totalByteLength>;
v = v cmp 0L;
if v <= 0 goto label;
v = v;
label:
v = new org.apache.commons.io.input.ReversedLinesFileReader$FilePart;
v = v.<org.apache.commons.io.input.ReversedLinesFileReader: long totalBlockCount>;
specialinvoke v.<org.apache.commons.io.input.ReversedLinesFileReader$FilePart: void <init>(org.apache.commons.io.input.ReversedLinesFileReader,long,int,byte[])>(v, v, v, null);
v.<org.apache.commons.io.input.ReversedLinesFileReader: org.apache.commons.io.input.ReversedLinesFileReader$FilePart currentFilePart> = v;
return;
}
public void <init>(java.nio.file.Path, int, java.lang.String) throws java.io.IOException
{
java.nio.charset.Charset v;
int v;
java.lang.String v;
java.nio.file.Path v;
org.apache.commons.io.input.ReversedLinesFileReader v;
v := @this: org.apache.commons.io.input.ReversedLinesFileReader;
v := @parameter: java.nio.file.Path;
v := @parameter: int;
v := @parameter: java.lang.String;
v = staticinvoke <org.apache.commons.io.Charsets: java.nio.charset.Charset toCharset(java.lang.String)>(v);
specialinvoke v.<org.apache.commons.io.input.ReversedLinesFileReader: void <init>(java.nio.file.Path,int,java.nio.charset.Charset)>(v, v, v);
return;
}
public void close() throws java.io.IOException
{
java.nio.channels.SeekableByteChannel v;
org.apache.commons.io.input.ReversedLinesFileReader v;
v := @this: org.apache.commons.io.input.ReversedLinesFileReader;
v = v.<org.apache.commons.io.input.ReversedLinesFileReader: java.nio.channels.SeekableByteChannel channel>;
interfaceinvoke v.<java.nio.channels.SeekableByteChannel: void close()>();
return;
}
public java.lang.String readLine() throws java.io.IOException
{
org.apache.commons.io.input.ReversedLinesFileReader v;
java.lang.String v, v;
org.apache.commons.io.input.ReversedLinesFileReader$FilePart v, v, v, v, v;
boolean v, v;
v := @this: org.apache.commons.io.input.ReversedLinesFileReader;
v = v.<org.apache.commons.io.input.ReversedLinesFileReader: org.apache.commons.io.input.ReversedLinesFileReader$FilePart currentFilePart>;
v = specialinvoke v.<org.apache.commons.io.input.ReversedLinesFileReader$FilePart: java.lang.String readLine()>();
label:
if v != null goto label;
v = v.<org.apache.commons.io.input.ReversedLinesFileReader: org.apache.commons.io.input.ReversedLinesFileReader$FilePart currentFilePart>;
v = specialinvoke v.<org.apache.commons.io.input.ReversedLinesFileReader$FilePart: org.apache.commons.io.input.ReversedLinesFileReader$FilePart rollOver()>();
v.<org.apache.commons.io.input.ReversedLinesFileReader: org.apache.commons.io.input.ReversedLinesFileReader$FilePart currentFilePart> = v;
v = v.<org.apache.commons.io.input.ReversedLinesFileReader: org.apache.commons.io.input.ReversedLinesFileReader$FilePart currentFilePart>;
if v == null goto label;
v = v.<org.apache.commons.io.input.ReversedLinesFileReader: org.apache.commons.io.input.ReversedLinesFileReader$FilePart currentFilePart>;
v = specialinvoke v.<org.apache.commons.io.input.ReversedLinesFileReader$FilePart: java.lang.String readLine()>();
goto label;
label:
v = "";
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = v.<org.apache.commons.io.input.ReversedLinesFileReader: boolean trailingNewlineOfFileSkipped>;
if v != 0 goto label;
v.<org.apache.commons.io.input.ReversedLinesFileReader: boolean trailingNewlineOfFileSkipped> = 1;
v = virtualinvoke v.<org.apache.commons.io.input.ReversedLinesFileReader: java.lang.String readLine()>();
label:
return v;
}
public java.util.List readLines(int) throws java.io.IOException
{
int v, v;
java.lang.String v;
java.lang.IllegalArgumentException v;
java.util.ArrayList v;
org.apache.commons.io.input.ReversedLinesFileReader v;
v := @this: org.apache.commons.io.input.ReversedLinesFileReader;
v := @parameter: int;
if v >= 0 goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("lineCount < 0");
throw v;
label:
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>(int)>(v);
v = 0;
label:
if v >= v goto label;
v = virtualinvoke v.<org.apache.commons.io.input.ReversedLinesFileReader: java.lang.String readLine()>();
if v != null goto label;
return v;
label:
virtualinvoke v.<java.util.ArrayList: boolean add(java.lang.Object)>(v);
v = v + 1;
goto label;
label:
return v;
}
public java.lang.String toString(int) throws java.io.IOException
{
org.apache.commons.io.input.ReversedLinesFileReader v;
java.util.List v;
int v;
java.lang.String v, v, v, v;
boolean v;
v := @this: org.apache.commons.io.input.ReversedLinesFileReader;
v := @parameter: int;
v = virtualinvoke v.<org.apache.commons.io.input.ReversedLinesFileReader: java.util.List readLines(int)>(v);
staticinvoke <java.util.Collections: void reverse(java.util.List)>(v);
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v == 0 goto label;
v = "";
goto label;
label:
v = staticinvoke <java.lang.System: java.lang.String lineSeparator()>();
v = staticinvoke <java.lang.String: java.lang.String join(java.lang.CharSequence,java.lang.Iterable)>(v, v);
v = staticinvoke <java.lang.System: java.lang.String lineSeparator()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001\u0001");
label:
return v;
}
static void <clinit>()
{
int v;
org.apache.commons.io.FileSystem v;
v = staticinvoke <org.apache.commons.io.FileSystem: org.apache.commons.io.FileSystem getCurrent()>();
v = virtualinvoke v.<org.apache.commons.io.FileSystem: int getBlockSize()>();
<org.apache.commons.io.input.ReversedLinesFileReader: int DEFAULT_BLOCK_SIZE> = v;
return;
}
}