Class PatternParser
- java.lang.Object
-
- org.xml.sax.helpers.DefaultHandler
-
- org.apache.lucene.analysis.compound.hyphenation.PatternParser
-
- All Implemented Interfaces:
PatternConsumer
,ContentHandler
,DTDHandler
,EntityResolver
,ErrorHandler
public class PatternParser extends DefaultHandler implements PatternConsumer
A SAX document handler to read and parse hyphenation patterns from a XML file. This class has been taken from the Apache FOP project (http://xmlgraphics.apache.org/fop/). They have been slightly modified.
-
-
Constructor Summary
Constructors Constructor Description PatternParser()
PatternParser(PatternConsumer consumer)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addClass(String c)
Add a character class.void
addException(String w, ArrayList<Object> e)
Add a hyphenation exception.void
addPattern(String p, String v)
Add hyphenation patterns.void
characters(char[] ch, int start, int length)
void
endElement(String uri, String local, String raw)
protected String
getExceptionWord(ArrayList<?> ex)
protected static String
getInterletterValues(String pat)
protected static String
getPattern(String word)
static void
main(String[] args)
protected ArrayList<Object>
normalizeException(ArrayList<?> ex)
void
parse(File file)
Parses a hyphenation pattern file.void
parse(String filename)
Parses a hyphenation pattern file.void
parse(InputSource source)
Parses a hyphenation pattern file.protected String
readToken(StringBuffer chars)
InputSource
resolveEntity(String publicId, String systemId)
void
setConsumer(PatternConsumer consumer)
void
startElement(String uri, String local, String raw, Attributes attrs)
-
Methods inherited from class org.xml.sax.helpers.DefaultHandler
endDocument, endPrefixMapping, error, fatalError, ignorableWhitespace, notationDecl, processingInstruction, setDocumentLocator, skippedEntity, startDocument, startPrefixMapping, unparsedEntityDecl, warning
-
-
-
-
Constructor Detail
-
PatternParser
public PatternParser() throws HyphenationException
- Throws:
HyphenationException
-
PatternParser
public PatternParser(PatternConsumer consumer) throws HyphenationException
- Throws:
HyphenationException
-
-
Method Detail
-
setConsumer
public void setConsumer(PatternConsumer consumer)
-
parse
public void parse(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(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(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
-
readToken
protected String readToken(StringBuffer chars)
-
resolveEntity
public InputSource resolveEntity(String publicId, String systemId)
- Specified by:
resolveEntity
in interfaceEntityResolver
- Overrides:
resolveEntity
in classDefaultHandler
-
startElement
public void startElement(String uri, String local, String raw, Attributes attrs)
- Specified by:
startElement
in interfaceContentHandler
- Overrides:
startElement
in classDefaultHandler
- See Also:
ContentHandler.startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes)
-
endElement
public void endElement(String uri, String local, String raw)
- Specified by:
endElement
in interfaceContentHandler
- Overrides:
endElement
in classDefaultHandler
- See Also:
ContentHandler.endElement(java.lang.String, java.lang.String, java.lang.String)
-
characters
public void characters(char[] ch, int start, int length)
- Specified by:
characters
in interfaceContentHandler
- Overrides:
characters
in classDefaultHandler
- See Also:
ContentHandler.characters(char[], int, int)
-
addClass
public void addClass(String c)
Description copied from interface:PatternConsumer
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(String w, ArrayList<Object> e)
Description copied from interface:PatternConsumer
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
-
addPattern
public void addPattern(String p, String v)
Description copied from interface:PatternConsumer
Add hyphenation patterns.- Specified by:
addPattern
in interfacePatternConsumer
- Parameters:
p
- the patternv
- interletter values expressed as a string of digit characters.
-
-