Implements the function fn:remove()
.
More...
#include <qsequencefns_p.h>
|
typedef QExplicitlySharedDataPointer< FunctionCall > | Ptr |
|
enum | CardinalityComputation { ProductOfCardinality,
UnionOfCardinality
} |
|
typedef QExplicitlySharedDataPointer< const Expression > | ConstPtr |
| A smart pointer wrapping const Expression instances. More...
|
|
enum | ID {
IDBooleanValue = 1,
IDCountFN,
IDEmptyFN,
IDExistsFN,
IDExpressionSequence,
IDGeneralComparison,
IDIfThenClause,
IDIgnorableExpression,
IDIntegerValue,
IDPositionFN,
IDStringValue,
IDValueComparison,
IDRangeVariableReference,
IDContextItem,
IDUserFunctionCallsite,
IDExpressionVariableReference,
IDAttributeConstructor,
IDUpperCaseFN,
IDLowerCaseFN,
IDFirstItemPredicate,
IDEmptySequence,
IDReturnOrderBy,
IDLetClause,
IDForClause,
IDPath,
IDNamespaceConstructor,
IDArgumentReference,
IDGenericPredicate,
IDAxisStep,
IDFloat,
IDCombineNodes,
IDUnresolvedVariableReference,
IDCardinalityVerifier
} |
|
typedef QList< Expression::Ptr > | List |
|
typedef QFlags< Property > | Properties |
|
enum | Property {
UseContextItem = 1,
DisableElimination = 1 << 1,
IsEvaluated = 1 << 2,
DisableTypingDeduction = 1 << 3,
EmptynessFollowsChild = 1 << 4,
RewriteToEmptyOnEmpty = 1 << 5,
RequiresFocus = 1 << 6,
AffectsOrderOnly = 1 << 7,
RequiresContextItem = (1 << 8) | RequiresFocus,
CreatesFocusForLast = 1 << 9,
LastOperandIsCollation = 1 << 10,
DependsOnLocalVariable = (1 << 11) | DisableElimination,
EvaluationCacheRedundant = (1 << 12),
IsNodeConstructor = 1 << 13,
RequiresCurrentItem = 1 << 14
} |
|
typedef QExplicitlySharedDataPointer< Expression > | Ptr |
| A smart pointer wrapping mutable Expression instances. More...
|
|
typedef ::QAbstractXmlForwardIterator< Expression::Ptr > | QAbstractXmlForwardIterator |
|
typedef QVector< Expression::Ptr > | Vector |
|
static void | rewrite (Expression::Ptr &old, const Expression::Ptr &New, const StaticContext::Ptr &context) |
|
QAtomicInt | ref |
|
template<CardinalityComputation suppliedCard> |
SequenceType::Ptr | operandsUnionType () const |
|
void | typeCheckOperands (const StaticContext::Ptr &context) |
|
| CppCastingHelper () |
|
Expression::List | m_operands |
|
Implements the function fn:remove()
.
- Author
- Frans Englich frans.nosp@m..eng.nosp@m.lich@.nosp@m.noki.nosp@m.a.com
Definition at line 254 of file qsequencefns_p.h.
◆ evaluateSequence()
Evaluate this Expression by iterating over it. This is a central function for evaluating expressions.
Expressions must always always return a valid QAbstractXmlForwardIterator and may never return 0. If an empty result is of interest to be returned, the EmptyIterator should be returned.
The default implementation returns a SingletonIterator over the item returned from evaluateSingleton().
- Note
- This function may raise an exception when calling, not only when QAbstractXmlForwardIterator::next() is called on the return value. This is because in some cases evaluateSingleton() is called directly.
Reimplemented from QPatternist::Expression.
Definition at line 162 of file qsequencefns.cpp.
Expression::List m_operands
#define it(className, varName)
The QExplicitlySharedDataPointer class represents a pointer to an explicitly shared object...
QExplicitlySharedDataPointer< QAbstractXmlForwardIterator< Item > > Ptr
A smart pointer wrapping an instance of a QAbstractXmlForwardIterator subclass.
T & first()
Returns a reference to the first item in the list.
Base class for all numeric values.
T & last()
Returns a reference to the last item in the list.
Removes one items at a specified position from an input QAbstractXmlForwardIterator.
virtual Item evaluateSingleton(const DynamicContext::Ptr &context) const
virtual Item::Iterator::Ptr evaluateSequence(const DynamicContext::Ptr &context) const
◆ evaluateSingleton()
Reimplemented from QPatternist::Expression.
Definition at line 173 of file qsequencefns.cpp.
Expression::List m_operands
T & first()
Returns a reference to the first item in the list.
Represents an item in the XPath 2.0 Data Model.
Base class for all numeric values.
T & last()
Returns a reference to the last item in the list.
virtual Item evaluateSingleton(const DynamicContext::Ptr &context) const
◆ staticType()
Implements the static enferences rules, "Since one item may be removed
from the sequence, the resulting type is made optional:"
statEnv |- (FN-URI,"remove")(Type, Type1) : prime(Type) * quantifier(Type)?
However, because Patternist's type system is more fine grained than Formal Semantics, the sequence isn't made optional. Instead its minimum length is reduced with one.
- See also
- XQuery 1.0 and XPath 2.0 Formal Semantics, 7.2.11 The fn:remove function
Reimplemented from QPatternist::FunctionCall.
Definition at line 182 of file qsequencefns.cpp.
188 return makeGenericSequenceType(opType->itemType(),
c);
191 return makeGenericSequenceType(opType->itemType(),
Expression::List m_operands
T & first()
Returns a reference to the first item in the list.
virtual SequenceType::Ptr staticType() const =0
Represents a cardinality, a possible , often represented by occurrence indicators.
static Cardinality fromRange(const Count minimum, const Count maximum)
The documentation for this class was generated from the following files: