Class OrderedMap

  • All Implemented Interfaces:
    Inlineable, Named

    public class OrderedMap
    extends MethodProc
    implements Inlineable
    A procedure used to represent a FLWOR expression with an order by clause. (ValuesMap is used for FLWOR expression that don't have an order by clause.) As returned by the parser:
     for $x1 in exp1, $x2 in exp2 where cond order by comparator1 ... return body
     
    is represented as
     ordered-map(tuple-sequence, body-function,
                 comparator-function1, flags1, collation1, ...)
     
    Here tuple-sequence is an expression that returns a sequence of tuples, which are currently implemnted as Java Object[] arrays. After inlining we get:
     ordered-map(tuple-sequence.
       OrderedTuples.make$V(body-function,
         new Object[]{comparator-function1, flags1, collation1, ...}))
     
    A future optimization would be to create an instance of a new sub-class of OrderedTuples. Then the body-function and comparator-functions could be compiled as methods to that class. That wins especially if it saves us having to create extra frame classes.
    • Field Detail

      • orderedMap

        public static final OrderedMap orderedMap
    • Constructor Detail

      • OrderedMap

        public OrderedMap()
    • Method Detail

      • makeTuple$V

        public static java.lang.Object[] makeTuple$V​(java.lang.Object[] values)
      • apply

        public void apply​(CallContext ctx)
                   throws java.lang.Throwable
        Throws:
        java.lang.Throwable