org.apache.jena.riot.system
Class FastAbbreviatingPrefixMap

java.lang.Object
  extended by org.apache.jena.riot.system.PrefixMapBase
      extended by org.apache.jena.riot.system.FastAbbreviatingPrefixMap
All Implemented Interfaces:
PrefixMap

public class FastAbbreviatingPrefixMap
extends PrefixMapBase

A prefix map implementation suited to output heavy workloads

This is an alternative implementation of the PrefixMap interface, it is broadly similar to the default PrefixMapStd implementation but is faster in output heavy workloads. If you are calling the PrefixMap.expand(String) or PrefixMap.expand(String, String) methods a lot then you should be using this implementation.

To improve on output performance this implementation maintains a Trie mapping namespace IRIs to their prefixes as well as a normal mapping. Therefore IRI abbreviation can be done as an approximately O(1) operation in the worst case . If you contrast this with the abbreviation performance of the default PrefixMap which is worst case O(n) then this is a substantial saving in scenarios where you primarily use a prefix map for output.

Generally speaking all other operations should be roughly equivalent to the default PrefixMap though the memory overhead of this implementation will be marginally higher due to the extra information maintained in the Trie.


Constructor Summary
FastAbbreviatingPrefixMap()
          Create a new fast abbreviating prefix map
FastAbbreviatingPrefixMap(PrefixMap pmap)
          Create a new fast abbreviating prefix map which copies mappings from an existing map
 
Method Summary
 Pair<String,String> abbrev(String uriStr)
          Abbreviate an IRI and return a pair of prefix and local parts, or null.
 String abbreviate(String uriStr)
          Abbreviate an IRI or return null
 void add(String prefix, org.apache.jena.iri.IRI iri)
          Add a prefix, overwrites any existing association
 boolean contains(String prefix)
          Gets whether the map contains a given prefix
 void delete(String prefix)
          Delete a prefix
 String expand(String prefixedName)
          Expand a prefix named, return null if it can't be expanded
 String expand(String prefix, String localName)
          Expand a prefix, return null if it can't be expanded
 Map<String,org.apache.jena.iri.IRI> getMapping()
          Return the underlying mapping, this is generally unsafe to modify and implementations may opt to return an unmodifiable view of the mapping if they wish
 boolean isEmpty()
          return whether the
 int size()
          Return the number of entries in the prefix map.
 
Methods inherited from class org.apache.jena.riot.system.PrefixMapBase
add, getMappingCopy, getMappingCopyStr, putAll, putAll, putAll, toString
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

FastAbbreviatingPrefixMap

public FastAbbreviatingPrefixMap()
Create a new fast abbreviating prefix map


FastAbbreviatingPrefixMap

public FastAbbreviatingPrefixMap(PrefixMap pmap)
Create a new fast abbreviating prefix map which copies mappings from an existing map

Parameters:
pmap - Prefix Map
Method Detail

getMapping

public Map<String,org.apache.jena.iri.IRI> getMapping()
Description copied from interface: PrefixMap
Return the underlying mapping, this is generally unsafe to modify and implementations may opt to return an unmodifiable view of the mapping if they wish

Returns:
Underlying mapping

add

public void add(String prefix,
                org.apache.jena.iri.IRI iri)
Description copied from interface: PrefixMap
Add a prefix, overwrites any existing association

Parameters:
prefix - Prefix
iri - Namespace IRI

delete

public void delete(String prefix)
Description copied from interface: PrefixMap
Delete a prefix

Parameters:
prefix - Prefix to delete

contains

public boolean contains(String prefix)
Description copied from interface: PrefixMap
Gets whether the map contains a given prefix

Parameters:
prefix - Prefix
Returns:
True if the prefix is contained in the map, false otherwise

abbreviate

public String abbreviate(String uriStr)
Description copied from interface: PrefixMap
Abbreviate an IRI or return null

Parameters:
uriStr - URI to abbreviate
Returns:
URI in prefixed name form if possible, null otherwise

abbrev

public Pair<String,String> abbrev(String uriStr)
Description copied from interface: PrefixMap
Abbreviate an IRI and return a pair of prefix and local parts, or null.

Parameters:
uriStr - URI string to abbreviate
Returns:
Pair of prefix and local name
See Also:
PrefixMap.abbreviate(java.lang.String)

expand

public String expand(String prefixedName)
Description copied from interface: PrefixMap
Expand a prefix named, return null if it can't be expanded

Specified by:
expand in interface PrefixMap
Overrides:
expand in class PrefixMapBase
Parameters:
prefixedName - Prefixed Name
Returns:
Expanded URI if possible, null otherwise

expand

public String expand(String prefix,
                     String localName)
Description copied from interface: PrefixMap
Expand a prefix, return null if it can't be expanded

Parameters:
prefix - Prefix
localName - Local name
Returns:
Expanded URI if possible, null otherwise

isEmpty

public boolean isEmpty()
Description copied from interface: PrefixMap
return whether the

Returns:
boolean

size

public int size()
Description copied from interface: PrefixMap
Return the number of entries in the prefix map.

Returns:
Size of the prefix mapping


Licenced under the Apache License, Version 2.0