org.apache.jena.riot.lang
Class BlankNodeAllocatorHash

java.lang.Object
  extended by org.apache.jena.riot.lang.BlankNodeAllocatorHash
All Implemented Interfaces:
BlankNodeAllocator
Direct Known Subclasses:
BlankNodeAllocatorFixedSeedHash

public class BlankNodeAllocatorHash
extends 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
BlankNodeAllocatorHash()
           
 
Method Summary
 Node alloc(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 to BlankNodeAllocator.alloc(java.lang.String) or BlankNodeAllocator.create()
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BlankNodeAllocatorHash

public BlankNodeAllocatorHash()
Method Detail

reset

public void reset()
Description copied from interface: BlankNodeAllocator
Reset allocation state - calls to BlankNodeAllocator.alloc(java.lang.String) or BlankNodeAllocator.create()

Specified by:
reset in interface BlankNodeAllocator

alloc

public Node alloc(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 identicial (i.e they are .equals but may not be ==)

Specified by:
alloc in interface BlankNodeAllocator

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 by BlankNodeAllocator.alloc(java.lang.String)

Specified by:
create in interface BlankNodeAllocator


Licenced under the Apache License, Version 2.0