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

@@ -43,7 +43,7 @@ public protocol QueryChainableBuilderType {
var from: From<ObjectType> { get set }
var select: Select<ResultType> { get set }
var groupBy: GroupBy { get set }
var fetchClauses: [FetchClause] { get set }
var queryClauses: [QueryClause] { get set }
}
public protocol SectionMonitorBuilderType {
@@ -81,7 +81,7 @@ public struct QueryChainBuilder<D: DynamicObject, R: SelectResultType>: QueryCha
public var from: From<D>
public var select: Select<R>
public var groupBy: GroupBy
public var fetchClauses: [FetchClause] = []
public var queryClauses: [QueryClause] = []
}
@@ -112,7 +112,7 @@ public extension From {
from: self,
select: .init(selectTerms),
groupBy: .init(),
fetchClauses: []
queryClauses: []
)
}
@@ -226,7 +226,7 @@ public extension QueryChainBuilder {
from: self.from,
select: self.select,
groupBy: .init(keyPaths),
fetchClauses: self.fetchClauses
queryClauses: self.queryClauses
)
}
@@ -255,7 +255,7 @@ public extension QueryChainBuilder {
return self.queryChain(appending: Tweak(fetchRequest))
}
public func appending(_ clause: FetchClause) -> QueryChainBuilder<D, R> {
public func appending(_ clause: QueryClause) -> QueryChainBuilder<D, R> {
return self.queryChain(appending: clause)
}
@@ -263,13 +263,13 @@ public extension QueryChainBuilder {
// MARK: Private
private func queryChain(appending clause: FetchClause) -> QueryChainBuilder<D, R> {
private func queryChain(appending clause: QueryClause) -> QueryChainBuilder<D, R> {
return .init(
from: self.from,
select: self.select,
groupBy: self.groupBy,
fetchClauses: self.fetchClauses + [clause]
queryClauses: self.queryClauses + [clause]
)
}
}