| java.lang.Object | |
| ↳ | org.odata4j.producer.PropertyPathHelper |
Helps producers determine if a property is $selected and/or $expanded.
Note on recursive extensions: The idea here is that when one has an object graph that is a tree of like nodes (such as a class hierarchy), it should be possible to specify a $expand that is applied recursively.
Two new custom options are proposed:
expandR and selectR
ABNF:
expandRQueryOp = "expandR=" recursiveExpandClause *("," recursiveExpandClause)
recursiveExpandClause = entityNavProperty "/" expandDepth
expandDepth = integer
selectRQueryOp = "selectR=" recursiveSelectClause *("," recursiveSelectClause)
recursiveSelectClause = rSelectItem *("," recursiveSelectClause)
rSelectItem = selectedNavProperty "/" rPropItem
rPropItem = "*" / selectedProperty
expandDepth drives the number of traversal iterations. An expandDepth of 0 is unlimited. During query processing, the max expandDepth of all recursivExpandClauses is computed and drives processing.
example: expandR=SubTypes/0,Properties/1
This says that at each position in the object graph traversal during query we will expand the SubTypes navigation property. At the first level we will also expand the Properties navigation property
selectR=SubTypes/Namespace,SubTypes/Type
This says that whenever we expand the SubTypes navigation property we will only include Namespace and Type properties.
| Constants | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| String | OptionExpandR | ||||||||||
| String | OptionSelectR | ||||||||||
| Fields | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| currentNavPath | |||||||||||
| expandPaths | |||||||||||
| expandRPaths | |||||||||||
| selectPaths | |||||||||||
| selectRPaths | |||||||||||
| Public Constructors | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Public Methods | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
Determines if the given property is selected on the current navigation path.
| |||||||||||
| Protected Methods | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
determines if the given navigation property is expanded on the current navigation path
| |||||||||||
Returns true if the $select contains any limiting items on the current navPath.
| |||||||||||
|
[Expand]
Inherited Methods | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
From class
java.lang.Object
| |||||||||||
| select | |
|---|---|
| expand |
| select | |
|---|---|
| expand | |
| selectR | |
| expandR |
| select | |
|---|---|
| expand |
| select | |
|---|---|
| expand | |
| selectR | |
| expandR |
| navPropName |
|---|
Determines if the given property is selected on the current navigation path.
| propName | Name of a regular property or a navigation property |
|---|
| propName |
|---|
determines if the given navigation property is expanded on the current navigation path
| navPropName |
|---|
| navPropName |
|---|
Returns true if the $select contains any limiting items on the current navPath.