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_EXCEPTIONapplyToObject, noArgsapplyMethodType, applyToConsumerDefault, applyToConsumerMethod, applyToObjectDefault, applyToObjectMethod, compilerKey, compilerXKey, inlineIfConstantSymbol, validateApplyKey, validateXApplyKeynameKey| 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, resolveParameterTypesapplyToObjectapply0, 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, toStringgetName, getProperty, getSymbol, removeProperty, setName, setProperty, setProperty, setSymbolpublic 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.Throwablepublic void compile(ApplyExp exp, Compilation comp, Target target)
compile in interface Inlineablepublic Type getReturnType(Expression[] args)
ProceduregetReturnType in class Procedure