1 /* 2 * Licensed to the Apache Software Foundation (ASF) under one 3 * or more contributor license agreements. See the NOTICE file 4 * distributed with this work for additional information 5 * regarding copyright ownership. The ASF licenses this file 6 * to you under the Apache License, Version 2.0 (the 7 * "License"); you may not use this file except in compliance 8 * with the License. You may obtain a copy of the License at 9 * 10 * http://www.apache.org/licenses/LICENSE-2.0 11 * 12 * Unless required by applicable law or agreed to in writing, software 13 * distributed under the License is distributed on an "AS IS" BASIS, 14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 * See the License for the specific language governing permissions and 16 * limitations under the License. 17 */ 18 19 package org.apache.giraph.io.iterables; 20 21 import java.util.Iterator; 22 23 /** 24 * Wraps {@link Iterator} into object which provides iteration like in 25 * {@link org.apache.giraph.io.VertexReader} or 26 * {@link org.apache.giraph.io.EdgeReader} 27 * 28 * @param <T> 29 */ 30 public class IteratorToReaderWrapper<T> { 31 /** Wrapped iterator */ 32 private Iterator<T> iterator; 33 /** Current object */ 34 private T currentObject = null; 35 36 /** 37 * Constructor 38 * 39 * @param iterator Iterator to wrap 40 */ 41 public IteratorToReaderWrapper(Iterator<T> iterator) { 42 this.iterator = iterator; 43 } 44 45 /** 46 * Read next object 47 * 48 * @return False iff there are no more objects 49 */ 50 public boolean nextObject() { 51 boolean hasNext = iterator.hasNext(); 52 if (hasNext) { 53 currentObject = iterator.next(); 54 } else { 55 currentObject = null; 56 } 57 return hasNext; 58 } 59 60 /** 61 * Get the current object 62 * 63 * @return Current object 64 */ 65 public T getCurrentObject() { 66 return currentObject; 67 } 68 }