Class LargePrefixedNameSet

java.lang.Object
com.ctc.wstx.dtd.PrefixedNameSet
com.ctc.wstx.dtd.LargePrefixedNameSet

public final class LargePrefixedNameSet extends PrefixedNameSet
Implementation of PrefixedNameSet suitable for storing large number of entries; basically anything above trivially small sets (4 or less).

Notes about usage:

  • All Strings contained in PrefixedName instances are assumed interned, so that equality comparison can be done (both for values stored and keys used)
  • It is assumed that sets are never empty, ie. always contain at least one entry.
  • It is assumed that caller has ensured that there are no duplicates in the set -- this data structure does no further validation.
  • Field Details

    • MIN_HASH_AREA

      static final int MIN_HASH_AREA
      Let's not bother creating tiny hash areas; should seldom be a problem as smaller sets are usually created using different impl. class.
      See Also:
    • mNsAware

      final boolean mNsAware
    • mNames

      final PrefixedName[] mNames
      Primary hash area in which NameKeys are added. Sized to be the smallest power of two bigger than number of entries; but at least 4 (it doesn't make sense to create smaller arrays)
    • mBuckets

      final LargePrefixedNameSet.Bucket[] mBuckets
      Secondary (spill) area, in which keys whose hash values collide with primary ones are added. Number of buckets is 1/4 of number of primary entries,
  • Constructor Details

    • LargePrefixedNameSet

      public LargePrefixedNameSet(boolean nsAware, PrefixedName[] names)
  • Method Details

    • hasMultiple

      public boolean hasMultiple()
      Specified by:
      hasMultiple in class PrefixedNameSet
      Returns:
      True if set contains more than one entry; false if not (empty or has one)
    • contains

      public boolean contains(PrefixedName name)
      Specified by:
      contains in class PrefixedNameSet
      Returns:
      True if the set contains specified name; false if not.
    • appendNames

      public void appendNames(StringBuilder sb, String sep)
      Method called by debug/error handling code, to get a list of all names contained.
      Specified by:
      appendNames in class PrefixedNameSet