au.id.jericho.lib.html

Class 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.

See Also:
Config.CompatibilityMode

Nested Class Summary

static class
Config.CompatibilityMode
Represents a set of configuration parameters that relate to user agent compatibility issues.

Field Summary

static String
ColumnMultipleValueSeparator
Determines the string used to separate a single column's multiple values in the output of the FormFields.getColumnValues(Map) method.
static String
ColumnValueFalse
Determines the string that represents the value false in the output of the FormFields.getColumnValues(Map) method.
static String
ColumnValueTrue
Determines the string that represents the value true in the output of the FormFields.getColumnValues(Map) method.
static boolean
ConvertNonBreakingSpaces
Determines whether the CharacterReference.decode(CharSequence) and similar methods convert non-breaking space (CharacterEntityReference._nbsp  ) character entity references to normal spaces.
static Config.CompatibilityMode
CurrentCompatibilityMode
Determines the currently active compatibility mode.
static boolean
IsApostropheEncoded
Determines whether apostrophes are encoded when calling the CharacterReference.encode(CharSequence) method.
static LoggerProvider
LoggerProvider
Determines the LoggerProvider that is used to create the default Logger object for each new Source object.
static String
NewLine
Determines the string used to represent a newline in text output throughout the library.

Field Details

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

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:


CurrentCompatibilityMode

public static Config.CompatibilityMode CurrentCompatibilityMode
Determines the currently active compatibility mode.

The default setting is Config.CompatibilityMode.IE (MS Internet Explorer 6.0).

Must not be null.


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:

  1. 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").