au.id.jericho.lib.html
Class Config
java.lang.Object
au.id.jericho.lib.html.Config
public final class Config
extends java.lang.Object
Encapsulates global configuration properties which determine the behaviour of various functions.
All of the properties in this class are static, affecting all objects and threads.
Multiple concurrent configurations are not possible.
Properties that relate to
user agent
compatibility issues are stored in instances of the
Config.CompatibilityMode
class.
This allows all of the properties in the compatibility mode to be set as a block by setting the static
CurrentCompatibilityMode
property to a different instance.
ColumnMultipleValueSeparator
public static String ColumnMultipleValueSeparator
Determines the string used to separate a single column's multiple values in the output of the
FormFields.getColumnValues(Map)
method.
The situation where a single column has multiple values only arises if
FormField.getUserValueCount()
>1
on the relevant form field, which usually indicates a poorly designed form.
The default value is "
,
" (a comma, not including the quotes).
Must not be
null
.
ColumnValueFalse
public static String ColumnValueFalse
Determines the string that represents the value
false
in the output of the
FormFields.getColumnValues(Map)
method.
The default value is
null
, which represents no output at all.
ColumnValueTrue
public static String ColumnValueTrue
Determines the string that represents the value
true
in the output of the
FormFields.getColumnValues(Map)
method.
The default value is "
true
" (without the quotes).
Must not be
null
.
ConvertNonBreakingSpaces
public static boolean ConvertNonBreakingSpaces
Determines whether the
CharacterReference.decode(CharSequence)
and similar methods convert non-breaking space (
CharacterEntityReference._nbsp
) character entity references to normal spaces.
The default value is
true
.
When this property is set to
false
, non-breaking space (
CharacterEntityReference._nbsp
)
character entity references are decoded as non-breaking space characters (U+00A0) instead of being converted to normal spaces (U+0020).
Note that the introduction of this property in version 2.6 has changed the default behaviour of the methods listed below,
which prior to version 2.6 always decoded
CharacterEntityReference._nbsp
as non-breaking space characters (U+00A0).
The new default behaviour of the library reflects the fact that non-breaking space character entity references are almost always used in HTML documents
as a
non-collapsing white space character.
Converting them to the correct character code U+00A0, which is represented by a visible character in many older character sets, was confusing to most users
who expected to see only normal spaces.
The most common example of this is its visualisation as the character
á in the MS-DOS
CP437 character set.
The functionality of the following methods is affected:
IsApostropheEncoded
public static boolean IsApostropheEncoded
Determines whether apostrophes are encoded when calling the
CharacterReference.encode(CharSequence)
method.
A value of
false
means
apostrophe
(U+0027) characters are not encoded.
The only time apostrophes need to be encoded is within an attribute value delimited by
single quotes (apostrophes), so in most cases ignoring apostrophes is perfectly safe and
enhances the readability of the source document.
Note that apostrophes are always encoded as a
numeric character reference, never as the
character entity reference
CharacterEntityReference._apos '
.
The default value is
false
.
LoggerProvider
public static LoggerProvider LoggerProvider
Determines the
LoggerProvider
that is used to create the default
Logger
object for each new
Source
object.
The
LoggerProvider
interface contains several predefined
LoggerProvider
instances which this property can be set to,
mostly representing wrappers to common logging frameworks.
The default value is
null
, which results in the auto-detection of the most appropriate logging mechanism according to the following algorithm:
- If the class
org.slf4j.impl.StaticLoggerBinder
is detected:
- If the class
org.slf4j.impl.JDK14LoggerFactory
is detected, use LoggerProvider.JAVA
.
- If the class
org.slf4j.impl.Log4jLoggerFactory
is detected, use LoggerProvider.LOG4J
.
- If the class
org.slf4j.impl.JCLLoggerFactory
is NOT detected, use LoggerProvider.SLF4J
.
- If the class
org.apache.commons.logging.Log
is detected:
Create an instance of it using the commons-logging LogFactory
class.
- If the created
Log
is of type org.apache.commons.logging.impl.Jdk14Logger
, use LoggerProvider.JAVA
.
- If the created
Log
is of type org.apache.commons.logging.impl.Log4JLogger
, use LoggerProvider.LOG4J
.
- otherwise, use
LoggerProvider.JCL
.
- If the class
org.apache.log4j.Logger
is detected, use LoggerProvider.LOG4J
.
- otherwise, use
LoggerProvider.JAVA
.
NewLine
public static String NewLine
Determines the string used to represent a
newline in text output throughout the library.
The default value is the standard new line character sequence of the host platform, determined by
System.getProperty("line.separator")
.