Class AbstractArrayItem

    • Constructor Detail

      • AbstractArrayItem

        public AbstractArrayItem()
    • Method Detail

      • getOperandRoles

        public OperandRole[] getOperandRoles()
        Get the roles of the arguments, for the purposes of streaming
        Returns:
        an array of OperandRole objects, one for each argument
      • getAnnotations

        public AnnotationList getAnnotations()
        Get the function annotations (as defined in XQuery). Returns an empty list if there are no function annotations.
        Returns:
        the function annotations
      • getFunctionItemType

        public FunctionItemType getFunctionItemType()
        Get the item type of the function item
        Returns:
        the function item's type
      • getFunctionName

        public StructuredQName getFunctionName()
        Get the name of the function, or null if it is anonymous
        Returns:
        the function name, or null for an anonymous function (which this one is)
      • getDescription

        public java.lang.String getDescription()
        Get a description of this function for use in error messages. For named functions, the description is the function name (as a lexical QName). For others, it might be, for example, "inline function", or "partially-applied ends-with function".
        Returns:
        a description of the function for use in error messages
      • getArity

        public int getArity()
        Get the arity of the function
        Returns:
        the number of arguments in the function signature (in this case, 1 (one))
      • makeNewContext

        public XPathContext makeNewContext​(XPathContext callingContext,
                                           ContextOriginator originator)
        Prepare an XPathContext object for evaluating the function
        Parameters:
        callingContext - the XPathContext of the function calling expression
        originator - identifies the location of the caller for diagnostics
        Returns:
        a suitable context for evaluating the function (which may or may not be the same as the caller's context)
      • call

        public GroundedValue call​(XPathContext context,
                                  Sequence[] args)
                           throws XPathException
        Invoke the array in its role as a function
        Parameters:
        context - the XPath dynamic evaluation context
        args - the actual arguments to be supplied (a single integer)
        Returns:
        the result of invoking the function
        Throws:
        XPathException - if a dynamic error occurs within the function
      • deepEquals

        public boolean deepEquals​(Function other,
                                  XPathContext context,
                                  AtomicComparer comparer,
                                  int flags)
                           throws XPathException
        Test whether this array is deep-equal to another array, under the rules of the deep-equal function
        Parameters:
        other - the other function item
        context - the dynamic evaluation context
        comparer - the object to perform the comparison
        flags - options for how the comparison is performed
        Returns:
        true if the two array items are deep-equal; false if they are not deep equal or if the other item is not an array
        Throws:
        XPathException - if the comparison cannot be performed
      • effectiveBooleanValue

        public boolean effectiveBooleanValue()
                                      throws XPathException
        Get the effective boolean value of this sequence
        Returns:
        the effective boolean value
        Throws:
        XPathException - if the sequence has no effective boolean value (for example a sequence of two integers)
      • getUnicodeStringValue

        public UnicodeString getUnicodeStringValue()
        Get the value of the item as a string. For arrays, there is no string value, so an exception is thrown.
        Returns:
        the string value of the item
        Throws:
        java.lang.UnsupportedOperationException - if the item is an array (an unchecked exception is used here to avoid introducing exception handling to a large number of paths where it is not needed)
        Since:
        8.4
      • export

        public void export​(ExpressionPresenter out)
                    throws XPathException
        Output information about this function item to the diagnostic explain() output
        Parameters:
        out - the destination for the information
        Throws:
        XPathException - if things go wrong
      • isTrustedResultType

        public boolean isTrustedResultType()
        Description copied from interface: Function
        Ask if the function can be trusted to return a result of the correct type
        Returns:
        true if the implementation can be trusted
      • toString

        public java.lang.String toString()
        Output a string representation of the array, suitable for diagnostics
        Overrides:
        toString in class java.lang.Object
      • getMemberType

        public SequenceType getMemberType​(TypeHierarchy th)
        Get the lowest common item type of the members of the array
        Specified by:
        getMemberType in class ArrayItem
        Parameters:
        th - the type hierarchy
        Returns:
        the most specific type to which all the members belong.