LoopProtocolProducer( BuilderFactory<BuilderT> factory, InputT input, Predicate<InputT> predicate, FrescoLambda<InputT, BuilderT, InputT> function, BuildStep<InputT, BuilderT, ?> next) { this.factory = factory; this.predicate = predicate; this.function = function; this.next = next; isDone = false; doneWithOwn = false; currentProducer = null; currentResult = () -> input; updateToNextProducer(input); }
private void next() { while (!isDone && !currentProducer.hasNextProtocols()) { updateToNextProducer(out()); } }