public class Base64BinaryValue extends AtomicValue implements AtomicMatchKey, Comparable
Rewritten for Saxon 9.5 to avoid dependency on the open-source Netscape code, whose license many users were unhappy with.
NaN_MATCH_KEY, typeLabel
Constructor and Description |
---|
Base64BinaryValue(byte[] value)
Constructor: create a base64Binary value from a given array of bytes
|
Base64BinaryValue(CharSequence s)
Constructor: create a base64Binary value from a supplied string in base64 encoding
|
Modifier and Type | Method and Description |
---|---|
protected static int |
byteArrayHashCode(byte[] value) |
int |
compareTo(Object o) |
AtomicValue |
copyAsSubType(AtomicType typeLabel)
Create a copy of this atomic value (usually so that the type label can be changed).
|
static byte[] |
decode(CharSequence in)
Decode a character string in base64 notation to yield the encoded octets
|
static CharSequence |
encode(byte[] value)
Encode a byte sequence into base64 representation
|
boolean |
equals(Object other)
Test if the two base64Binary values are equal.
|
byte[] |
getBinaryValue()
Get the binary value
|
int |
getLengthInOctets()
Get the number of octets in the value
|
String |
getPrimitiveStringValue()
Convert to string
|
BuiltInAtomicType |
getPrimitiveType()
Determine the primitive type of the value.
|
Comparable |
getSchemaComparable()
Support XML Schema comparison semantics
|
AtomicMatchKey |
getXPathComparable(boolean ordered,
StringCollator collator,
int implicitTimezone)
Get an object value that implements the XPath equality and ordering comparison semantics for this value.
|
int |
hashCode() |
asAtomic, asMapKey, atomize, checkPermittedContents, effectiveBooleanValue, getCanonicalLexicalRepresentation, getCardinality, getComponent, getItemType, getStringValue, getStringValueCS, getUType, head, identityHashCode, isIdentical, isIdentical, isNaN, itemAt, iterate, iterator, process, setTypeLabel, toString
getLength, reduce, subsequence
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
asAtomic
getLength
reduce, subsequence
public Base64BinaryValue(CharSequence s) throws XPathException
s
- the lexical representation of the base64 binary value. There is no requirement
that whitespace should already be collapsed.XPathException
- if the supplied value is not in the lexical
space of the xs:base64Binary data typepublic Base64BinaryValue(byte[] value)
value
- array of bytes holding the octet sequencepublic AtomicValue copyAsSubType(AtomicType typeLabel)
copyAsSubType
in class AtomicValue
typeLabel
- the type label to be attached to the value, a subtype of xs:base64Binarypublic byte[] getBinaryValue()
public BuiltInAtomicType getPrimitiveType()
AtomicValue
getPrimitiveType
in class AtomicValue
public String getPrimitiveStringValue()
getPrimitiveStringValue
in class AtomicValue
public int getLengthInOctets()
public Comparable getSchemaComparable()
getSchemaComparable
in interface AtomicSequence
getSchemaComparable
in class AtomicValue
public AtomicMatchKey getXPathComparable(boolean ordered, StringCollator collator, int implicitTimezone)
getXPathComparable
in class AtomicValue
ordered
- true if an ordered comparison is required. In this case the result is null if the
type is unordered; in other cases the returned value will be a Comparable.collator
- the collation (not used in this version of the method)implicitTimezone
- the XPath dynamic evaluation context, used in cases where the comparison is contextpublic boolean equals(Object other)
equals
in class AtomicValue
other
- the other valueprotected static int byteArrayHashCode(byte[] value)
public static CharSequence encode(byte[] value)
value
- the byte sequencepublic static byte[] decode(CharSequence in) throws XPathException
in
- the lexical representationXPathException
- if the format is invalid (as required by XSD, this method
does draconian error handling, unlike many other base64 decoders which are liberal
in what they accept)public int compareTo(Object o)
compareTo
in interface Comparable
Copyright (c) 2004-2014 Saxonica Limited. All rights reserved.