Interface CollectionFactory

  • All Superinterfaces:
    AutoCloseable
    All Known Implementing Classes:
    DefaultCollectionFactory

    @InternalUseOnly
    public interface CollectionFactory
    extends AutoCloseable
    A Factory that may generate optimised and/or disk based collections Factories like this should not be cached but created a new everytime as the closing is important if they are disk based.
    • Method Detail

      • close

        void close()
            throws org.eclipse.rdf4j.common.exception.RDF4JException
        Specified by:
        close in interface AutoCloseable
        Throws:
        org.eclipse.rdf4j.common.exception.RDF4JException
      • createList

        <T> List<T> createList()
        Type Parameters:
        T - of the list
        Returns:
        a list that may be optimised and/or disk based
      • createValueList

        List<org.eclipse.rdf4j.model.Value> createValueList()
        Returns:
        a list that may be optimised and/or disk based for Values only
      • createSet

        <T> Set<T> createSet()
        Type Parameters:
        T - of the set
        Returns:
        a set that may be optimised and/or disk based
      • createSetOfBindingSets

        Set<BindingSet> createSetOfBindingSets()
        Returns:
        a set that may be optimised and/or disk based
      • createValueSet

        Set<org.eclipse.rdf4j.model.Value> createValueSet()
        Returns:
        a set that may be optimised and/or disk based for Values
      • createMap

        <K,​V> Map<K,​V> createMap()
        Type Parameters:
        K - key type
        V - value type
        Returns:
        a map
      • createValueKeyedMap

        <V> Map<org.eclipse.rdf4j.model.Value,​V> createValueKeyedMap()
        Type Parameters:
        V - value type
        Returns:
        a map
      • createQueue

        <T> Queue<T> createQueue()
        Type Parameters:
        T - of the contents of the queue
        Returns:
        a new queue
      • createValueQueue

        Queue<org.eclipse.rdf4j.model.Value> createValueQueue()
        Returns:
        a new queue
      • createGroupByMap

        @InternalUseOnly
        <E> Map<BindingSetKey,​E> createGroupByMap()
      • hashAValue

        @InternalUseOnly
        default int hashAValue​(Function<BindingSet,​org.eclipse.rdf4j.model.Value> getValue,
                               int nextHash,
                               BindingSet bs)
        Hashes a value that complies with the hashCode/equals conception but only in context of this collection/factory storage layer. Potentially also only valid during a single transaction scope.
        Parameters:
        getValue - the function to extract the value to hash
        nextHash - any previously calculated hash value for earlier values in the BindingSet
        bs - the bindingset to take the value from
        Returns:
        a hash function
      • hashOfBindingSetFuntion

        @InternalUseOnly
        default ToIntFunction<BindingSet> hashOfBindingSetFuntion​(List<Function<BindingSet,​org.eclipse.rdf4j.model.Value>> getValues)
        Generate a method that calculates a hash code that is valid in context of a single store implementation and QueryExecutionContext.
        Parameters:
        getValues - that should be considered in the hash
        Returns:
        a hash function