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 an
OfflineIterator
on 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 OfflineIterable
and OfflineIterator
are SafelyCloseable
(the latter will
close its input stream when hasNext()
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 class
OfflineIterable.OfflineIterator<A,B extends A>
An iterator returned by anOfflineIterable
.static interface
OfflineIterable.Serializer<A,B extends A>
Determines a strategy to serialize and deserialize elements. -
Field Summary
Fields Modifier and Type Field Description static long
serialVersionUID
-
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 void
add(T x)
Adds a new element at the end of this iterable.void
addAll(Iterable<T> it)
Adds all the elements of the given iterable at the end of this iterable.void
clear()
void
close()
protected void
finalize()
OfflineIterable.OfflineIterator<T,U>
iterator()
int
size()
Deprecated.Usesize64()
instead.long
size64()
Returns the number of elements added so far.
-
Field Details
-
serialVersionUID
public static final long serialVersionUID- See Also:
- Constant Field Values
-
-
Constructor Details
-
OfflineIterable
public OfflineIterable(OfflineIterable.Serializer<? super T,U> serializer, U store) throws IOExceptionCreates 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 Details
-
add
Adds a new element at the end of this iterable.- Parameters:
x
- the element to be added.- Throws:
IOException
-
addAll
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
-
clear
- Throws:
IOException
-
close
public void close()- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
-
finalize
-
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). -
size64
public long size64()Returns the number of elements added so far.
-