Class ByteBasedPName

  • Direct Known Subclasses:
    PName1, PName2, PName3, PNameN

    public abstract class ByteBasedPName
    extends PName
    This intermediate abstract class defines more specialized API needed by components like symbol tables, which need to provide efficient access to byte-based PNames. Byte-based names can be used to directly convert byte sequences to actual character-based names, without intervening byte-to-character decoding phase.
    • Field Detail

      • mHash

        protected final int mHash
        Since the hash is calculated different from the way eventual String's hash will be (bit faster, not significantly worse hashing uniformness), we need to store that hash here.
    • Constructor Detail

      • ByteBasedPName

        protected ByteBasedPName​(java.lang.String pname,
                                 java.lang.String prefix,
                                 java.lang.String ln,
                                 int hash)
    • Method Detail

      • getFirstQuad

        public abstract int getFirstQuad()
        Specified by:
        getFirstQuad in class PName
      • getQuad

        public abstract int getQuad​(int index)
        Specified by:
        getQuad in class PName
      • sizeInQuads

        public abstract int sizeInQuads()
        Specified by:
        sizeInQuads in class PName
      • equals

        public abstract boolean equals​(int quad1,
                                       int quad2)
      • equals

        public abstract boolean equals​(int[] quads,
                                       int qlen)
      • hashEquals

        public abstract boolean hashEquals​(int h,
                                           int quad1,
                                           int quad2)
      • hashEquals

        public abstract boolean hashEquals​(int h,
                                           int[] quads,
                                           int qlen)
      • hashCode

        public int hashCode()
        Whether we should use internal hash, or the hash of prefixed name string itself is an open question. For now, let's use former.
        Overrides:
        hashCode in class PName