Package net.sf.saxon.functions

## Class BooleanFn

- java.lang.Object
- - net.sf.saxon.functions.AbstractFunction
  - - net.sf.saxon.functions.SystemFunction
    - - net.sf.saxon.functions.BooleanFn

- All Implemented Interfaces:
    `Callable`, `Function`, `GroundedValue`, `Item`, `Sequence`

      public class BooleanFn
      extends SystemFunction

  This class supports the XPath function boolean()

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `BooleanFn()` |

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `BooleanValue` | `call​(XPathContext c, Sequence[] arguments)` | Invoke the function
    `java.lang.String` | `getCompilerName()` | Get the (local) name of a class that can be used to generate bytecode for this system function
    `java.lang.String` | `getStreamerName()` | Get a name that identifies the class that can be used to evaluate this function in streaming mode, that is, supplying one item or event at a time as it is delivered by the parser.
    `Expression` | `makeFunctionCall​(Expression[] arguments)` | Make an expression that either calls this function, or that is equivalent to a call on this function
    `static Expression` | `rewriteEffectiveBooleanValue​(Expression exp, ExpressionVisitor visitor, ContextItemStaticInfo contextItemType)` | Optimize an expression whose effective boolean value is required.
    `void` | `supplyTypeInformation​(ExpressionVisitor visitor, ContextItemStaticInfo contextItemType, Expression[] arguments)` | Method called during static type checking.

    - ### Methods inherited from class net.sf.saxon.functions.SystemFunction

      `dependsOnContextItem, dynamicCall, equals, export, exportAdditionalArguments, exportAttributes, fixArguments, getArity, getCardinality, getContextNode, getDescription, getDetails, getErrorCodeForTypeErrors, getFunctionItemType, getFunctionName, getIntegerBounds, getNetCost, getOperandRoles, getRequiredType, getResultItemType, getResultItemType, getRetainedStaticContext, getSpecialProperties, getStaticBaseUriString, importAttributes, isTrustedResultType, makeCall, makeFunction, makeOptimizedFunctionCall, resultIfEmpty, setArity, setDetails, setRetainedStaticContext, toShortString, toString, typeCheckCaller`

    - ### Methods inherited from class net.sf.saxon.functions.AbstractFunction

      `atomize, deepEquals, effectiveBooleanValue, getAnnotations, getStringValue, getStringValueCS, isArray, isMap, makeNewContext, simplify, typeCheck`

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

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

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

      `getGenre`

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

      `asIterable, concatenate, containsNode, materialize`

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

      `getLength, head, isStreamed, itemAt, iterate, reduce, subsequence`

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

      `makeRepeatable`

- - ### Constructor Detail

    - #### BooleanFn

          public BooleanFn()

  - ### Method Detail

    - #### supplyTypeInformation

          public void supplyTypeInformation​(ExpressionVisitor visitor,
                                            ContextItemStaticInfo contextItemType,
                                            Expression[] arguments)
                                     throws XPathException

      Description copied from class: `SystemFunction`
      Method called during static type checking. This method may be implemented in subclasses so that functions can take advantage of knowledge of the types of the arguments that will be supplied.
      Overrides:
        `supplyTypeInformation` in class `SystemFunction`
      Parameters:
        `visitor` - an expression visitor, providing access to the static context and configuration
        `contextItemType` - information about whether the context item is set, and what its type is
        `arguments` - the expressions appearing as arguments in the function call
      Throws:
        `XPathException`

    - #### rewriteEffectiveBooleanValue

          public static Expression rewriteEffectiveBooleanValue​(Expression exp,
                                                                ExpressionVisitor visitor,
                                                                ContextItemStaticInfo contextItemType)
                                                         throws XPathException

      Optimize an expression whose effective boolean value is required. It is appropriate to apply this rewrite to any expression whose value will be obtained by calling the Expression.effectiveBooleanValue() method (and not otherwise)
      Parameters:
        `exp` - the expression whose EBV is to be evaluated
        `visitor` - an expression visitor
        `contextItemType` - the type of the context item for this expression
      Returns:
        an expression that returns the EBV of exp, or null if no optimization was possible
      Throws:
        `XPathException` - if static errors are found

    - #### call

          public BooleanValue call​(XPathContext c,
                                   Sequence[] arguments)
                            throws XPathException

      Description copied from interface: `Function`
      Invoke the function
      Parameters:
        `c` - the XPath dynamic evaluation context
        `arguments` - the actual arguments to be supplied
      Returns:
        the result of invoking the function
      Throws:
        `XPathException` - if a dynamic error occurs within the function

    - #### makeFunctionCall

          public Expression makeFunctionCall​(Expression[] arguments)

      Description copied from class: `SystemFunction`
      Make an expression that either calls this function, or that is equivalent to a call on this function
      Overrides:
        `makeFunctionCall` in class `SystemFunction`
      Parameters:
        `arguments` - the supplied arguments to the function call
      Returns:
        either a function call on this function, or an expression that delivers the same result

    - #### getCompilerName

          public java.lang.String getCompilerName()

      Description copied from class: `SystemFunction`
      Get the (local) name of a class that can be used to generate bytecode for this system function
      Overrides:
        `getCompilerName` in class `SystemFunction`
      Returns:
        the name of a bytecode generation class, or null if there is no bytecode support for this function

    - #### getStreamerName

          public java.lang.String getStreamerName()

      Description copied from class: `SystemFunction`
      Get a name that identifies the class that can be used to evaluate this function in streaming mode, that is, supplying one item or event at a time as it is delivered by the parser. Special streaming support is generally available in Saxon-EE for all system functions that take a sequence as their argument.
      Overrides:
        `getStreamerName` in class `SystemFunction`
      Returns:
        a name that identifies a class that supports streamed evaluation of this system function, or null if no such class is available. The mapping of names to classes is defined in the Saxon-EE class `StreamerMap`. In non-streaming Saxon editions (HE and PE) the method always returns null.