Package org.apache.fop.hyphenation
Class PatternParser
- java.lang.Object
-
- org.xml.sax.helpers.DefaultHandler
-
- org.apache.fop.hyphenation.PatternParser
-
- All Implemented Interfaces:
PatternConsumer
,org.xml.sax.ContentHandler
,org.xml.sax.DTDHandler
,org.xml.sax.EntityResolver
,org.xml.sax.ErrorHandler
public class PatternParser extends org.xml.sax.helpers.DefaultHandler implements PatternConsumer
A SAX document handler to read and parse hyphenation patterns from a XML file.
This work was authored by Carlos Villegas (cav@uniscope.co.jp).
-
-
Field Summary
Fields Modifier and Type Field Description private PatternConsumer
consumer
private int
currElement
(package private) static int
ELEM_CLASSES
(package private) static int
ELEM_EXCEPTIONS
(package private) static int
ELEM_HYPHEN
(package private) static int
ELEM_PATTERNS
private java.lang.String
errMsg
private java.util.ArrayList
exception
private boolean
hasClasses
private char
hyphenChar
private org.xml.sax.XMLReader
parser
private java.io.PrintStream
testOut
private java.lang.StringBuffer
token
-
Constructor Summary
Constructors Constructor Description PatternParser()
Construct a pattern parser.PatternParser(PatternConsumer consumer)
Construct a pattern parser.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addClass(java.lang.String c)
For testing purposes only.void
addException(java.lang.String w, java.util.ArrayList e)
For testing purposes only.void
addPattern(java.lang.String p, java.lang.String v)
For testing purposes only.void
characters(char[] ch, int start, int length)
void
closeTestOut()
Close test out file.(package private) static org.xml.sax.XMLReader
createParser()
Creates a SAX parser using JAXPvoid
endElement(java.lang.String uri, java.lang.String local, java.lang.String raw)
void
error(org.xml.sax.SAXParseException ex)
void
fatalError(org.xml.sax.SAXParseException ex)
private java.lang.String
getExceptionWord(java.util.ArrayList ex)
protected void
getExternalClasses()
private static java.lang.String
getInterletterValues(java.lang.String pat)
private java.lang.String
getLocationString(org.xml.sax.SAXParseException ex)
Returns a string of the location.private static java.lang.String
getPattern(java.lang.String word)
static void
main(java.lang.String[] args)
Main entry point when used as an application.private java.util.ArrayList
normalizeException(java.util.ArrayList ex)
void
parse(java.io.File file)
Parses a hyphenation pattern file.void
parse(java.lang.String filename)
Parses a hyphenation pattern file.void
parse(org.xml.sax.InputSource source)
Parses a hyphenation pattern file.private java.lang.String
readToken(java.lang.StringBuffer chars)
void
setTestOut(java.io.PrintStream testOut)
Set test out stream.void
startElement(java.lang.String uri, java.lang.String local, java.lang.String raw, org.xml.sax.Attributes attrs)
void
warning(org.xml.sax.SAXParseException ex)
-
-
-
Field Detail
-
parser
private org.xml.sax.XMLReader parser
-
currElement
private int currElement
-
consumer
private PatternConsumer consumer
-
token
private java.lang.StringBuffer token
-
exception
private java.util.ArrayList exception
-
hyphenChar
private char hyphenChar
-
errMsg
private java.lang.String errMsg
-
hasClasses
private boolean hasClasses
-
ELEM_CLASSES
static final int ELEM_CLASSES
- See Also:
- Constant Field Values
-
ELEM_EXCEPTIONS
static final int ELEM_EXCEPTIONS
- See Also:
- Constant Field Values
-
ELEM_PATTERNS
static final int ELEM_PATTERNS
- See Also:
- Constant Field Values
-
ELEM_HYPHEN
static final int ELEM_HYPHEN
- See Also:
- Constant Field Values
-
testOut
private java.io.PrintStream testOut
-
-
Constructor Detail
-
PatternParser
public PatternParser() throws HyphenationException
Construct a pattern parser.- Throws:
HyphenationException
- if a hyphenation exception is raised
-
PatternParser
public PatternParser(PatternConsumer consumer) throws HyphenationException
Construct a pattern parser.- Parameters:
consumer
- a pattern consumer- Throws:
HyphenationException
- if a hyphenation exception is raised
-
-
Method Detail
-
parse
public void parse(java.lang.String filename) throws HyphenationException
Parses a hyphenation pattern file.- Parameters:
filename
- the filename- Throws:
HyphenationException
- In case of an exception while parsing
-
parse
public void parse(java.io.File file) throws HyphenationException
Parses a hyphenation pattern file.- Parameters:
file
- the pattern file- Throws:
HyphenationException
- In case of an exception while parsing
-
parse
public void parse(org.xml.sax.InputSource source) throws HyphenationException
Parses a hyphenation pattern file.- Parameters:
source
- the InputSource for the file- Throws:
HyphenationException
- In case of an exception while parsing
-
createParser
static org.xml.sax.XMLReader createParser()
Creates a SAX parser using JAXP- Returns:
- the created SAX parser
-
readToken
private java.lang.String readToken(java.lang.StringBuffer chars)
-
getPattern
private static java.lang.String getPattern(java.lang.String word)
-
normalizeException
private java.util.ArrayList normalizeException(java.util.ArrayList ex)
-
getExceptionWord
private java.lang.String getExceptionWord(java.util.ArrayList ex)
-
getInterletterValues
private static java.lang.String getInterletterValues(java.lang.String pat)
-
getExternalClasses
protected void getExternalClasses() throws org.xml.sax.SAXException
- Throws:
org.xml.sax.SAXException
- if not caught
-
startElement
public void startElement(java.lang.String uri, java.lang.String local, java.lang.String raw, org.xml.sax.Attributes attrs) throws org.xml.sax.SAXException
- Specified by:
startElement
in interfaceorg.xml.sax.ContentHandler
- Overrides:
startElement
in classorg.xml.sax.helpers.DefaultHandler
- Throws:
org.xml.sax.SAXException
-
endElement
public void endElement(java.lang.String uri, java.lang.String local, java.lang.String raw)
- Specified by:
endElement
in interfaceorg.xml.sax.ContentHandler
- Overrides:
endElement
in classorg.xml.sax.helpers.DefaultHandler
-
characters
public void characters(char[] ch, int start, int length)
- Specified by:
characters
in interfaceorg.xml.sax.ContentHandler
- Overrides:
characters
in classorg.xml.sax.helpers.DefaultHandler
-
warning
public void warning(org.xml.sax.SAXParseException ex)
- Specified by:
warning
in interfaceorg.xml.sax.ErrorHandler
- Overrides:
warning
in classorg.xml.sax.helpers.DefaultHandler
-
error
public void error(org.xml.sax.SAXParseException ex)
- Specified by:
error
in interfaceorg.xml.sax.ErrorHandler
- Overrides:
error
in classorg.xml.sax.helpers.DefaultHandler
-
fatalError
public void fatalError(org.xml.sax.SAXParseException ex) throws org.xml.sax.SAXException
- Specified by:
fatalError
in interfaceorg.xml.sax.ErrorHandler
- Overrides:
fatalError
in classorg.xml.sax.helpers.DefaultHandler
- Throws:
org.xml.sax.SAXException
-
getLocationString
private java.lang.String getLocationString(org.xml.sax.SAXParseException ex)
Returns a string of the location.
-
addClass
public void addClass(java.lang.String c)
For testing purposes only. Add a character class. A character class defines characters that are considered equivalent for the purpose of hyphenation (e.g. "aA"). It usually means to ignore case.- Specified by:
addClass
in interfacePatternConsumer
- Parameters:
c
- character group
-
addException
public void addException(java.lang.String w, java.util.ArrayList e)
For testing purposes only. Add a hyphenation exception. An exception replaces the result obtained by the algorithm for cases for which this fails or the user wants to provide his own hyphenation. A hyphenatedword is a vector of alternating String's andHyphen
instances- Specified by:
addException
in interfacePatternConsumer
- Parameters:
w
- word to add as an exceptione
- pre-hyphenated word
-
addPattern
public void addPattern(java.lang.String p, java.lang.String v)
For testing purposes only. Add hyphenation patterns.- Specified by:
addPattern
in interfacePatternConsumer
- Parameters:
p
- the patternv
- interletter values expressed as a string of digit characters.
-
setTestOut
public void setTestOut(java.io.PrintStream testOut)
Set test out stream.- Parameters:
testOut
- the testOut to set
-
closeTestOut
public void closeTestOut()
Close test out file.
-
main
public static void main(java.lang.String[] args) throws java.lang.Exception
Main entry point when used as an application.- Parameters:
args
- array of command line arguments- Throws:
java.lang.Exception
- in case of uncaught exception
-
-