primaryQuadCount
public int primaryQuadCount()
Serializableprivate intprivate int[]2 * _hashSize
entries of 16 bytes (4 ints), arranged in a cascading lookup
structure (details of which may be tweaked depending on expected rates
of collisions).private int_hashArea; which is
at most 1/8 of actual size of the underlying array (4-int slots,
primary covers only half of the area; plus, additional area for longer
symbols after hash area).private int_hashArea that follows main slots and contains
quads for longer names (13 bytes or longer), and points to the
first available int that may be used for appending quads of the next
long name.private int_hashArea where secondary entries startprivate intprivate int1 << _tertiaryShift is the size, and shift value
is also used for translating from primary offset into
tertiary bucket (shift right by 4 + _tertiaryShift).private int_hashArea where tertiary entries startstatic final intprivate static final intprivate static final intprivate static final intprivate static final intprivate static final long_mask, _names, _offsets_backupMatcher, _locale, _nameLookup, MATCH_END_OBJECT, MATCH_ODD_TOKEN, MATCH_UNKNOWN_NAMEprivate BinaryNameMatcher(SimpleNameMatcher matcher,
String[] nameLookup,
int hashSize) TokenStreamFactory "root"
symbol tables (for formats that use such approach): ones used for merging
and sharing common symbolsprivate int_appendLongName(int[] quads,
int qlen) private final int_calcOffset(int hash) (package private) static int_calcTertiaryShift(int primarySlots) private static BinaryNameMatcher_construct(List<String> symbols,
SimpleNameMatcher base) private static int_decodeFull(byte[] b,
int offset) private static int_decodeLast(byte[] b,
int offset,
int bytes) private int_findOffsetForAdd(int hash) private int_findTertiary(int origOffset,
int q1) private int_findTertiary(int origOffset,
int q1,
int q2) private int_findTertiary(int origOffset,
int hash,
int[] q,
int qlen) private int_findTertiary(int origOffset,
int q1,
int q2,
int q3) private int_lengthAndIndex(int qlen) static int[]private intprivate boolean_verifyLongName(int[] q,
int qlen,
int spillOffset) private boolean_verifyLongName2(int[] q,
int qlen,
int spillOffset) intprivate intprivate intprivate intprivate intintintcalcHash(int q1) intcalcHash(int[] q,
int qlen) intcalcHash(int q1,
int q2) intcalcHash(int q1,
int q2,
int q3) static BinaryNameMatcherstatic BinaryNameMatcherconstructCaseInsensitive(Locale locale,
List<Named> propertyNames,
boolean alreadyInterned) static BinaryNameMatcherconstructFrom(List<Named> propertyNames,
boolean alreadyInterned) intmatchByQuad(int q1) intmatchByQuad(int[] q,
int qlen) intmatchByQuad(int q1,
int q2) intmatchByQuad(int q1,
int q2,
int q3) intintintsize()intinttoString()int_matchSpill, matchName, secondaryCount, spillCount_findSize, _fromName, _hash, _lc, matchSecondary, nameLookup, stringsFromNames2 * _hashSize
entries of 16 bytes (4 ints), arranged in a cascading lookup
structure (details of which may be tweaked depending on expected rates
of collisions)._hashArea; which is
at most 1/8 of actual size of the underlying array (4-int slots,
primary covers only half of the area; plus, additional area for longer
symbols after hash area)._hashArea where secondary entries start_hashArea where tertiary entries start1 << _tertiaryShift is the size, and shift value
is also used for translating from primary offset into
tertiary bucket (shift right by 4 + _tertiaryShift).
Default value is 2, for buckets of 4 slots; grows bigger with bigger table sizes.
_hashArea._hashArea that follows main slots and contains
quads for longer names (13 bytes or longer), and points to the
first available int that may be used for appending quads of the next
long name.
Note that long name area follows immediately after the fixed-size
main hash area (_hashArea).TokenStreamFactory "root"
symbol tables (for formats that use such approach): ones used for merging
and sharing common symbolsmatcher - Backup matcher used if efficient primary matching cannot be usednameLookup - Set of names to matchhashSize - Estimated basic hash area size to use (slightly bigger than number
of entries in nameLookup arraymatchByQuad in class PropertyNameMatchermatchByQuad in class PropertyNameMatchermatchByQuad in class PropertyNameMatchermatchByQuad in class PropertyNameMatcher