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 Nodealloc(java.lang.String label)Allocate based on a non-null label.Nodecreate()Create a fresh blank node, different from anything generated so far.voidreset()Reset allocation state - calls toBlankNodeAllocator.alloc(java.lang.String)orBlankNodeAllocator.create()
-
-
-
Method Detail
-
reset
public void reset()
Description copied from interface:BlankNodeAllocatorReset allocation state - calls toBlankNodeAllocator.alloc(java.lang.String)orBlankNodeAllocator.create()- Specified by:
resetin interfaceBlankNodeAllocator
-
alloc
public Node alloc(java.lang.String label)
Description copied from interface:BlankNodeAllocatorAllocate 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:
allocin interfaceBlankNodeAllocator
-
create
public Node create()
Description copied from interface:BlankNodeAllocatorCreate a fresh blank node, different from anything generated so far. Will not clash with a node allocated byBlankNodeAllocator.alloc(java.lang.String)- Specified by:
createin interfaceBlankNodeAllocator
-
-