Package net.sf.saxon.value

## Class BooleanValue

- java.lang.Object
- - net.sf.saxon.value.AtomicValue
  - - net.sf.saxon.value.BooleanValue

- All Implemented Interfaces:
    `java.lang.Comparable`, `java.lang.Iterable<AtomicValue>`, `AtomicMatchKey`, `AtomicSequence`, `GroundedValue`, `IdentityComparable`, `Item`, `Sequence`, `ConversionResult`

      public final class BooleanValue
      extends AtomicValue
      implements java.lang.Comparable, AtomicMatchKey

  A boolean XPath value

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static BooleanValue` | `FALSE` | The boolean value FALSE
    `static BooleanValue` | `TRUE` | The boolean value TRUE

    - ### Fields inherited from class net.sf.saxon.value.AtomicValue

      `typeLabel`

    - ### Fields inherited from interface net.sf.saxon.expr.sort.AtomicMatchKey

      `NaN_MATCH_KEY`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `BooleanValue​(boolean value, AtomicType typeLabel)` | Create a new Boolean value with a user-supplied type label.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `int` | `compareTo​(java.lang.Object other)` | Compare the value to another boolean value
    `AtomicValue` | `copyAsSubType​(AtomicType typeLabel)` | Create a copy of this atomic value (usually so that the type label can be changed).
    `boolean` | `effectiveBooleanValue()` | Get the effective boolean value of this expression
    `boolean` | `equals​(java.lang.Object other)` | Determine whether two boolean values are equal
    `static ConversionResult` | `fromString​(java.lang.CharSequence s)` | Convert a string to a boolean value, using the XML Schema rules (including whitespace trimming)
    `static BooleanValue` | `get​(boolean value)` | Factory method: get a BooleanValue
    `boolean` | `getBooleanValue()` | Get the value
    `java.lang.String` | `getPrimitiveStringValue()` | Convert to string
    `BuiltInAtomicType` | `getPrimitiveType()` | Determine the primitive type of the value.
    `java.lang.Comparable` | `getSchemaComparable()` | Get a Comparable value that implements the XML Schema ordering comparison semantics for this value.
    `AtomicMatchKey` | `getXPathComparable​(boolean ordered, StringCollator collator, int implicitTimezone)` | Get a Comparable value that implements the XPath ordering comparison semantics for this value.
    `int` | `hashCode()` | Get a hash code for comparing two BooleanValues
    `java.lang.String` | `toString()` | Diagnostic display of this value as a string

    - ### Methods inherited from class net.sf.saxon.value.AtomicValue

      `asAtomic, asMapKey, atomize, checkPermittedContents, checkValidInJavascript, getCanonicalLexicalRepresentation, getCardinality, getComponent, getGenre, getItemType, getLength, getStringValue, getStringValueCS, getUType, head, identityHashCode, isIdentical, isIdentical, isNaN, itemAt, iterate, iterator, setTypeLabel`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface net.sf.saxon.expr.sort.AtomicMatchKey

      `asAtomic`

    - ### Methods inherited from interface net.sf.saxon.om.GroundedValue

      `asIterable, concatenate, containsNode, materialize`

    - ### Methods inherited from interface net.sf.saxon.om.Item

      `isStreamed, reduce, subsequence, toShortString`

    - ### Methods inherited from interface java.lang.Iterable

      `forEach, spliterator`

    - ### Methods inherited from interface net.sf.saxon.om.Sequence

      `makeRepeatable`

- - ### Field Detail

    - #### TRUE

          public static final BooleanValue TRUE

      The boolean value TRUE

    - #### FALSE

          public static final BooleanValue FALSE

      The boolean value FALSE

  - ### Constructor Detail

    - #### BooleanValue

          public BooleanValue​(boolean value,
                              AtomicType typeLabel)

      Create a new Boolean value with a user-supplied type label. It is the caller's responsibility to ensure that the value is valid for the subtype
      Parameters:
        `value` - the boolean value
        `typeLabel` - the type label, xs:boolean or a subtype

  - ### Method Detail

    - #### get

          public static BooleanValue get​(boolean value)

      Factory method: get a BooleanValue
      Parameters:
        `value` - true or false, to determine which boolean value is required
      Returns:
        the BooleanValue requested

    - #### copyAsSubType

          public AtomicValue copyAsSubType​(AtomicType typeLabel)

      Create a copy of this atomic value (usually so that the type label can be changed). The type label of the copy will be reset to the primitive type.
      Specified by:
        `copyAsSubType` in class `AtomicValue`
      Parameters:
        `typeLabel` - the atomic type label to be added to the copied value
      Returns:
        the copied value

    - #### fromString

          public static ConversionResult fromString​(java.lang.CharSequence s)

      Convert a string to a boolean value, using the XML Schema rules (including whitespace trimming)
      Parameters:
        `s` - the input string
      Returns:
        the relevant BooleanValue if validation succeeds; or a ValidationFailure if not.

    - #### getBooleanValue

          public boolean getBooleanValue()

      Get the value
      Returns:
        true or false, the actual boolean value of this BooleanValue

    - #### effectiveBooleanValue

          public boolean effectiveBooleanValue()

      Get the effective boolean value of this expression
      Specified by:
        `effectiveBooleanValue` in interface `GroundedValue`
      Overrides:
        `effectiveBooleanValue` in class `AtomicValue`
      Returns:
        the boolean value

    - #### getPrimitiveType

          public BuiltInAtomicType getPrimitiveType()

      Determine the primitive type of the value. This delivers the same answer as getItemType().getPrimitiveItemType(). The primitive types are the 19 primitive types of XML Schema, plus xs:integer, xs:dayTimeDuration and xs:yearMonthDuration, and xs:untypedAtomic. For external objects, the result is AnyAtomicType.
      Specified by:
        `getPrimitiveType` in class `AtomicValue`
      Returns:
        the primitive type

    - #### getPrimitiveStringValue

          public java.lang.String getPrimitiveStringValue()

      Convert to string
      Specified by:
        `getPrimitiveStringValue` in class `AtomicValue`
      Returns:
        "true" or "false"

    - #### getSchemaComparable

          public java.lang.Comparable getSchemaComparable()

      Get a Comparable value that implements the XML Schema ordering comparison semantics for this value. The default implementation returns "this". This is overridden for particular atomic types.

      In the case of data types that are partially ordered, the returned Comparable extends the standard semantics of the compareTo() method by returning the value `SequenceTool.INDETERMINATE_ORDERING` when there is no defined order relationship between two given values.

      Specified by:
        `getSchemaComparable` in interface `AtomicSequence`
      Specified by:
        `getSchemaComparable` in class `AtomicValue`
      Returns:
        a Comparable that follows XML Schema comparison rules

    - #### getXPathComparable

          public AtomicMatchKey getXPathComparable​(boolean ordered,
                                                   StringCollator collator,
                                                   int implicitTimezone)

      Get a Comparable value that implements the XPath ordering comparison semantics for this value. Returns null if the value is not comparable according to XPath rules. The default implementation returns null. This is overridden for types that allow ordered comparisons in XPath: numeric, boolean, string, date, time, dateTime, yearMonthDuration, dayTimeDuration, and anyURI.
      Specified by:
        `getXPathComparable` in class `AtomicValue`
      Parameters:
        `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 to be used when comparing strings
        `implicitTimezone` - the XPath dynamic evaluation context, used in cases where the comparison is context sensitive
      Returns:
        an Object whose equals() and hashCode() methods implement the XPath comparison semantics with respect to this atomic value. If ordered is specified, the result will either be null if no ordering is defined, or will be a Comparable

    - #### compareTo

          public int compareTo​(java.lang.Object other)

      Compare the value to another boolean value
      Specified by:
        `compareTo` in interface `java.lang.Comparable`
      Parameters:
        `other` - The other boolean value
      Returns:
        -1 if this one is the lower, 0 if they are equal, +1 if this one is the higher. False is considered to be less than true.
      Throws:
        `java.lang.ClassCastException` - if the other value is not a BooleanValue (the parameter is declared as Object to satisfy the Comparable interface)

    - #### equals

          public boolean equals​(java.lang.Object other)

      Determine whether two boolean values are equal
      Specified by:
        `equals` in class `AtomicValue`
      Parameters:
        `other` - the value to be compared to this value
      Returns:
        true if the other value is a boolean value and is equal to this value
      Throws:
        `java.lang.ClassCastException` - if other value is not xs:boolean or derived therefrom

    - #### hashCode

          public int hashCode()

      Get a hash code for comparing two BooleanValues
      Overrides:
        `hashCode` in class `java.lang.Object`
      Returns:
        the hash code

    - #### toString

          public java.lang.String toString()

      Diagnostic display of this value as a string
      Overrides:
        `toString` in class `AtomicValue`
      Returns:
        a string representation of this value: "true()" or "false()"