org.exist
Class Indexer

java.lang.Object
  extended by java.util.Observable
      extended by org.exist.Indexer
All Implemented Interfaces:
org.xml.sax.ContentHandler, org.xml.sax.ErrorHandler, org.xml.sax.ext.LexicalHandler

public class Indexer
extends java.util.Observable
implements org.xml.sax.ContentHandler, org.xml.sax.ext.LexicalHandler, org.xml.sax.ErrorHandler

Parses a given input document via SAX, stores it to the database and handles index-creation.


Field Summary
static java.lang.String ATTR_ID_TYPE
           
static java.lang.String ATTR_IDREF_TYPE
           
static java.lang.String ATTR_IDREFS_TYPE
           
protected  DBBroker broker
           
protected  XMLString charBuf
           
static java.lang.String CONFIGURATION_ELEMENT_NAME
           
static java.lang.String CONFIGURATION_INDEX_ELEMENT_NAME
           
protected  int currentLine
           
protected  NodePath currentPath
           
protected  int docSize
           
protected  DocumentImpl document
           
protected  java.lang.String ignorePrefix
           
protected  boolean inCDATASection
           
protected  StreamListener indexListener
           
protected  IndexSpec indexSpec
           
protected  boolean insideDTD
           
protected  int level
           
protected  org.xml.sax.Locator locator
           
protected  java.util.Stack<XMLString> nodeContentStack
           
protected  int normalize
           
protected  java.util.Map<java.lang.String,java.lang.String> nsMappings
           
static java.lang.String PRESERVE_WS_MIXED_CONTENT_ATTRIBUTE
           
protected  StoredNode prevNode
           
protected  ProgressIndicator progress
           
static java.lang.String PROPERTY_INDEXER_CONFIG
           
static java.lang.String PROPERTY_PRESERVE_WS_MIXED_CONTENT
           
static java.lang.String PROPERTY_SUPPRESS_WHITESPACE
           
protected  org.w3c.dom.Element rootNode
           
protected  java.util.Stack<ElementImpl> stack
           
static java.lang.String SUPPRESS_WHITESPACE_ATTRIBUTE
           
protected  boolean suppressWSmixed
           
protected  Txn transaction
           
protected  boolean validate
           
 
Constructor Summary
Indexer(DBBroker broker, Txn transaction)
          Create a new parser using the given database broker and user to store the document.
Indexer(DBBroker broker, Txn transaction, boolean priv)
          Create a new parser using the given database broker and user to store the document.
 
Method Summary
 void characters(char[] ch, int start, int length)
           
 void comment(char[] ch, int start, int length)
           
 void endCDATA()
           
 void endDocument()
           
 void endDTD()
           
 void endElement(java.lang.String namespace, java.lang.String name, java.lang.String qname)
           
 void endEntity(java.lang.String name)
           
 void endPrefixMapping(java.lang.String prefix)
           
 void error(org.xml.sax.SAXParseException e)
           
 void fatalError(org.xml.sax.SAXParseException e)
           
 int getDocSize()
           
 DocumentImpl getDocument()
           
 void ignorableWhitespace(char[] ch, int start, int length)
           
 void processingInstruction(java.lang.String target, java.lang.String data)
           
 void setDocument(DocumentImpl doc, CollectionConfiguration collectionConfig)
          Prepare the indexer for parsing a new document.
 void setDocumentLocator(org.xml.sax.Locator locator)
           
 void setDocumentObject(DocumentImpl doc)
          Set the document object to be used by this Indexer.
 void setValidating(boolean validate)
           
 void skippedEntity(java.lang.String name)
           
 void startCDATA()
           
 void startDocument()
           
 void startDTD(java.lang.String name, java.lang.String publicId, java.lang.String systemId)
           
 void startElement(java.lang.String namespace, java.lang.String name, java.lang.String qname, org.xml.sax.Attributes attributes)
           
 void startEntity(java.lang.String name)
           
 void startPrefixMapping(java.lang.String prefix, java.lang.String uri)
           
 void warning(org.xml.sax.SAXParseException e)
           
 
Methods inherited from class java.util.Observable
addObserver, clearChanged, countObservers, deleteObserver, deleteObservers, hasChanged, notifyObservers, notifyObservers, setChanged
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ATTR_ID_TYPE

public static final java.lang.String ATTR_ID_TYPE
See Also:
Constant Field Values

ATTR_IDREF_TYPE

public static final java.lang.String ATTR_IDREF_TYPE
See Also:
Constant Field Values

ATTR_IDREFS_TYPE

public static final java.lang.String ATTR_IDREFS_TYPE
See Also:
Constant Field Values

CONFIGURATION_ELEMENT_NAME

public static final java.lang.String CONFIGURATION_ELEMENT_NAME
See Also:
Constant Field Values

CONFIGURATION_INDEX_ELEMENT_NAME

public static final java.lang.String CONFIGURATION_INDEX_ELEMENT_NAME
See Also:
Constant Field Values

SUPPRESS_WHITESPACE_ATTRIBUTE

public static final java.lang.String SUPPRESS_WHITESPACE_ATTRIBUTE
See Also:
Constant Field Values

PRESERVE_WS_MIXED_CONTENT_ATTRIBUTE

public static final java.lang.String PRESERVE_WS_MIXED_CONTENT_ATTRIBUTE
See Also:
Constant Field Values

PROPERTY_INDEXER_CONFIG

public static final java.lang.String PROPERTY_INDEXER_CONFIG
See Also:
Constant Field Values

PROPERTY_SUPPRESS_WHITESPACE

public static final java.lang.String PROPERTY_SUPPRESS_WHITESPACE
See Also:
Constant Field Values

PROPERTY_PRESERVE_WS_MIXED_CONTENT

public static final java.lang.String PROPERTY_PRESERVE_WS_MIXED_CONTENT
See Also:
Constant Field Values

broker

protected DBBroker broker

transaction

protected Txn transaction

indexListener

protected StreamListener indexListener

charBuf

protected XMLString charBuf

inCDATASection

protected boolean inCDATASection

currentLine

protected int currentLine

currentPath

protected NodePath currentPath

document

protected DocumentImpl document

indexSpec

protected IndexSpec indexSpec

insideDTD

protected boolean insideDTD

validate

protected boolean validate

level

protected int level

locator

protected org.xml.sax.Locator locator

normalize

protected int normalize

nsMappings

protected java.util.Map<java.lang.String,java.lang.String> nsMappings

rootNode

protected org.w3c.dom.Element rootNode

stack

protected java.util.Stack<ElementImpl> stack

nodeContentStack

protected java.util.Stack<XMLString> nodeContentStack

prevNode

protected StoredNode prevNode

ignorePrefix

protected java.lang.String ignorePrefix

progress

protected ProgressIndicator progress

suppressWSmixed

protected boolean suppressWSmixed

docSize

protected int docSize
Constructor Detail

Indexer

public Indexer(DBBroker broker,
               Txn transaction)
        throws EXistException
Create a new parser using the given database broker and user to store the document.

Parameters:
broker -
Throws:
EXistException

Indexer

public Indexer(DBBroker broker,
               Txn transaction,
               boolean priv)
        throws EXistException
Create a new parser using the given database broker and user to store the document.

Parameters:
broker - The database broker to use.
transaction - The transaction to use for indexing
priv - used by the security manager to indicate that it needs privileged access to the db.
Throws:
EXistException
Method Detail

setValidating

public void setValidating(boolean validate)

setDocument

public void setDocument(DocumentImpl doc,
                        CollectionConfiguration collectionConfig)
Prepare the indexer for parsing a new document. This will reset the internal state of the Indexer object.

Parameters:
doc -

setDocumentObject

public void setDocumentObject(DocumentImpl doc)
Set the document object to be used by this Indexer. This method doesn't reset the internal state.

Parameters:
doc -

getDocument

public DocumentImpl getDocument()

getDocSize

public int getDocSize()

characters

public void characters(char[] ch,
                       int start,
                       int length)
Specified by:
characters in interface org.xml.sax.ContentHandler

comment

public void comment(char[] ch,
                    int start,
                    int length)
Specified by:
comment in interface org.xml.sax.ext.LexicalHandler

endCDATA

public void endCDATA()
Specified by:
endCDATA in interface org.xml.sax.ext.LexicalHandler

endDTD

public void endDTD()
Specified by:
endDTD in interface org.xml.sax.ext.LexicalHandler

endDocument

public void endDocument()
Specified by:
endDocument in interface org.xml.sax.ContentHandler

endElement

public void endElement(java.lang.String namespace,
                       java.lang.String name,
                       java.lang.String qname)
Specified by:
endElement in interface org.xml.sax.ContentHandler

endPrefixMapping

public void endPrefixMapping(java.lang.String prefix)
Specified by:
endPrefixMapping in interface org.xml.sax.ContentHandler

error

public void error(org.xml.sax.SAXParseException e)
           throws org.xml.sax.SAXException
Specified by:
error in interface org.xml.sax.ErrorHandler
Throws:
org.xml.sax.SAXException

fatalError

public void fatalError(org.xml.sax.SAXParseException e)
                throws org.xml.sax.SAXException
Specified by:
fatalError in interface org.xml.sax.ErrorHandler
Throws:
org.xml.sax.SAXException

ignorableWhitespace

public void ignorableWhitespace(char[] ch,
                                int start,
                                int length)
Specified by:
ignorableWhitespace in interface org.xml.sax.ContentHandler

processingInstruction

public void processingInstruction(java.lang.String target,
                                  java.lang.String data)
Specified by:
processingInstruction in interface org.xml.sax.ContentHandler

setDocumentLocator

public void setDocumentLocator(org.xml.sax.Locator locator)
Specified by:
setDocumentLocator in interface org.xml.sax.ContentHandler

startCDATA

public void startCDATA()
Specified by:
startCDATA in interface org.xml.sax.ext.LexicalHandler

startDTD

public void startDTD(java.lang.String name,
                     java.lang.String publicId,
                     java.lang.String systemId)
Specified by:
startDTD in interface org.xml.sax.ext.LexicalHandler

startDocument

public void startDocument()
Specified by:
startDocument in interface org.xml.sax.ContentHandler

startElement

public void startElement(java.lang.String namespace,
                         java.lang.String name,
                         java.lang.String qname,
                         org.xml.sax.Attributes attributes)
                  throws org.xml.sax.SAXException
Specified by:
startElement in interface org.xml.sax.ContentHandler
Throws:
org.xml.sax.SAXException

startEntity

public void startEntity(java.lang.String name)
Specified by:
startEntity in interface org.xml.sax.ext.LexicalHandler

endEntity

public void endEntity(java.lang.String name)
Specified by:
endEntity in interface org.xml.sax.ext.LexicalHandler

skippedEntity

public void skippedEntity(java.lang.String name)
Specified by:
skippedEntity in interface org.xml.sax.ContentHandler

startPrefixMapping

public void startPrefixMapping(java.lang.String prefix,
                               java.lang.String uri)
Specified by:
startPrefixMapping in interface org.xml.sax.ContentHandler

warning

public void warning(org.xml.sax.SAXParseException e)
             throws org.xml.sax.SAXException
Specified by:
warning in interface org.xml.sax.ErrorHandler
Throws:
org.xml.sax.SAXException