## org.exist.numbering
Interface NodeIdFactory

All Known Implementing Classes:
  DLNFactory

public interface NodeIdFactory

A factory for creating node ids. To support different numbering schemes, NodeId instances should always be created through this interface. The NodeIdFactory for the current database instance can be retrieved from `BrokerPool.getNodeFactory()`.

Method Summary
`NodeId` `createFromData(int sizeHint, byte[] data, int startOffset)` Read a NodeId from the given byte array.
`NodeId` `createFromStream(VariableByteInput is)` Read a NodeId from the given input stream.
`NodeId` `createFromString(java.lang.String string)` Create a NodeId instance from its string representation.
`NodeId` `createInstance()` Create a new NodeId, initialized with a default value.
`NodeId` `createInstance(int id)` Create a new NodeId, initialized with the given base id.
`NodeId` `documentNodeId()` Returns a NodeId representing the document node of a document.
`int` `lengthInBytes(int units, byte[] data, int startOffset)` Returns the number of bytes occupied by the NodeId stored in the byte array at the given startOffset.
`void` `writeEndOfDocument(VariableByteOutputStream os)`

Method Detail

### createInstance

    public NodeId createInstance()

  Create a new NodeId, initialized with a default value.

  Returns:
    a new NodeId.

### createInstance

    public NodeId createInstance(int id)

  Create a new NodeId, initialized with the given base id.

  Parameters:
    `id` -
  Returns:
    nodeId

### createFromStream

    public NodeId createFromStream(VariableByteInput is)
                            throws java.io.IOException

  Read a NodeId from the given input stream.

  Parameters:
    `is` - the input stream to read from
  Returns:
    the NodeId read
  Throws:
    `java.io.IOException`

### createFromData

    public NodeId createFromData(int sizeHint,
                                 byte[] data,
                                 int startOffset)

  Read a NodeId from the given byte array. Start to read at startOffset. sizeHint indicates the length of the id in an implementation dependent manner. Some implementations may require sizeHint to be specified, others not.

  Parameters:
    `sizeHint` - a hint about the expected length of the id
    `data` - the byte array to read from
    `startOffset` - offset into the byte array
  Returns:
    the NodeId read

### createFromString

    public NodeId createFromString(java.lang.String string)

  Create a NodeId instance from its string representation.

  Parameters:
    `string` - the string representation of the node id as returned by `Object.toString()`
  Returns:
    nodeId

### lengthInBytes

    public int lengthInBytes(int units,
                             byte[] data,
                             int startOffset)

  Returns the number of bytes occupied by the NodeId stored in the byte array at the given startOffset. This method is similar to `createFromData(int, byte[], int)`, but it just returns the number of bytes.

  Parameters:
    `units` -
    `data` -
    `startOffset` -
  Returns:
    number of bytes

### documentNodeId

    public NodeId documentNodeId()

  Returns a NodeId representing the document node of a document. Usually, this will be a singleton object.

  Returns:
    the document node id.

### writeEndOfDocument

    public void writeEndOfDocument(VariableByteOutputStream os)

Copyright (C) Wolfgang Meier. All rights reserved.