Class OfflineIterable<T,​U extends T>

  • 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
    • 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
      • size

        @Deprecated
        public int size()
        Deprecated.
        Use size64() 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).
        Specified by:
        size in interface Size64
        Returns:
        the number of elements added so far.
      • size64

        public long size64()
        Returns the number of elements added so far.
        Specified by:
        size64 in interface Size64
        Returns:
        the number of elements added so far.