java.lang.Object
org.apache.jena.riot.lang.BlankNodeAllocatorHash
- All Implemented Interfaces:
BlankNodeAllocator
- Direct Known Subclasses:
BlankNodeAllocatorFixedSeedHash
Allocate bnode labels using a per-run seed and the label presented.
This is the most scalable, always legal allocator.
New allocators must be created per parser run, or .reset() called. These are fed to a digest to give a bit string, (currently MD5, to get a 128bit bit string) that is used to form a bNode AnonId of hex digits.
In addition, there is a cache of label->node allocations, using the natural tendency to locality in a database dump. (subject bNodes, bNodes in lists and other data values structures like unit values).
Not thread safe.
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionorg.apache.jena.graph.Node
Allocate based on a non-null label.org.apache.jena.graph.Node
create()
Create a fresh blank node, different from anything generated so far.void
reset()
Reset allocation state - calls toBlankNodeAllocator.alloc(java.lang.String)
will return a different blank node for a label than the one returned before the reset.
-
Constructor Details
-
BlankNodeAllocatorHash
public BlankNodeAllocatorHash()
-
-
Method Details
-
reset
public void reset()Description copied from interface:BlankNodeAllocator
Reset allocation state - calls toBlankNodeAllocator.alloc(java.lang.String)
will return a different blank node for a label than the one returned before the reset.- Specified by:
reset
in interfaceBlankNodeAllocator
-
alloc
Description copied from interface:BlankNodeAllocator
Allocate based on a non-null label. Calling this twice, with the same label will generate equivalent nodes but they may not be identical (i.e they are .equals but may not be ==)- Specified by:
alloc
in interfaceBlankNodeAllocator
-
create
public org.apache.jena.graph.Node create()Description copied from interface:BlankNodeAllocator
Create a fresh blank node, different from anything generated so far. Will not clash with a node allocated byBlankNodeAllocator.alloc(java.lang.String)
- Specified by:
create
in interfaceBlankNodeAllocator
-