Class StorageNodeAltBase<D,​C,​V>

  • Type Parameters:
    D -
    C -
    V -
    All Implemented Interfaces:
    StorageNode<D,​C,​V>
    Direct Known Subclasses:
    StorageNodeAlt2, StorageNodeAlt3, StorageNodeAltN

    public abstract class StorageNodeAltBase<D,​C,​V>
    extends StorageNodeBase<D,​C,​V>
    Base class for index nodes that do not index by a key - or rather: index by a single key that is a zero-sized tuple
    Author:
    Claus Stadler 11/09/2020
    • Constructor Detail

      • StorageNodeAltBase

        public StorageNodeAltBase​(org.aksw.commons.tuple.TupleAccessor<D,​C> tupleAccessor)
    • Method Detail

      • isAltNode

        public boolean isAltNode()
        Description copied from interface: StorageNode
        Whether this storage node stores are a sequences of alternatives Experimental method; may be replaced by a generic getStoreType() method that returns e.g Alt.class, Set.class, etc.
        Returns:
      • streamerForKeysAsComponent

        public <T> Streamer<V,​C> streamerForKeysAsComponent​(T pattern,
                                                                  org.aksw.commons.tuple.TupleAccessorCore<? super T,​? extends C> accessor)
        Description copied from interface: StorageNode
        Compiles from a given pattern a function that can stream the matching keys from the appropriate store. The keys must be instances of the component type otherwise an exception is raised
        Returns:
      • streamerForKeysAsTuples

        public <T> Streamer<V,​List<C>> streamerForKeysAsTuples​(T pattern,
                                                                     org.aksw.commons.tuple.TupleAccessorCore<? super T,​? extends C> accessor)
        Description copied from interface: StorageNode
        Compiles from a given pattern a function that can stream the matching keys from the appropriate store. The keys must be instances of the component type otherwise an exception is raised if getKeyTupleIdxs().length == 0 then returns a single tuple that projects no components
        Returns:
      • streamerForValues

        public <T> Streamer<V,​V> streamerForValues​(T pattern,
                                                         org.aksw.commons.tuple.TupleAccessorCore<? super T,​? extends C> accessor)
        Description copied from interface: StorageNode
        Returns an object that can extract the stream of values at an index node under constraints map: { entry.value | entry in map and entry.key matches condition} leafSet: set.entries.stream() A leaf set does not have any keys that could affect the result stream
        Returns:
      • streamerForKeys

        public <T> Streamer<V,​?> streamerForKeys​(T pattern,
                                                       org.aksw.commons.tuple.TupleAccessorCore<? super T,​? extends C> accessor)
      • streamerForKeyAndSubStoreAlts

        public <T> Streamer<V,​? extends Map.Entry<?,​?>> streamerForKeyAndSubStoreAlts​(T pattern,
                                                                                                  org.aksw.commons.tuple.TupleAccessorCore<? super T,​? extends C> accessor)
        Stream a single entry of the store alts themselves children can then pick an alternative based on their index
        Returns:
      • getKeyComponentRaw

        public C getKeyComponentRaw​(Object key,
                                    int idx)
        Description copied from interface: StorageNode
        Obtain components from the internal representation of key that was used for indexing w.r.t. StorageNode.getKeyTupleIdxs().
        idx - In the range 0 to {@link getKeyTupleIdxs().length} (exclusive) If a key has no components calling this method will always raise IndexOutOfBoundsException
        Returns: