Class Lists.DelayedValue

  • All Implemented Interfaces:
    Term
    Enclosing class:
    Lists

    public static class Lists.DelayedValue
    extends Term.NonTerminal
    Basically similar to a Value, but with some non-pure function (that need to be evaluated at execution time) in it. Note: this would also work for a list with bind markers, but we don't support that because 1) it's not excessively useful and 2) we wouldn't have a good column name to return in the ColumnSpecification for those markers (not a blocker per-se but we don't bother due to 1)).
    • Constructor Detail

      • DelayedValue

        public DelayedValue​(java.util.List<Term> elements)
    • Method Detail

      • containsBindMarker

        public boolean containsBindMarker()
        Description copied from interface: Term
        Whether or not that term contains at least one bind marker. Note that this is slightly different from being or not a NonTerminal, because calls to non pure functions will be NonTerminal (see #5616) even if they don't have bind markers.
      • collectMarkerSpecification

        public void collectMarkerSpecification​(VariableSpecifications boundNames)
        Description copied from interface: Term
        Collects the column specification for the bind variables in this Term. This is obviously a no-op if the term is Terminal.
        Parameters:
        boundNames - the variables specification where to collect the bind variables of this term in.
      • bind

        public Term.Terminal bind​(QueryOptions options)
                           throws InvalidRequestException
        Description copied from interface: Term
        Bind the values in this term to the values contained in values. This is obviously a no-op if the term is Terminal.
        Parameters:
        options - the values to bind markers to.
        Returns:
        the result of binding all the variables of this NonTerminal (or 'this' if the term is terminal).
        Throws:
        InvalidRequestException
      • addFunctionsTo

        public void addFunctionsTo​(java.util.List<Function> functions)