public class OrderedMap extends MethodProc implements Inlineable
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 bodyis 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.
Modifier and Type | Field and Description |
---|---|
static OrderedMap |
orderedMap |
applyToConsumerDefaultMP, argTypes, NO_MATCH, NO_MATCH_AMBIGUOUS, NO_MATCH_BAD_TYPE, NO_MATCH_GUARD_FALSE, NO_MATCH_TOO_FEW_ARGS, NO_MATCH_TOO_MANY_ARGS, NO_MATCH_UNUSED_KEYWORD, THROW_ON_EXCEPTION
applyToObject, noArgs
applyMethodType, applyToConsumerDefault, applyToConsumerMethod, applyToObjectDefault, applyToObjectMethod, compilerKey, compilerXKey, inlineIfConstantSymbol, validateApplyKey, validateXApplyKey
nameKey
Constructor and Description |
---|
OrderedMap() |
Modifier and Type | Method and Description |
---|---|
void |
apply(CallContext ctx) |
void |
compile(ApplyExp exp,
Compilation comp,
Target target) |
Type |
getReturnType(Expression[] args)
Semi-deprecated - instead should be set at Inline time.
|
static java.lang.Object[] |
makeTuple$V(java.lang.Object[] values) |
applyToConsumerDefaultMP, getParameterType, isApplicable, matchFailAsException, mostSpecific, numParameters, overrideEquivalent, resolveParameterTypes
applyToObject
apply0, apply1, apply2, apply3, apply4, applyL, applyN, applyToConsumerDefault, applyToObjectDefault, checkArgCount, checkBadCode, getApplyMethod, getApplyToConsumerMethod, getApplyToObjectMethod, getSetter, getSourceLocation, isSideEffectFree, lookupApplyHandle, maxArgs, maxArgs, minArgs, minArgs, numArgs, set0, set1, setN, setSetter, setSourceLocation, toString
getName, getProperty, getSymbol, removeProperty, setName, setProperty, setProperty, setSymbol
public static final OrderedMap orderedMap
public static java.lang.Object[] makeTuple$V(java.lang.Object[] values)
public void apply(CallContext ctx) throws java.lang.Throwable
java.lang.Throwable
public void compile(ApplyExp exp, Compilation comp, Target target)
compile
in interface Inlineable
public Type getReturnType(Expression[] args)
Procedure
getReturnType
in class Procedure