Class IndexingNodeFactory

java.lang.Object
io.datarouter.storage.node.factory.IndexingNodeFactory

public class IndexingNodeFactory
extends Object
  • Constructor Summary

    Constructors 
    Constructor Description
    IndexingNodeFactory()  
  • Method Summary

    Modifier and Type Method Description
    <PK extends io.datarouter.model.key.primary.PrimaryKey<PK>,​ D extends io.datarouter.model.databean.Databean<PK,​ D>,​ F extends io.datarouter.model.serialize.fielder.DatabeanFielder<PK,​ D>,​ IK extends io.datarouter.model.key.FieldlessIndexEntryPrimaryKey<IK,​ PK,​ D>>
    ManagedNodeBuilder<PK,​D,​IK,​io.datarouter.model.databean.FieldlessIndexEntry<IK,​PK,​D>,​io.datarouter.model.field.FieldlessIndexEntryFielder<IK,​PK,​D>>
    createKeyOnlyManagedIndex​(Class<IK> indexEntryKeyClass, IndexedMapStorage.IndexedMapStorageNode<PK,​D,​F> backingNode)  
    static <PK extends io.datarouter.model.key.primary.PrimaryKey<PK>,​ D extends io.datarouter.model.databean.Databean<PK,​ D>,​ IK extends io.datarouter.model.key.primary.PrimaryKey<IK>,​ IE extends io.datarouter.model.index.unique.UniqueIndexEntry<IK,​ IE,​ PK,​ D>,​ IF extends io.datarouter.model.serialize.fielder.DatabeanFielder<IK,​ IE>>
    ManagedUniqueIndexNode<PK,​D,​IK,​IE,​IF>
    newManagedUnique​(IndexedMapStorage<PK,​D> backingNode, Class<IF> indexFielder, Class<IE> indexEntryClass, boolean manageTxn)
    WARNING: make sure the index fielder you pass in has the same character set and collation options as the backing node's fielder or risk having incorrect, performance-hurting introducers in SQL
    static <PK extends io.datarouter.model.key.primary.PrimaryKey<PK>,​ D extends io.datarouter.model.databean.Databean<PK,​ D>,​ IK extends io.datarouter.model.key.primary.PrimaryKey<IK>,​ IE extends io.datarouter.model.index.unique.UniqueIndexEntry<IK,​ IE,​ PK,​ D>,​ IF extends io.datarouter.model.serialize.fielder.DatabeanFielder<IK,​ IE>>
    ManagedUniqueIndexNode<PK,​D,​IK,​IE,​IF>
    newManagedUnique​(IndexedMapStorage<PK,​D> backingNode, Supplier<IF> indexFielderSupplier, Supplier<IE> indexEntrySupplier, boolean manageTxn, String indexName)
    WARNING: make sure the index fielder you pass in has the same character set and collation options as the backing node's fielder or risk having incorrect, performance-hurting introducers in SQL
    static <PK extends io.datarouter.model.key.primary.PrimaryKey<PK>,​ D extends io.datarouter.model.databean.Databean<PK,​ D>,​ IK extends io.datarouter.model.key.primary.PrimaryKey<IK>,​ IE extends io.datarouter.model.index.multi.MultiIndexEntry<IK,​ IE,​ PK,​ D>,​ IF extends io.datarouter.model.serialize.fielder.DatabeanFielder<IK,​ IE>>
    ManualMultiIndexNode<PK,​D,​IK,​IE>
    newManualMulti​(MapStorage<PK,​D> mainNode, SortedMapStorage.SortedMapStorageNode<IK,​IE,​IF> indexNode)  
    static <PK extends io.datarouter.model.key.primary.PrimaryKey<PK>,​ D extends io.datarouter.model.databean.Databean<PK,​ D>,​ IK extends io.datarouter.model.key.primary.PrimaryKey<IK>,​ IF extends io.datarouter.model.serialize.fielder.DatabeanFielder<IK,​ IE>,​ IE extends io.datarouter.model.index.unique.UniqueIndexEntry<IK,​ IE,​ PK,​ D>>
    ManualUniqueIndexNode<PK,​D,​IK,​IE>
    newManualUnique​(MapStorage<PK,​D> mainNode, SortedMapStorage.SortedMapStorageNode<IK,​IE,​IF> indexNode)  
    static <PK extends io.datarouter.model.key.primary.PrimaryKey<PK>,​ D extends io.datarouter.model.databean.Databean<PK,​ D>,​ F extends io.datarouter.model.serialize.fielder.DatabeanFielder<PK,​ D>>
    IndexingMapStorageNode<PK,​D,​F,​MapStorage.MapStorageNode<PK,​D,​F>>
    newMap​(MapStorage.MapStorageNode<PK,​D,​F> mainNode)  
    static <PK extends io.datarouter.model.key.primary.PrimaryKey<PK>,​ D extends io.datarouter.model.databean.Databean<PK,​ D>,​ IK extends io.datarouter.model.key.primary.PrimaryKey<IK>,​ IE extends io.datarouter.model.index.multi.MultiIndexEntry<IK,​ IE,​ PK,​ D>,​ IF extends io.datarouter.model.serialize.fielder.DatabeanFielder<IK,​ IE>,​ IN extends SortedMapStorage.SortedMapStorageNode<IK,​ IE,​ IF>>
    IndexListener<PK,​D>
    newMultiListener​(Supplier<IE> indexEntrySupplier, IN indexNode)  
    static <PK extends io.datarouter.model.key.primary.PrimaryKey<PK>,​ D extends io.datarouter.model.databean.Databean<PK,​ D>,​ F extends io.datarouter.model.serialize.fielder.DatabeanFielder<PK,​ D>,​ N extends SortedMapStorage.SortedMapStorageNode<PK,​ D,​ F>>
    IndexingSortedMapStorageNode<PK,​D,​F,​N>
    newSortedMap​(N mainNode)  
    static <PK extends io.datarouter.model.key.primary.PrimaryKey<PK>,​ D extends io.datarouter.model.databean.Databean<PK,​ D>,​ IK extends io.datarouter.model.key.primary.PrimaryKey<IK>,​ IE extends io.datarouter.model.index.unique.UniqueIndexEntry<IK,​ IE,​ PK,​ D>,​ IF extends io.datarouter.model.serialize.fielder.DatabeanFielder<IK,​ IE>,​ IN extends SortedMapStorage.SortedMapStorageNode<IK,​ IE,​ IF>>
    IndexListener<PK,​D>
    newUniqueListener​(Supplier<IE> indexEntrySupplier, IN indexNode)  

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

  • Method Details

    • newMap

      public static <PK extends io.datarouter.model.key.primary.PrimaryKey<PK>,​ D extends io.datarouter.model.databean.Databean<PK,​ D>,​ F extends io.datarouter.model.serialize.fielder.DatabeanFielder<PK,​ D>> IndexingMapStorageNode<PK,​D,​F,​MapStorage.MapStorageNode<PK,​D,​F>> newMap​(MapStorage.MapStorageNode<PK,​D,​F> mainNode)
    • newSortedMap

      public static <PK extends io.datarouter.model.key.primary.PrimaryKey<PK>,​ D extends io.datarouter.model.databean.Databean<PK,​ D>,​ F extends io.datarouter.model.serialize.fielder.DatabeanFielder<PK,​ D>,​ N extends SortedMapStorage.SortedMapStorageNode<PK,​ D,​ F>> IndexingSortedMapStorageNode<PK,​D,​F,​N> newSortedMap​(N mainNode)
    • newUniqueListener

      public static <PK extends io.datarouter.model.key.primary.PrimaryKey<PK>,​ D extends io.datarouter.model.databean.Databean<PK,​ D>,​ IK extends io.datarouter.model.key.primary.PrimaryKey<IK>,​ IE extends io.datarouter.model.index.unique.UniqueIndexEntry<IK,​ IE,​ PK,​ D>,​ IF extends io.datarouter.model.serialize.fielder.DatabeanFielder<IK,​ IE>,​ IN extends SortedMapStorage.SortedMapStorageNode<IK,​ IE,​ IF>> IndexListener<PK,​D> newUniqueListener​(Supplier<IE> indexEntrySupplier, IN indexNode)
    • newMultiListener

      public static <PK extends io.datarouter.model.key.primary.PrimaryKey<PK>,​ D extends io.datarouter.model.databean.Databean<PK,​ D>,​ IK extends io.datarouter.model.key.primary.PrimaryKey<IK>,​ IE extends io.datarouter.model.index.multi.MultiIndexEntry<IK,​ IE,​ PK,​ D>,​ IF extends io.datarouter.model.serialize.fielder.DatabeanFielder<IK,​ IE>,​ IN extends SortedMapStorage.SortedMapStorageNode<IK,​ IE,​ IF>> IndexListener<PK,​D> newMultiListener​(Supplier<IE> indexEntrySupplier, IN indexNode)
    • newManualUnique

      public static <PK extends io.datarouter.model.key.primary.PrimaryKey<PK>,​ D extends io.datarouter.model.databean.Databean<PK,​ D>,​ IK extends io.datarouter.model.key.primary.PrimaryKey<IK>,​ IF extends io.datarouter.model.serialize.fielder.DatabeanFielder<IK,​ IE>,​ IE extends io.datarouter.model.index.unique.UniqueIndexEntry<IK,​ IE,​ PK,​ D>> ManualUniqueIndexNode<PK,​D,​IK,​IE> newManualUnique​(MapStorage<PK,​D> mainNode, SortedMapStorage.SortedMapStorageNode<IK,​IE,​IF> indexNode)
    • newManualMulti

      public static <PK extends io.datarouter.model.key.primary.PrimaryKey<PK>,​ D extends io.datarouter.model.databean.Databean<PK,​ D>,​ IK extends io.datarouter.model.key.primary.PrimaryKey<IK>,​ IE extends io.datarouter.model.index.multi.MultiIndexEntry<IK,​ IE,​ PK,​ D>,​ IF extends io.datarouter.model.serialize.fielder.DatabeanFielder<IK,​ IE>> ManualMultiIndexNode<PK,​D,​IK,​IE> newManualMulti​(MapStorage<PK,​D> mainNode, SortedMapStorage.SortedMapStorageNode<IK,​IE,​IF> indexNode)
    • newManagedUnique

      public static <PK extends io.datarouter.model.key.primary.PrimaryKey<PK>,​ D extends io.datarouter.model.databean.Databean<PK,​ D>,​ IK extends io.datarouter.model.key.primary.PrimaryKey<IK>,​ IE extends io.datarouter.model.index.unique.UniqueIndexEntry<IK,​ IE,​ PK,​ D>,​ IF extends io.datarouter.model.serialize.fielder.DatabeanFielder<IK,​ IE>> ManagedUniqueIndexNode<PK,​D,​IK,​IE,​IF> newManagedUnique​(IndexedMapStorage<PK,​D> backingNode, Supplier<IF> indexFielderSupplier, Supplier<IE> indexEntrySupplier, boolean manageTxn, String indexName)
      WARNING: make sure the index fielder you pass in has the same character set and collation options as the backing node's fielder or risk having incorrect, performance-hurting introducers in SQL
    • newManagedUnique

      public static <PK extends io.datarouter.model.key.primary.PrimaryKey<PK>,​ D extends io.datarouter.model.databean.Databean<PK,​ D>,​ IK extends io.datarouter.model.key.primary.PrimaryKey<IK>,​ IE extends io.datarouter.model.index.unique.UniqueIndexEntry<IK,​ IE,​ PK,​ D>,​ IF extends io.datarouter.model.serialize.fielder.DatabeanFielder<IK,​ IE>> ManagedUniqueIndexNode<PK,​D,​IK,​IE,​IF> newManagedUnique​(IndexedMapStorage<PK,​D> backingNode, Class<IF> indexFielder, Class<IE> indexEntryClass, boolean manageTxn)
      WARNING: make sure the index fielder you pass in has the same character set and collation options as the backing node's fielder or risk having incorrect, performance-hurting introducers in SQL
    • createKeyOnlyManagedIndex

      public <PK extends io.datarouter.model.key.primary.PrimaryKey<PK>,​ D extends io.datarouter.model.databean.Databean<PK,​ D>,​ F extends io.datarouter.model.serialize.fielder.DatabeanFielder<PK,​ D>,​ IK extends io.datarouter.model.key.FieldlessIndexEntryPrimaryKey<IK,​ PK,​ D>> ManagedNodeBuilder<PK,​D,​IK,​io.datarouter.model.databean.FieldlessIndexEntry<IK,​PK,​D>,​io.datarouter.model.field.FieldlessIndexEntryFielder<IK,​PK,​D>> createKeyOnlyManagedIndex​(Class<IK> indexEntryKeyClass, IndexedMapStorage.IndexedMapStorageNode<PK,​D,​F> backingNode)