public class NewlineAtEndOfFileCheck extends AbstractFileSetCheck
Checks that there is a newline at the end of each file.
An example of how to configure the check is:
<module name="NewlineAtEndOfFile"/>
This will check against the platform-specific default line separator.
It is also possible to enforce the use of a specific line-separator across platforms, with the 'lineSeparator' property:
<module name="NewlineAtEndOfFile"> <property name="lineSeparator" value="lf"/> </module>
Valid values for the 'lineSeparator' property are 'system' (system default), 'crlf' (windows), 'cr' (mac), 'lf' (unix) and 'lf_cr_crlf' (lf, cr or crlf).
Modifier and Type | Field and Description |
---|---|
private LineSeparatorOption |
lineSeparator
The line separator to check against.
|
static java.lang.String |
MSG_KEY_NO_NEWLINE_EOF
A key is pointing to the warning message text in "messages.properties"
file.
|
static java.lang.String |
MSG_KEY_UNABLE_OPEN
A key is pointing to the warning message text in "messages.properties"
file.
|
Constructor and Description |
---|
NewlineAtEndOfFileCheck() |
Modifier and Type | Method and Description |
---|---|
private boolean |
endsWithNewline(java.io.RandomAccessFile randomAccessFile)
Checks whether the content provided by the Reader ends with the platform
specific line separator.
|
protected void |
processFiltered(java.io.File file,
java.util.List<java.lang.String> lines)
Called to process a file that matches the specified file extensions.
|
void |
setLineSeparator(java.lang.String lineSeparatorParam)
Sets the line separator to one of 'crlf', 'lf','cr', 'lf_cr_crlf' or 'system'.
|
beginProcessing, destroy, finishProcessing, fireErrors, getFileExtensions, getMessageCollector, getMessageDispatcher, init, log, log, process, setFileExtensions, setMessageDispatcher
getCustomMessages, getId, getMessageBundle, getSeverity, getSeverityLevel, log, setId, setSeverity
configure, contextualize, finishLocalSetup, getConfiguration, setupChild
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
configure
contextualize
public static final java.lang.String MSG_KEY_UNABLE_OPEN
public static final java.lang.String MSG_KEY_NO_NEWLINE_EOF
private LineSeparatorOption lineSeparator
protected void processFiltered(java.io.File file, java.util.List<java.lang.String> lines)
AbstractFileSetCheck
processFiltered
in class AbstractFileSetCheck
file
- the file to be processedlines
- an immutable list of the contents of the file.public void setLineSeparator(java.lang.String lineSeparatorParam)
lineSeparatorParam
- The line separator to setjava.lang.IllegalArgumentException
- If the specified line separator is not
one of 'crlf', 'lf', 'cr', 'lf_cr_crlf' or 'system'private boolean endsWithNewline(java.io.RandomAccessFile randomAccessFile) throws java.io.IOException
randomAccessFile
- The reader for the content to checkjava.io.IOException
- When an IO error occurred while reading from the
provided reader