Package it.unimi.dsi.io
Class OfflineIterable<T,U extends T>
- java.lang.Object
-
- it.unimi.dsi.io.OfflineIterable<T,U>
-
- All Implemented Interfaces:
Size64,SafelyCloseable,Closeable,AutoCloseable,Iterable<U>
public class OfflineIterable<T,U extends T> extends Object implements Iterable<U>, SafelyCloseable, Size64
An iterable that offers elements that were previously stored offline using specialized serialization methods. At construction, you provide a serializer that establishes how elements are written offline; after that, you can add elements one at a time or in a bulk way. At any moment, you can get anOfflineIteratoron this object that returns all the elements added so far. Note that the returned iterator caches the current number of elements, so each iterator will return just the elements added at the time of its creation.Warning: The store object provided at construction time is shared by all iterators.
Closing
Both
OfflineIterableandOfflineIteratorareSafelyCloseable(the latter will close its input stream whenhasNext()returns false), but for better resource management you should close them after usage.- Since:
- 0.9.2
- Author:
- Sebastiano Vigna
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classOfflineIterable.OfflineIterator<A,B extends A>An iterator returned by anOfflineIterable.static interfaceOfflineIterable.Serializer<A,B extends A>Determines a strategy to serialize and deserialize elements.
-
Field Summary
Fields Modifier and Type Field Description static longserialVersionUID
-
Constructor Summary
Constructors Constructor Description OfflineIterable(OfflineIterable.Serializer<? super T,U> serializer, U store)Creates an offline iterable with given serializer.
-
Method Summary
Modifier and Type Method Description voidadd(T x)Adds a new element at the end of this iterable.voidaddAll(Iterable<T> it)Adds all the elements of the given iterable at the end of this iterable.voidclear()voidclose()protected voidfinalize()OfflineIterable.OfflineIterator<T,U>iterator()intsize()Deprecated.Usesize64()instead.longsize64()Returns the number of elements added so far.-
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
-
-
-
Field Detail
-
serialVersionUID
public static final long serialVersionUID
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
OfflineIterable
public OfflineIterable(OfflineIterable.Serializer<? super T,U> serializer, U store) throws IOException
Creates an offline iterable with given serializer.- Parameters:
serializer- the serializer to be used.store- an object that is (re)used by the iterator(s) iterating on this iterable.- Throws:
IOException
-
-
Method Detail
-
add
public void add(T x) throws IOException
Adds a new element at the end of this iterable.- Parameters:
x- the element to be added.- Throws:
IOException
-
addAll
public void addAll(Iterable<T> it) throws IOException
Adds all the elements of the given iterable at the end of this iterable.- Parameters:
it- the iterable producing the elements to be added.- Throws:
IOException
-
iterator
public OfflineIterable.OfflineIterator<T,U> iterator()
-
clear
public void clear() throws IOException- Throws:
IOException
-
close
public void close()
- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable
-
finalize
protected void finalize() throws Throwable
-
size
@Deprecated public int size()
Deprecated.Usesize64()instead.Returns the number of elements added so far, unless it is too big to fit in an integer (in which case this method will throw an exception).
-
-