Package org.neo4j.graphalgo.core.loading
Class IdMap
- java.lang.Object
-
- org.neo4j.graphalgo.core.loading.IdMap
-
- All Implemented Interfaces:
BatchNodeIterable
,IdMapping
,NodeIterator
,NodeMapping
public class IdMap extends java.lang.Object implements NodeMapping, NodeIterator, BatchNodeIterable
This is basically a long to int mapper. It sorts the id's in ascending order so its guaranteed that there is no ID greater then nextGraphId / capacity
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.neo4j.graphalgo.api.BatchNodeIterable
BatchNodeIterable.IdIterable, BatchNodeIterable.IdIterator
-
-
Field Summary
-
Fields inherited from interface org.neo4j.graphalgo.api.IdMapping
START_NODE_ID
-
-
Constructor Summary
Constructors Constructor Description IdMap(HugeLongArray graphIds, HugeSparseLongArray nodeToGraphIds, java.util.Map<NodeLabel,com.carrotsearch.hppc.BitSet> labelInformation, long nodeCount, AllocationTracker tracker)
initialize the map with pre-built sub arrays
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description java.util.Set<NodeLabel>
availableNodeLabels()
java.util.Collection<PrimitiveLongIterable>
batchIterables(int batchSize)
boolean
contains(long nodeId)
Returns true iff the nodeId is mapped, otherwise false.void
forEachNode(java.util.function.LongPredicate consumer)
Iterate over each nodeIdboolean
hasLabel(long nodeId, NodeLabel label)
static MemoryEstimation
memoryEstimation()
long
nodeCount()
Number of mapped nodeIds.PrimitiveLongIterator
nodeIterator()
java.util.Set<NodeLabel>
nodeLabels(long nodeId)
long
toMappedNodeId(long nodeId)
Map original nodeId to inner nodeIdlong
toOriginalNodeId(long nodeId)
Map inner nodeId back to original nodeId-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.neo4j.graphalgo.api.IdMapping
cloneIdMapping
-
Methods inherited from interface org.neo4j.graphalgo.api.NodeMapping
containsOnlyAllNodesLabel
-
-
-
-
Constructor Detail
-
IdMap
public IdMap(HugeLongArray graphIds, HugeSparseLongArray nodeToGraphIds, java.util.Map<NodeLabel,com.carrotsearch.hppc.BitSet> labelInformation, long nodeCount, AllocationTracker tracker)
initialize the map with pre-built sub arrays
-
-
Method Detail
-
memoryEstimation
public static MemoryEstimation memoryEstimation()
-
toMappedNodeId
public long toMappedNodeId(long nodeId)
Description copied from interface:IdMapping
Map original nodeId to inner nodeId- Specified by:
toMappedNodeId
in interfaceIdMapping
-
toOriginalNodeId
public long toOriginalNodeId(long nodeId)
Description copied from interface:IdMapping
Map inner nodeId back to original nodeId- Specified by:
toOriginalNodeId
in interfaceIdMapping
-
contains
public boolean contains(long nodeId)
Description copied from interface:IdMapping
Returns true iff the nodeId is mapped, otherwise false.
-
nodeCount
public long nodeCount()
Description copied from interface:IdMapping
Number of mapped nodeIds.
-
forEachNode
public void forEachNode(java.util.function.LongPredicate consumer)
Description copied from interface:NodeIterator
Iterate over each nodeId- Specified by:
forEachNode
in interfaceNodeIterator
-
nodeIterator
public PrimitiveLongIterator nodeIterator()
- Specified by:
nodeIterator
in interfaceNodeIterator
-
batchIterables
public java.util.Collection<PrimitiveLongIterable> batchIterables(int batchSize)
- Specified by:
batchIterables
in interfaceBatchNodeIterable
- Returns:
- a collection of iterables over every node, partitioned by the given batch size.
-
availableNodeLabels
public java.util.Set<NodeLabel> availableNodeLabels()
- Specified by:
availableNodeLabels
in interfaceNodeMapping
-
nodeLabels
public java.util.Set<NodeLabel> nodeLabels(long nodeId)
- Specified by:
nodeLabels
in interfaceNodeMapping
-
hasLabel
public boolean hasLabel(long nodeId, NodeLabel label)
- Specified by:
hasLabel
in interfaceNodeMapping
-
-