blob: 3ea034289110b2b3ee279db52d6a925ed493bcfc [file] [log] [blame]
// Copyright (c) 2019, the R8 project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
package com.android.tools.r8.utils;
import java.util.function.IntConsumer;
public abstract class ThrowingIntIterator<E extends Exception> {
public void forEachRemaining(IntConsumer fn) throws E {
while (hasNext()) {
fn.accept(nextInt());
}
}
public abstract boolean hasNext();
public abstract int nextInt() throws E;
public int nextIntComputeIfAbsent(ThrowingIntSupplier<E> supplier) throws E {
if (hasNext()) {
return nextInt();
}
return supplier.getAsInt();
}
}