org.apache.lucene.analysis.compound.hyphenation

## Class PatternParser

- java.lang.Object
- - org.xml.sax.helpers.DefaultHandler
  - - org.apache.lucene.analysis.compound.hyphenation.PatternParser

All Implemented Interfaces:
  ContentHandler, DTDHandler, EntityResolver, ErrorHandler

    public class PatternParser
    extends DefaultHandler

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 and Description
`PatternParser()`
`PatternParser(PatternConsumer consumer)`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`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)`
`protected ArrayList<Object>` `normalizeException(ArrayList<?> ex)`
`void` `parse(InputSource source)` Parses a hyphenation pattern file.
`void` `parse(String filename)` Parses a hyphenation pattern file.
`protected String` `readToken(StringBuilder 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()

#### PatternParser

    public PatternParser(PatternConsumer consumer)

### Method Detail

#### setConsumer

    public void setConsumer(PatternConsumer consumer)

#### parse

    public void parse(String filename)
               throws IOException

Parses a hyphenation pattern file.

Parameters:
  `filename` - the filename
Throws:
  `IOException` - In case of an exception while parsing

#### parse

    public void parse(InputSource source)
               throws IOException

Parses a hyphenation pattern file.

Parameters:
  `source` - the InputSource for the file
Throws:
  `IOException` - In case of an exception while parsing

#### readToken

    protected String readToken(StringBuilder 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)`