org.apache.lucene.analysis.compound.hyphenation
Class PatternParser

java.lang.Object
  extended by org.xml.sax.helpers.DefaultHandler
      extended by 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
PatternParser()
           
PatternParser(PatternConsumer consumer)
           
 
Method Summary
 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(InputSource source)
          Parses a hyphenation pattern file.
 void parse(String filename)
          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
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

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)

getPattern

protected static String getPattern(String word)

normalizeException

protected ArrayList<Object> normalizeException(ArrayList<?> ex)

getExceptionWord

protected String getExceptionWord(ArrayList<?> ex)

getInterletterValues

protected static String getInterletterValues(String pat)

resolveEntity

public InputSource resolveEntity(String publicId,
                                 String systemId)
Specified by:
resolveEntity in interface EntityResolver
Overrides:
resolveEntity in class DefaultHandler

startElement

public void startElement(String uri,
                         String local,
                         String raw,
                         Attributes attrs)
Specified by:
startElement in interface ContentHandler
Overrides:
startElement in class DefaultHandler
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 interface ContentHandler
Overrides:
endElement in class DefaultHandler
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 interface ContentHandler
Overrides:
characters in class DefaultHandler
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 interface PatternConsumer
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 and Hyphen instances

Specified by:
addException in interface PatternConsumer

addPattern

public void addPattern(String p,
                       String v)
Description copied from interface: PatternConsumer
Add hyphenation patterns.

Specified by:
addPattern in interface PatternConsumer
Parameters:
p - the pattern
v - interletter values expressed as a string of digit characters.

main

public static void main(String[] args)
                 throws Exception
Throws:
Exception