Top Description Fields Constructors Methods
org.jdom2.output

public final Enum LineSeparator

extends Enum<LineSeparator>
Class Inheritance
Imports
org.jdom2.JDOMConstants, org.jdom2.internal.SystemProperty

An enumeration of common separators that are used for JDOM output.

These enumerated values can be used as input to the Format#setLineSeparator(LineSeparator) method. Additionally, the names of these constants can be also be used in the System Property JDOMConstants#JDOM2_PROPERTY_LINE_SEPARATOR which is used to define the default Line Separator sequence for JDOM output. See DEFAULT Javadoc.

JDOM has historically used the CR/NL sequence '\r\n' as a line-terminator. This sequence has the advantage that the output is easily opened in the 'Notepad' editor on Windows. Other editors on other platforms are typically smart enough to automatically adjust to whatever termination sequence is used in the document. The XML specification requires that the CR/NL sequence should be 'normalized' to a single newline '\n' when the document is parsed (XML 1.1 End-Of-Line Handling). As a result there is no XML issue with the JDOM default CR/NL end-of-line sequence.

It should be noted that because JDOM internally stores just a '\n' as a line separator that any other output separator requires additional processing to output. There is a distinct performance benefit for using the UNIX, or NL LineSeparator for output.

JDOM has always allowed the line-terminating sequence to be customised (or even disabled) for each XMLOutputter operation by using this Format class.

JDOM2 introduces two new features in relation to the end-of-line sequence. Firstly, it introduces this new LineSeparator enumeration which formalises the common line separators that can be used. In addition to the simple String-based Format#setLineSeparator(String) method you can now also call Format#setLineSeparator(LineSeparator) with one of the common enumerations.

The second new JDOM2 feature is the ability to set a global default end-of-line sequence. JDOM 1.x forced the default sequence to be the CRLF sequence, but JDOM2 allows you to set the system property JDOMConstants#JDOM2_PROPERTY_LINE_SEPARATOR which will be used as the default sequence for Format. You can set the property to be the name of one of these LineSeparator enumerations too. For example, the following will cause all default Format instances to use the System-dependent end-of-line sequence instead of always CRLF:

java -Dorg.jdom2.output.LineSeparator=SYSTEM ...
Author
Rolf Lear
Since
JDOM2

Field Summary

Modifier and TypeField and Description
public static final LineSeparator
CR

The Separator sequence CR which is '\r'.

public static final LineSeparator
CRNL

The Separator sequence CRNL which is '\r\n'.

public static final LineSeparator
DEFAULT

Use the sequence '\r\n' unless the System property JDOMConstants#JDOM2_PROPERTY_LINE_SEPARATOR is defined, in which case use the value specified in that property.

public static final LineSeparator
DOS

The 'DOS' Separator sequence CRLF (CRNL) which is '\r\n'.

public static final LineSeparator
NL

The Separator sequence NL which is '\n'.

public static final LineSeparator
NONE

Perform no end-of-line processing.

public static final LineSeparator
SYSTEM

The system-dependent Separator sequence NL which is obtained from System.getProperty("line.separator").

public static final LineSeparator
UNIX

The 'UNIX' Separator sequence NL which is '\n'.

private final String

Constructor Summary

AccessConstructor and Description
private

Method Summary

Modifier and TypeMethod and Description
private static String
public String

Returns:

an End-Of-Line String
value
()

The String sequence used for this Separator

public static LineSeparator
public static LineSeparator[]
Inherited from java.lang.Enum:
clonecompareTodescribeConstableequalsfinalizegetDeclaringClasshashCodenameordinaltoStringvalueOf

Field Detail

CRback to summary
public static final LineSeparator CR

The Separator sequence CR which is '\r'.

CRNLback to summary
public static final LineSeparator CRNL

The Separator sequence CRNL which is '\r\n'. This is the default sequence.

DEFAULTback to summary
public static final LineSeparator DEFAULT

Use the sequence '\r\n' unless the System property JDOMConstants#JDOM2_PROPERTY_LINE_SEPARATOR is defined, in which case use the value specified in that property. If the value in that property matches one of the Enumeration names (e.g. SYSTEM) then use the sequence specified in that enumeration.

DOSback to summary
public static final LineSeparator DOS

The 'DOS' Separator sequence CRLF (CRNL) which is '\r\n'.

NLback to summary
public static final LineSeparator NL

The Separator sequence NL which is '\n'.

NONEback to summary
public static final LineSeparator NONE

Perform no end-of-line processing.

SYSTEMback to summary
public static final LineSeparator SYSTEM

The system-dependent Separator sequence NL which is obtained from System.getProperty("line.separator"). This should be the equivalent of DOS on windows platforms, and of UNIX on UNIX and Apple systems (after Mac OSX).

UNIXback to summary
public static final LineSeparator UNIX

The 'UNIX' Separator sequence NL which is '\n'.

valueback to summary
private final String value

Constructor Detail

LineSeparatorback to summary
private LineSeparator(String value)

Method Detail

getDefaultLineSeparatorback to summary
private static String getDefaultLineSeparator()
valueback to summary
public String value()

The String sequence used for this Separator

Returns:String

an End-Of-Line String

valueOfback to summary
public static LineSeparator valueOf(String name)
valuesback to summary
public static LineSeparator[] values()