Package org.apache.jena.riot.lang
Class BlankNodeAllocatorHash
- java.lang.Object
-
- org.apache.jena.riot.lang.BlankNodeAllocatorHash
-
- All Implemented Interfaces:
BlankNodeAllocator
- Direct Known Subclasses:
BlankNodeAllocatorFixedSeedHash
public class BlankNodeAllocatorHash extends java.lang.Object implements BlankNodeAllocator
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
Constructors Constructor Description BlankNodeAllocatorHash()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Node
alloc(java.lang.String label)
Allocate based on a non-null label.Node
create()
Create a fresh blank node, different from anything generated so far.void
reset()
Reset allocation state - calls toBlankNodeAllocator.alloc(java.lang.String)
orBlankNodeAllocator.create()
-
-
-
Method Detail
-
reset
public void reset()
Description copied from interface:BlankNodeAllocator
Reset allocation state - calls toBlankNodeAllocator.alloc(java.lang.String)
orBlankNodeAllocator.create()
- Specified by:
reset
in interfaceBlankNodeAllocator
-
alloc
public Node alloc(java.lang.String label)
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 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
-
-