com.fasterxml.aalto.in
Class PNameC

java.lang.Object
  extended by com.fasterxml.aalto.in.PName
      extended by com.fasterxml.aalto.in.PNameC

public final class PNameC
extends PName

An alternate implementation of PName: instead of coming straight from byte contents, it is actually just built from a character array.

Note: one unfortunate result of this being a somewhat different PName is that equality comparison between this and other implementations will not work as expected. As such, these should only be used as temporary names.


Field Summary
protected  int mHash
          Since the hash may be calculated different from the way eventual String's hash will be (right now it is not), we better store "our" hash here.
 
Fields inherited from class com.fasterxml.aalto.in.PName
_localName, _namespaceBinding, _prefix, _prefixedName
 
Constructor Summary
PNameC(String pname, String prefix, String ln, int hash)
           
 
Method Summary
static int calcHash(char[] buffer, int start, int len)
          Implementation of a hashing method for variable length Strings.
static int calcHash(String key)
           
static PNameC construct(String pname)
           
static PNameC construct(String pname, int hash)
           
 PName createBoundName(com.fasterxml.aalto.in.NsBinding nsb)
           
 boolean equalsPName(char[] buffer, int start, int len, int hash)
           
 int getCustomHash()
           
 int getFirstQuad()
           
 int getLastQuad()
           
 int getQuad(int index)
           
 int hashCode()
          Whether we should use internal hash, or the hash of prefixed name string itself is an open question.
 int sizeInQuads()
          This method should never get called on instances of this class, so let's throw an exception if that does happen.
 
Methods inherited from class com.fasterxml.aalto.in.PName
boundEquals, boundEquals, boundHashCode, boundHashCode, constructQName, constructQName, equals, getLocalName, getNsBinding, getNsUri, getPrefix, getPrefixedName, hasPrefix, hasPrefixedName, isBound, needsBinding, toString, unboundEquals, unboundHashCode
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

mHash

protected final int mHash
Since the hash may be calculated different from the way eventual String's hash will be (right now it is not), we better store "our" hash here.

Constructor Detail

PNameC

public PNameC(String pname,
              String prefix,
              String ln,
              int hash)
Method Detail

createBoundName

public PName createBoundName(com.fasterxml.aalto.in.NsBinding nsb)
Specified by:
createBoundName in class PName

construct

public static PNameC construct(String pname)

construct

public static PNameC construct(String pname,
                               int hash)

equalsPName

public boolean equalsPName(char[] buffer,
                           int start,
                           int len,
                           int hash)

getCustomHash

public int getCustomHash()

calcHash

public static int calcHash(char[] buffer,
                           int start,
                           int len)
Implementation of a hashing method for variable length Strings. Most of the time intention is that this calculation is done by caller during parsing, not here; however, sometimes it needs to be done for parsed "String" too.

Parameters:
len - Length of String; has to be at least 1 (caller guarantees this pre-condition)

calcHash

public static int calcHash(String key)

sizeInQuads

public int sizeInQuads()
This method should never get called on instances of this class, so let's throw an exception if that does happen.

Specified by:
sizeInQuads in class PName

getFirstQuad

public int getFirstQuad()
Specified by:
getFirstQuad in class PName

getLastQuad

public final int getLastQuad()
Specified by:
getLastQuad in class PName

getQuad

public int getQuad(int index)
Specified by:
getQuad in class PName

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 Object


Copyright © 2012 Fasterxml.com. All Rights Reserved.