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
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 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
FieldsFields 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_EXCEPTIONFields inherited from class gnu.mapping.ProcedureN
applyToObject, noArgsFields inherited from class gnu.mapping.Procedure
applyMethodType, applyToConsumerDefault, applyToConsumerMethod, applyToObjectDefault, applyToObjectMethod, compilerKey, compilerXKey, inlineIfConstantSymbol, validateApplyKey, validateXApplyKeyFields inherited from class gnu.mapping.PropertySet
nameKey -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidapply(CallContext ctx) voidcompile(ApplyExp exp, Compilation comp, Target target) 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, resolveParameterTypesMethods inherited from class gnu.mapping.ProcedureN
applyToObjectMethods 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, toStringMethods inherited from class gnu.mapping.PropertySet
getName, getProperty, getSymbol, removeProperty, setName, setProperty, setProperty, setSymbol
-
Field Details
-
orderedMap
-
-
Constructor Details
-
OrderedMap
public OrderedMap()
-
-
Method Details
-
makeTuple$V
-
apply
- Throws:
Throwable
-
compile
- Specified by:
compilein interfaceInlineable
-
getReturnType
Description copied from class:ProcedureSemi-deprecated - instead should be set at Inline time. FIXME- Overrides:
getReturnTypein classProcedure
-