Package gnu.xquery.util
Class OrderedMap
- java.lang.Object
-
- gnu.mapping.PropertySet
-
- gnu.mapping.Procedure
-
- gnu.mapping.ProcedureN
-
- gnu.mapping.MethodProc
-
- gnu.xquery.util.OrderedMap
-
- All Implemented Interfaces:
Inlineable
,Named
public class OrderedMap extends MethodProc implements Inlineable
A procedure used to represent a FLWOR expression with anorder by
clause. (ValuesMap
is used for FLWOR expression that don't have anorder by
clause.) As returned by the parser:for $x1 in exp1, $x2 in exp2 where cond order by comparator1 ... return body
is represented asordered-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
Fields Modifier and Type Field Description static OrderedMap
orderedMap
-
Fields inherited from class gnu.mapping.MethodProc
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
-
Fields inherited from class gnu.mapping.ProcedureN
applyToObject, noArgs
-
Fields inherited from class gnu.mapping.Procedure
applyMethodType, applyToConsumerDefault, applyToConsumerMethod, applyToObjectDefault, applyToObjectMethod, compilerKey, compilerXKey, inlineIfConstantSymbol, validateApplyKey, validateXApplyKey
-
Fields inherited from class gnu.mapping.PropertySet
nameKey
-
-
Constructor Summary
Constructors Constructor Description OrderedMap()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method 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 Object[]
makeTuple$V(Object[] values)
-
Methods inherited from class gnu.mapping.MethodProc
applyToConsumerDefaultMP, getParameterType, isApplicable, matchFailAsException, mostSpecific, numParameters, overrideEquivalent, resolveParameterTypes
-
Methods inherited from class gnu.mapping.ProcedureN
applyToObject
-
Methods inherited from class gnu.mapping.Procedure
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
-
Methods inherited from class gnu.mapping.PropertySet
getName, getProperty, getSymbol, removeProperty, setName, setProperty, setProperty, setSymbol
-
-
-
-
Field Detail
-
orderedMap
public static final OrderedMap orderedMap
-
-
Method Detail
-
apply
public void apply(CallContext ctx) throws Throwable
- Throws:
Throwable
-
compile
public void compile(ApplyExp exp, Compilation comp, Target target)
- Specified by:
compile
in interfaceInlineable
-
getReturnType
public Type getReturnType(Expression[] args)
Description copied from class:Procedure
Semi-deprecated - instead should be set at Inline time. FIXME- Overrides:
getReturnType
in classProcedure
-
-