Package com.ctc.wstx.dtd
Class LargePrefixedNameSet
java.lang.Object
com.ctc.wstx.dtd.PrefixedNameSet
com.ctc.wstx.dtd.LargePrefixedNameSet
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.
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescription(package private) final LargePrefixedNameSet.Bucket[]
Secondary (spill) area, in which keys whose hash values collide with primary ones are added.(package private) static final int
Let's not bother creating tiny hash areas; should seldom be a problem as smaller sets are usually created using different impl.(package private) final PrefixedName[]
Primary hash area in which NameKeys are added.(package private) final boolean
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
appendNames
(StringBuilder sb, String sep) Method called by debug/error handling code, to get a list of all names contained.boolean
contains
(PrefixedName name) boolean
Methods inherited from class com.ctc.wstx.dtd.PrefixedNameSet
toString, toString
-
Field Details
-
MIN_HASH_AREA
static final int MIN_HASH_AREALet'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
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
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
-
-
Method Details
-
hasMultiple
public boolean hasMultiple()- Specified by:
hasMultiple
in classPrefixedNameSet
- Returns:
- True if set contains more than one entry; false if not (empty or has one)
-
contains
- Specified by:
contains
in classPrefixedNameSet
- Returns:
- True if the set contains specified name; false if not.
-
appendNames
Method called by debug/error handling code, to get a list of all names contained.- Specified by:
appendNames
in classPrefixedNameSet
-