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 SQLstatic <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 SQLstatic <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)
-
Constructor Details
-
IndexingNodeFactory
public IndexingNodeFactory()
-
-
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)
-