transform
Adds transform items (to {@link com.sap.cloud.mobile.kotlin.odata.DataQuery#transformValues DataQuery.transformValues}) for transforming the result of a query sent to an entity set.
- Example for transformations:
open fun transformationExample(): kotlin.Unit { val service = this.service; val employeeEntitySet = service.getEntitySet("Employees"); val employeeEntityType = employeeEntitySet.entityType; val employeeReportsToProperty = employeeEntityType.getProperty("ReportsTo"); val ordersProperty = employeeEntityType.getProperty("Orders"); val orderID = ordersProperty.itemEntityType.getProperty("OrderID"); val countryProperty = employeeEntityType.getProperty("Country"); val queryGroup = DataQuery().from(employeeEntitySet); val filterGroupTransform = FilterTransform.of(QueryOperator.equal(countryProperty, StringValue.of("Budapest"))); val groupTransform = GroupTransform.groupBy(employeeReportsToProperty) .aggregate(ordersProperty.path(orderID).countDistinct("TotalOrders")); queryGroup.transform(groupTransform); this.testApplyQueryResult(queryGroup, "TotalOrders"); val groupTransformForQuery = DataQuery().from(employeeEntitySet) .groupBy(employeeReportsToProperty) .aggregate(ordersProperty.path(orderID).countDistinct("TotalOrders")) .transform(filterGroupTransform); this.testApplyQueryResult(groupTransformForQuery, "TotalOrders"); val queryTopPercent = DataQuery().from(employeeEntitySet); val topPercentTransform = TopTransform.percent(50.toDouble(), employeeReportsToProperty); queryTopPercent.transform(topPercentTransform); this.testApplyQueryResult(queryTopPercent, null); val queryExpand = DataQuery().from(employeeEntitySet); val expandTransform = ExpandTransform.withFilter(ordersProperty, FilterTransform.of(QueryOperator.equal(employeeReportsToProperty, IntValue.of(1000)))); queryExpand.transform(expandTransform); this.testApplyQueryResult(queryExpand, null); val employee1Property = employeeEntityType.getProperty("Employee1"); val expandWithExpandTransform = ExpandTransform.withExpand(employee1Property, expandTransform); val queryExpand1 = DataQuery().from(employeeEntitySet); queryExpand1.transform(expandWithExpandTransform); this.testApplyQueryResult(queryExpand1, null); val queryOrderBy = DataQuery().from(employeeEntitySet); val orderTransform = OrderTransform.orderBy(SortItem.of(countryProperty, SortOrder.DESCENDING)); val skipTransform = SkipTransform.skip(5); val topTransform = TopTransform.top(10); queryOrderBy.transform(orderTransform.chain(skipTransform) .chain(topTransform)); this.testApplyQueryResult(queryOrderBy, null); val orderDetailsEntitySet = service.getEntitySet("Order_Details"); val ordersQuantityProperty = orderDetailsEntitySet.entityType.getProperty("Quantity"); val queryConcat = DataQuery().from(orderDetailsEntitySet); val concatTransform = ConcatTransform.create(IdentityTransform.create(), ordersQuantityProperty.sum("SumQuantity")); queryConcat.transform(concatTransform); this.testApplyQueryResult(queryConcat, "SumQuantity"); val var_employeeEntitySet = service.getEntitySet("Employees"); val var_employeeEntityType = var_employeeEntitySet.entityType; val employeeIDProperty = var_employeeEntityType.getProperty("EmployeeID"); val firstNameProperty = var_employeeEntityType.getProperty("FirstName"); val lastNameProperty = var_employeeEntityType.getProperty("LastName"); val var_ordersProperty = var_employeeEntityType.getProperty("Orders"); val ordersEntitySet = service.getEntitySet("Orders"); val orderEntityType = ordersEntitySet.entityType; val orderIDProperty = orderEntityType.getProperty("OrderID"); val queryJoin = DataQuery().from(var_employeeEntitySet); val joinTransform = JoinTransform.join(var_ordersProperty, "Order"); joinTransform.transform(GroupTransform.groupBy(employeeIDProperty, firstNameProperty, lastNameProperty) .aggregate(DataPath.ofDynamic("Order").path(orderIDProperty).countDistinct("TotalOrders"))); queryJoin.transform(joinTransform); this.testApplyQueryResult(queryJoin, "Order"); }
- Example for transformations:
open fun transformationExample(): kotlin.Unit { val queryGroup = DataQuery() .from(NorthwindServiceMetadata.EntitySets.employees); val groupTransform = GroupTransform.groupBy(Employee.reportsTo) .aggregate(Employee.orders.path(Order.orderID) .countDistinct("TotalOrders")); queryGroup.transform(groupTransform); this.testApplyQueryResult(queryGroup, "TotalOrders"); val filterGroupTransform = FilterTransform.of(QueryOperator.equal(Employee.country, StringValue.of("Budapest"))); val groupTransformForQuery = DataQuery() .from(NorthwindServiceMetadata.EntitySets.employees) .groupBy(Employee.reportsTo) .aggregate(Employee.orders.path(Order.orderID).countDistinct("TotalOrders")) .transform(filterGroupTransform); this.testApplyQueryResult(groupTransformForQuery, "TotalOrders"); val queryTopPercent = DataQuery() .from(NorthwindServiceMetadata.EntitySets.employees); val topPercentTransform = TopTransform.percent(50.toDouble(), Employee.reportsTo); queryTopPercent.transform(topPercentTransform); this.testApplyQueryResult(queryTopPercent, null); val queryExpand = DataQuery() .from(NorthwindServiceMetadata.EntitySets.employees); val expandTransform = ExpandTransform.withFilter(Employee.orders, FilterTransform.of(QueryOperator.equal(Employee.reportsTo, IntValue.of(1000)))); queryExpand.transform(expandTransform); this.testApplyQueryResult(queryExpand, null); val expandWithExpandTransform = ExpandTransform.withExpand(Employee.employee1, expandTransform); val queryExpand1 = DataQuery() .from(NorthwindServiceMetadata.EntitySets.employees); queryExpand1.transform(expandWithExpandTransform); this.testApplyQueryResult(queryExpand1, null); val queryOrderBy = DataQuery() .from(NorthwindServiceMetadata.EntitySets.employees); val orderTransform = OrderTransform.orderBy(SortItem.of(Customer.country, SortOrder.DESCENDING)); val skipTransform = SkipTransform.skip(5); val topTransform = TopTransform.top(10); queryOrderBy.transform(orderTransform.chain(skipTransform) .chain(topTransform)); this.testApplyQueryResult(queryOrderBy, null); val queryConcat = DataQuery() .from(NorthwindServiceMetadata.EntitySets.orderDetails); val concatTransform = ConcatTransform.create(IdentityTransform.create(), OrderDetail.quantity.sum("SumQuantity")); queryConcat.transform(concatTransform); this.testApplyQueryResult(queryConcat, "SumQuantity"); val queryJoin = DataQuery() .from(NorthwindServiceMetadata.EntitySets.employees); val joinTransform = JoinTransform.join(Employee.orders, "Order"); joinTransform.transform(GroupTransform.groupBy(Employee.employeeID, Employee.firstName, Employee.lastName) .aggregate(DataPath.ofDynamic("Order").path(Order.orderID).countDistinct("TotalOrders"))); queryJoin.transform(joinTransform); this.testApplyQueryResult(queryJoin, "Order"); }
Return
This query.
Parameters
items
The items to be added.