Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## com.fasterxml.aalto.in
Class ByteBasedPNameTable

    java.lang.Object
      com.fasterxml.aalto.util.NameTable
          com.fasterxml.aalto.in.ByteBasedPNameTable

    public final class ByteBasedPNameTable

extends NameTable

This is a symbol table implementation used for storing byte-based `PNames`, specifically, instances of (`ByteBasedPName`).

Constructor Summary
`ByteBasedPNameTable(int hashSize)`

Method Summary
`ByteBasedPName` | `addSymbol(int hash, String symbolStr, int colonIx, int[] quads, int qlen)`
`ByteBasedPName` | `addSymbol(int hash, String symbolStr, int colonIx, int firstQuad, int secondQuad)`
`static int` | `calcHash(int firstQuad)`
`static int` | `calcHash(int[] quads, int qlen)`
`static int` | `calcHash(int firstQuad, int secondQuad)`
`static int[]` | `calcQuads(byte[] wordBytes)`
`ByteBasedPName` | `findSymbol(int hash, int[] quads, int qlen)` Finds and returns name matching the specified symbol, if such name already exists in the table; or if not, creates name object, adds to the table, and returns it.
`ByteBasedPName` | `findSymbol(int hash, int firstQuad, int secondQuad)` Finds and returns name matching the specified symbol, if such name already exists in the table; or if not, creates name object, adds to the table, and returns it.
`void` | `markAsShared()`
`boolean` | `maybeDirty()` Method called to check to quickly see if a child symbol table may have gotten additional entries.
`boolean` | `mergeFromChild(ByteBasedPNameTable child)`
`void` | `nuke()` Method used by test code, to reset state of the name table.
`int` | `size()`
`String` | `toDebugString()`
`String` | `toString()`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Constructor Detail

### ByteBasedPNameTable

    public ByteBasedPNameTable(int hashSize)

Method Detail

### mergeFromChild

    public boolean mergeFromChild(ByteBasedPNameTable child)

### markAsShared

    public void markAsShared()

### nuke

    public void nuke()

  Method used by test code, to reset state of the name table.

### size

    public int size()

  Specified by:
    `size` in class `NameTable`

### maybeDirty

    public boolean maybeDirty()

  Method called to check to quickly see if a child symbol table may have gotten additional entries. Used for checking to see if a child table should be merged into shared table.

  Specified by:
    `maybeDirty` in class `NameTable`

### findSymbol

    public ByteBasedPName findSymbol(int hash,
                                     int firstQuad,
                                     int secondQuad)

  Finds and returns name matching the specified symbol, if such name already exists in the table; or if not, creates name object, adds to the table, and returns it.

  Note: separate methods to optimize common case of relatively short element/attribute names (8 or less ascii characters)

  Parameters:
    `firstQuad` - int32 containing first 4 bytes of the pname; if the whole name less than 4 bytes, padded with zero bytes in front (zero MSBs, ie. right aligned)
    `secondQuad` - int32 containing bytes 5 through 8 of the pname; if less than 8 bytes, padded with up to 4 zero bytes in front (zero MSBs, ie. right aligned)
  Returns:
    PName matching the symbol passed (or constructed for it)

### findSymbol

    public ByteBasedPName findSymbol(int hash,
                                     int[] quads,
                                     int qlen)

  Finds and returns name matching the specified symbol, if such name already exists in the table; or if not, creates name object, adds to the table, and returns it.

  Note: this is the general purpose method that can be called for names of any length. However, if name is less than 9 bytes long, it is preferable to call the version optimized for short names.

  Parameters:
    `quads` - Array of int32s, each of which contain 4 bytes of encoded name
    `qlen` - Number of int32s, starting from index 0, in quads parameter
  Returns:
    PName matching the symbol passed (or constructed for it)

### addSymbol

    public ByteBasedPName addSymbol(int hash,
                                    String symbolStr,
                                    int colonIx,
                                    int firstQuad,
                                    int secondQuad)

### addSymbol

    public ByteBasedPName addSymbol(int hash,
                                    String symbolStr,
                                    int colonIx,
                                    int[] quads,
                                    int qlen)

### calcHash

    public static final int calcHash(int firstQuad)

### calcHash

    public static final int calcHash(int firstQuad,
                                     int secondQuad)

### calcHash

    public static final int calcHash(int[] quads,
                                     int qlen)

### calcQuads

    public static int[] calcQuads(byte[] wordBytes)

### toString

    public String toString()

  Overrides:
    `toString` in class `Object`

### toDebugString

    public String toDebugString()

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2012 Fasterxml.com. All Rights Reserved.