WIP: chained queries for section monitors

This commit is contained in:
John Rommel Estropia
2017-07-10 08:23:59 +09:00
parent 535eb76adc
commit fcd4be9011
5 changed files with 54 additions and 8 deletions

View File

@@ -382,6 +382,16 @@ extension BaseDataTransaction: FetchableSource, QueryableSource {
return self.context.queryValue(from, selectClause, queryClauses)
}
// TODO: docs
public func queryValue<B: QueryChainableBuilderType>(_ clauseChain: B) -> B.ResultType? where B.ResultType: QueryableAttributeType {
CoreStore.assert(
self.isRunningInAllowedQueue(),
"Attempted to query from a \(cs_typeName(self)) outside its designated queue."
)
return self.context.queryValue(clauseChain.from, clauseChain.select, clauseChain.queryClauses)
}
/**
Queries a dictionary of attribute values as specified by the `QueryClause`s. Requires at least a `Select` clause, and optional `Where`, `OrderBy`, `GroupBy`, and `Tweak` clauses.
@@ -420,6 +430,16 @@ extension BaseDataTransaction: FetchableSource, QueryableSource {
return self.context.queryAttributes(from, selectClause, queryClauses)
}
// TODO: docs
public func queryAttributes<B: QueryChainableBuilderType>(_ clauseChain: B) -> [[String: Any]]? where B.ResultType == NSDictionary {
CoreStore.assert(
self.isRunningInAllowedQueue(),
"Attempted to query from a \(cs_typeName(self)) outside its designated queue."
)
return self.context.queryAttributes(clauseChain.from, clauseChain.select, clauseChain.queryClauses)
}
// MARK: FetchableSource, QueryableSource