001 002/* 003 * Copyright 2015 DuraSpace, Inc. 004 * 005 * Licensed under the Apache License, Version 2.0 (the "License"); 006 * you may not use this file except in compliance with the License. 007 * You may obtain a copy of the License at 008 * 009 * http://www.apache.org/licenses/LICENSE-2.0 010 * 011 * Unless required by applicable law or agreed to in writing, software 012 * distributed under the License is distributed on an "AS IS" BASIS, 013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 014 * See the License for the specific language governing permissions and 015 * limitations under the License. 016 */ 017package org.fcrepo.kernel.modeshape.utils.iterators; 018 019import com.google.common.util.concurrent.ListenableFuture; 020import org.fcrepo.kernel.api.exception.MalformedRdfException; 021 022/** 023 * Implemented by something that can consume an {@link java.util.Iterator}. The 024 * assumption is that a reference to the appropriate iterator is managed as part 025 * of the state of any implementation. 026 * 027 * @author ajs6f 028 * @since Oct 24, 2013 029 * @param <E> E 030 * @param <T> T 031 */ 032public interface IteratorConsumer<E, T> { 033 034 /** 035 * Synchronous consumption. 036 * @throws MalformedRdfException if malformed rdf exception occurred 037 */ 038 void consume() throws MalformedRdfException; 039 040 /** 041 * Asynchronous consumption. 042 * 043 * @return ListenableFuture 044 */ 045 ListenableFuture<T> consumeAsync(); 046 047}