Class FileText
- java.lang.Object
-
- com.puppycrawl.tools.checkstyle.api.FileText
-
-
Field Summary
Fields Modifier and Type Field Description private Charset
charset
The charset used to read the file.private File
file
The name of the file.private String
fullText
The full text contents of the file.private static Pattern
LINE_TERMINATOR
Regular expression pattern matching all line terminators.private int[]
lineBreaks
The first position of each line within the full text.private String[]
lines
The lines of the file, without terminators.private static int
READ_BUFFER_SIZE
The number of characters to read in one go.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private int[]
findLineBreaks()
Find positions of line breaks in the full text.String
get(int lineNo)
Retrieves a line of the text by its number.Charset
getCharset()
Get the character set which was used to read the file.File
getFile()
Get the name of the file.CharSequence
getFullText()
Retrieve the full text of the file.LineColumn
lineColumn(int pos)
Determine line and column numbers in full text.private static String
readFile(File inputFile, CharsetDecoder decoder)
Reads file using specific decoder and returns all its content as a String.int
size()
Counts the lines of the text.String[]
toLinesArray()
Returns an array of all lines.
-
-
-
Field Detail
-
READ_BUFFER_SIZE
private static final int READ_BUFFER_SIZE
The number of characters to read in one go.- See Also:
- Constant Field Values
-
LINE_TERMINATOR
private static final Pattern LINE_TERMINATOR
Regular expression pattern matching all line terminators.
-
file
private final File file
The name of the file.null
if no file name is available for whatever reason.
-
charset
private final Charset charset
The charset used to read the file.null
if the file was reconstructed from a list of lines.
-
lineBreaks
private int[] lineBreaks
The first position of each line within the full text.
-
-
Constructor Detail
-
FileText
public FileText(FileText fileText)
Copy constructor.- Parameters:
fileText
- to make copy of
-
FileText
public FileText(File file, List<String> lines)
Compatibility constructor.This constructor reconstructs the text of the file by joining lines with linefeed characters. This process does not restore the original line terminators and should therefore be avoided.
- Parameters:
file
- the name of the filelines
- the lines of the text, without terminators- Throws:
NullPointerException
- if the lines array is null
-
FileText
public FileText(File file, String charsetName) throws IOException
Creates a new file text representation.The file will be read using the specified encoding, replacing malformed input and unmappable characters with the default replacement character.
- Parameters:
file
- the name of the filecharsetName
- the encoding to use when reading the file- Throws:
NullPointerException
- if the text is nullIllegalStateException
- if the charset is not supported.IOException
- if the file could not be read
-
-
Method Detail
-
readFile
private static String readFile(File inputFile, CharsetDecoder decoder) throws IOException
Reads file using specific decoder and returns all its content as a String.- Parameters:
inputFile
- File to readdecoder
- Charset decoder- Returns:
- File's text
- Throws:
IOException
- Unable to open or read the fileFileNotFoundException
- when inputFile does not exist
-
get
public String get(int lineNo)
Retrieves a line of the text by its number. The returned line will not contain a trailing terminator.- Parameters:
lineNo
- the number of the line to get, starting at zero- Returns:
- the line with the given number
-
getFile
public File getFile()
Get the name of the file.- Returns:
- an object containing the name of the file
-
getCharset
public Charset getCharset()
Get the character set which was used to read the file. Will benull
for a file reconstructed from its lines.- Returns:
- the charset used when the file was read
-
getFullText
public CharSequence getFullText()
Retrieve the full text of the file.- Returns:
- the full text of the file
-
toLinesArray
public String[] toLinesArray()
Returns an array of all lines.text.toLinesArray()
is equivalent totext.toArray(new String[text.size()])
.- Returns:
- an array of all lines of the text
-
lineColumn
public LineColumn lineColumn(int pos)
Determine line and column numbers in full text.- Parameters:
pos
- the character position in the full text- Returns:
- the line and column numbers of this character
-
findLineBreaks
private int[] findLineBreaks()
Find positions of line breaks in the full text.- Returns:
- an array giving the first positions of each line.
-
size
public int size()
Counts the lines of the text.- Returns:
- the number of lines in the text
-
-