| Prev Class | Next Class | Frames | No Frames |
| Summary: Nested | Field | Method | Constr | Detail: Nested | Field | Method | Constr |
java.lang.Objectgnu.mapping.Proceduregnu.mapping.ProcedureNgnu.mapping.MethodProcgnu.xquery.util.OrderedMaporder 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.
Field Summary | |
static OrderedMap | |
Fields inherited from class gnu.mapping.MethodProc | |
NO_MATCH, NO_MATCH_AMBIGUOUS, NO_MATCH_BAD_TYPE, NO_MATCH_TOO_FEW_ARGS, NO_MATCH_TOO_MANY_ARGS, argTypes | |
Fields inherited from class gnu.mapping.ProcedureN | |
noArgs | |
Method Summary | |
void |
|
void |
|
Type |
|
Expression | |
static Object[] |
|
Methods inherited from class gnu.mapping.MethodProc | |
applyN, getParameterType, isApplicable, matchFailAsException, mostSpecific, mostSpecific, numParameters, resolveParameterTypes | |
Methods inherited from class gnu.mapping.Procedure | |
apply, apply, apply0, apply1, apply2, apply3, apply4, applyN, check0, check1, check2, check3, check4, checkArgCount, checkN, getName, getProperty, getSetter, getSymbol, match0, match1, match2, match3, match4, matchN, maxArgs, minArgs, name, numArgs, removeProperty, set0, set1, setN, setName, setProperty, setProperty, setSetter, setSymbol, toString | |
public void apply(CallContext ctx) throws Throwable
Call this Procedure using the explicit-CallContext-convention. The input arguments are (by default) in stack.args; the result is written to ctx.consumer.
public void compile(ApplyExp exp, Compilation comp, Target target)
- Specified by:
- compile in interface Inlineable
public Type getReturnType(Expression[] args)
- Specified by:
- getReturnType in interface Inlineable
public Expression inline(ApplyExp exp, ExpWalker walker)
Inline an application of this Procedure and return result. Can return original expression.
public static Object[] makeTuple$V(Object[] values)