use of com.vaticle.typedb.core.reasoner.resolution.framework.RequestState.Exploration in project grakn by graknlabs.
the class ConcludableResolver method nextAnswer.
private void nextAnswer(Request fromUpstream, CachingRequestState<?, ConceptMap> requestState, int iteration) {
Optional<Partial.Compound<?, ?>> upstreamAnswer = requestState.nextAnswer().map(Partial::asCompound);
if (upstreamAnswer.isPresent()) {
answerFound(upstreamAnswer.get(), fromUpstream, iteration);
} else {
Exploration exploration;
if (requestState.isExploration() && !requestState.answerCache().isComplete()) {
if ((exploration = requestState.asExploration()).downstreamManager().hasDownstream()) {
requestFromDownstream(exploration.downstreamManager().nextDownstream(), fromUpstream, iteration);
} else {
// TODO: The cache should not be set as complete during recursion
requestState.answerCache().setComplete();
failToUpstream(fromUpstream, iteration);
}
} else {
failToUpstream(fromUpstream, iteration);
}
}
}
Aggregations