QueryOperator
open class QueryOperator : ObjectBase
Represents a OData query operator.
Query operators are typically used within DataQuery.filter.
QueryOperatorCall can be constructed using static calls on QueryOperator or, more conveniently, by chained calls on QueryValue.
Example using proxy classes (with QueryOperator static calls)
open func queryOperatorExample() throws -> Void {
let service = self.service
let query = DataQuery()
.filter(QueryOperator.greaterEqual(QueryOperator.multiply(OrderDetail.quantity,
OrderDetail.unitPrice),
DecimalValue.of(DecimalFunction.fromInt(1000))))
let details = try service.fetchOrderDetails(matching: query)
self.showDetails(details)
}
Example using proxy classes (with QueryValue chained calls)
open func queryValueOperatorExample() throws -> Void {
let service = self.service
let query = DataQuery()
.filter(OrderDetail.quantity.multiply(OrderDetail.unitPrice)
.greaterEqual(BigDecimal(1000)))
// Alternate syntax using overloaded operators:
// let query = DataQuery().filter(OrderDetail.quantity * OrderDetail.unitPrice >= 1000)
let details = try service.fetchOrderDetails(matching: query)
self.showDetails(details)
}
-
A map of predefined query operators.
Declaration
Swift
public static let operatorMap: QueryOperatorMap -
Default initializer.
Declaration
Swift
override public init() -
Declaration
Swift
open class func add(_ left: DataValue, _ right: DataValue) -> QueryValueParameters
leftLeft operand.
rightRight operand.
Return Value
a deferred call of the OData ‘add’ arithmetic operator.
-
Example using proxy classes
open func allOperatorExample() throws -> Void { let service = self.service let p = DataPath.lambda("p") let query = DataQuery() .filter(Category.products.all(p, QueryOperator.greaterThan(p.path(Product.unitPrice), DecimalValue.of(BigDecimal(1))))) let categories = try service.fetchCategories(matching: query) assert(categories.count != 0) }Example using dynamic API
open func allOperatorExample() throws -> Void { let service = self.service let categoriesEntitySet = service.entitySet(withName: "Categories") let categoryEntityType = categoriesEntitySet.entityType let productsProperty = categoryEntityType.property(withName: "Products") let productsEntitySet = service.entitySet(withName: "Products") let productEntityType = productsEntitySet.entityType let unitPriceProperty = productEntityType.property(withName: "UnitPrice") let p = DataPath.lambda("p") let query = DataQuery().from(categoriesEntitySet) .filter(productsProperty.all(p, QueryOperator.greaterThan(p.path(unitPriceProperty), DecimalValue.of(BigDecimal(1))))) let categories = try service.executeQuery(query).entityList() assert(categories.length != 0) }Declaration
Swift
open class func all(_ value: DataValue, lambda: DataPath, match: QueryFilter) -> QueryFilterParameters
valueCollection value.
lambdaLambda variable.
matchQuery filter.
Return Value
a deferred call of the OData ‘all’ lambda operator.
-
Declaration
Swift
open class func and(_ left: DataValue, _ right: DataValue) -> QueryFilterParameters
leftLeft operand.
rightRight operand.
Return Value
a deferred call of the OData ‘and’ logical operator.
-
Example using proxy classes
open func anyOperatorExample() throws -> Void { let service = self.service let p = DataPath.lambda("p") let query = DataQuery() .filter(Category.products.any(p, QueryOperator.greaterThan(p.path(Product.unitPrice), DecimalValue.of(BigDecimal(20))))) let categories = try service.fetchCategories(matching: query) assert(categories.count != 0) }Example using dynamic API
open func anyOperatorExample() throws -> Void { let service = self.service let categoriesEntitySet = service.entitySet(withName: "Categories") let categoryEntityType = categoriesEntitySet.entityType let productsProperty = categoryEntityType.property(withName: "Products") let productsEntitySet = service.entitySet(withName: "Products") let productEntityType = productsEntitySet.entityType let unitPriceProperty = productEntityType.property(withName: "UnitPrice") let p = DataPath.lambda("p") let query = DataQuery().from(categoriesEntitySet) .filter(productsProperty.any(p, QueryOperator.greaterThan(p.path(unitPriceProperty), DecimalValue.of(BigDecimal(20))))) let categories = try service.executeQuery(query).entityList() assert(categories.length != 0) }Declaration
Swift
open class func any(_ value: DataValue, lambda: DataPath, match: QueryFilter) -> QueryFilterParameters
valueCollection value.
lambdaLambda variable.
matchQuery filter.
Return Value
a deferred call of the OData ‘any’ lambda operator.
-
Operator arity (number of arguments).
Declaration
Swift
@inline(__always) public final var arity: Int { get } -
Operator code.
See also
QueryOperatorCode.Declaration
Swift
@inline(__always) public final var code: Int { get } -
Declaration
Swift
open class func divide(_ left: DataValue, _ right: DataValue) -> QueryValueParameters
leftLeft operand.
rightRight operand.
Return Value
a deferred call of the OData ‘div’ arithmetic operator.
-
Declaration
Swift
open class func divideBy(_ left: DataValue, _ right: DataValue) -> QueryValueParameters
leftLeft operand.
rightRight operand.
Return Value
a deferred call of the OData ‘divBy’ arithmetic operator.
-
Declaration
Swift
open class func equal(_ left: DataValue?, _ right: DataValue?) -> QueryFilterParameters
leftLeft operand.
rightRight operand.
Return Value
a deferred call of the OData ‘eq’ logical operator.
-
Lookup a query operator by code.
See also
constants.Declaration
Swift
open class func forCode(_ code: Int) -> QueryOperatorParameters
codeOperator code.
Return Value
Query operator.
-
Lookup a query operator by code.
Declaration
Swift
open class func forName(_ name: String) throws -> QueryOperatorParameters
nameOperator name.
Return Value
Query operator.
-
Declaration
Swift
open class func greaterEqual(_ left: DataValue, _ right: DataValue) -> QueryFilterParameters
leftLeft operand.
rightRight operand.
Return Value
a deferred call of the OData ‘ge’ logical operator.
-
Declaration
Swift
open class func greaterThan(_ left: DataValue, _ right: DataValue) -> QueryFilterParameters
leftLeft operand.
rightRight operand.
Return Value
a deferred call of the OData ‘gt’ logical operator.
-
Declaration
Swift
open class func hasFlags(_ value: DataValue, _ flags: EnumValue) -> QueryFilterParameters
valueEnum value to be tested to see if
flagis set.flagsFlag(s) to test for.
Return Value
a deferred call of the OData ‘has’ operator.
-
Declaration
Swift
open class func inList(_ value: DataValue, _ list: DataValue) -> QueryFilterParameters
valueItem value to check for membership in list.
listList to check membership within (e.g. a
StringList).Return Value
a deferred call of the OData ‘in’ operator.
-
See also
SymbolicName.Declaration
Swift
open class func isMember(_ value: DataValue, _ name: String) -> QueryFilterParameters
valuenameName of member to match.
Return Value
a deferred call of the custom ‘is’ operator.
-
Declaration
Swift
open class func isValue(_ value: DataValue, _ match: DataValue) -> QueryFilterParameters
valueData value to be tested.
matchValue to be matched, using string-based matching.
Return Value
a deferred call of the custom ‘is’ operator.
-
Declaration
Swift
open class func lessEqual(_ left: DataValue, _ right: DataValue) -> QueryFilterParameters
leftLeft operand.
rightRight operand.
Return Value
a deferred call of the OData ‘le’ logical operator.
-
Declaration
Swift
open class func lessThan(_ left: DataValue, _ right: DataValue) -> QueryFilterParameters
leftLeft operand.
rightRight operand.
Return Value
a deferred call of the OData ‘lt’ logical operator.
-
Operator method, e.g. target language method.
Declaration
Swift
@inline(__always) public final var method: String { get } -
Declaration
Swift
open class func modulo(_ left: DataValue, _ right: DataValue) -> QueryValueParameters
leftLeft operand.
rightRight operand.
Return Value
a deferred call of the OData ‘mod’ arithmetic operator.
-
Declaration
Swift
open class func multiply(_ left: DataValue, _ right: DataValue) -> QueryValueParameters
leftLeft operand.
rightRight operand.
Return Value
a deferred call of the OData ‘mul’ arithmetic operator.
-
Operator name, e.g. OData name.
Declaration
Swift
@inline(__always) public final var name: String { get } -
Declaration
Swift
open class func negate(_ value: DataValue) -> QueryValueParameters
valueNumeric value.
Return Value
a deferred call of the OData ‘-’ arithmetic operator.
-
Declaration
Swift
open class func not(_ value: DataValue) -> QueryFilterParameters
valueLogical value.
Return Value
a deferred call of the OData ‘not’ logical operator.
-
Declaration
Swift
open class func notEqual(_ left: DataValue?, _ right: DataValue?) -> QueryFilterParameters
leftLeft operand.
rightRight operand.
Return Value
a deferred call of the OData ‘ne’ logical operator.
-
Declaration
Swift
open class func or(_ left: DataValue, _ right: DataValue) -> QueryFilterParameters
leftLeft operand.
rightRight operand.
Return Value
a deferred call of the OData ‘or’ logical operator.
-
Operator priority.
Declaration
Swift
@inline(__always) public final var priority: Int { get } -
Declaration
Swift
open class func subtract(_ left: DataValue, _ right: DataValue) -> QueryValueParameters
leftLeft operand.
rightRight operand.
Return Value
a deferred call of the OData ‘sub’ arithmetic operator.
-
Declaration
Swift
override open func toString() -> StringReturn Value
A string representation of this object.