dbXML API

## org.dbxml.core.indexer
Interface Indexer

All Superinterfaces:
  org.dbxml.server.Configurable, DBObject, org.dbxml.server.Named

All Known Implementing Classes:
  NameIndexer, ValueIndexer

public interface Indexer
extends org.dbxml.server.Named, DBObject, org.dbxml.server.Configurable

Indexer is the abstract indexing interface for dbXML. An Indexer object is implemented in order to retrieve and manage indexes.
Any number of Indexer instances may be associated with a single Collection. The type of Indexer utilized by a query depends on the 'Style' of Indexer and the type of QueryResolver that is being used to performt he query. Currently, dbXML only internally supports one kind of Indexer: 'XPath'.

Field Summary
`static java.lang.String` `STYLE_FULLTEXT`
`static java.lang.String` `STYLE_NODENAME`
`static java.lang.String` `STYLE_NODEVALUE`

Method Summary
`void` `add(java.lang.String value, Key key, int pos, int len, short elemID, short attrID)` add adds a Document to the Indexer.
`java.lang.String` `getIndexStyle()` getIndexStyle returns the Index style.
`java.lang.String` `getPattern()` getPattern returns the pattern recognized by this Indexer.
`IndexMatch[]` `queryMatches(IndexQuery query)` queryMatches retrieves a set of MatchEntry instances that match the supplied query.
`void` `remove(java.lang.String value, Key key, int pos, int len, short elemID, short attrID)` remove removes all references to the specified Key from the Indexer.
`void` `setCollection(Collection collection)` setCollection tells the Indexer who its parent is.

Methods inherited from interface org.dbxml.server.Named
`getName`

Methods inherited from interface org.dbxml.core.DBObject
`close, create, drop, exists, isOpened, open`

Methods inherited from interface org.dbxml.server.Configurable
`getConfig, setConfig`

Field Detail

### STYLE_NODENAME

    public static final java.lang.String STYLE_NODENAME

### STYLE_NODEVALUE

    public static final java.lang.String STYLE_NODEVALUE

### STYLE_FULLTEXT

    public static final java.lang.String STYLE_FULLTEXT

Method Detail

### setCollection

    public void setCollection(Collection collection)

  setCollection tells the Indexer who its parent is.
  Parameters:
    `collection` - The owner Collection

### getIndexStyle

    public java.lang.String getIndexStyle()

  getIndexStyle returns the Index style. Different query languages will need to draw from different indexing styles. For example, A query that is written in quilt will require XPath indexing.
  Returns:
    The index style

### getPattern

    public java.lang.String getPattern()

  getPattern returns the pattern recognized by this Indexer. Patterns must be in the form of (elem|*)[@(attr|*)] to tell the IndexManager which element types to send to it, so for example:

          contact@name  Indexes all contacts by name attribute
          memo          Indexes the text of all memo elements
          contact@*     Indexes all contact attributes
          *@name        Indexes the name attribute for all elements
          *             Indexes the text of all elements
          *@*           Indexes all attributes of all elements

  These patterns are used by the IndexManager when handling SAX events. All events that match the specified pattern will result in an add or remove call to the Indexer.
  Returns:
    The Pattern used

### remove

    public void remove(java.lang.String value,
                       Key key,
                       int pos,
                       int len,
                       short elemID,
                       short attrID)
                throws DBException

  remove removes all references to the specified Key from the Indexer.
  Parameters:
    `value` - The value to remove
    `key` - The Object ID
    `pos` - The offset into the stream the Element occurs at
    `len` - The length of the substream for the Element
    `elemID` - The Element ID of the value
    `attrID` - The Attribute ID of the value (if any, else -1)

### add

    public void add(java.lang.String value,
                    Key key,
                    int pos,
                    int len,
                    short elemID,
                    short attrID)
             throws DBException

  add adds a Document to the Indexer.
  Parameters:
    `value` - The value to remove
    `key` - The Object ID
    `pos` - The offset into the stream the Element occurs at
    `len` - The length of the substream for the Element
    `elemID` - The Element ID of the value
    `attrID` - The Attribute ID of the value (if any, else -1)

### queryMatches

    public IndexMatch[] queryMatches(IndexQuery query)
                              throws DBException

  queryMatches retrieves a set of MatchEntry instances that match the supplied query. The matches are then used by the QueryEngine in co-sequential processing. If this indexer doesn't support the passed value, it should return 'null'. If no matches are found, it should return an empty set. queryMatches will typically be used in XPath processing.
  Parameters:
    `query` - The IndexQuery to use
  Returns:
    The resulting matches

dbXML API

Copyright (c) 1999-2001 The dbXML Group, All rights reserved