com.hp.hpl.jena.graph.compose
Class PolyadicPrefixMappingImpl

java.lang.Object
  extended by com.hp.hpl.jena.shared.impl.PrefixMappingImpl
      extended by com.hp.hpl.jena.graph.compose.PolyadicPrefixMappingImpl
All Implemented Interfaces:
PrefixMapping

public class PolyadicPrefixMappingImpl
extends com.hp.hpl.jena.shared.impl.PrefixMappingImpl
implements PrefixMapping


Nested Class Summary
 
Nested classes/interfaces inherited from interface com.hp.hpl.jena.shared.PrefixMapping
PrefixMapping.Factory, PrefixMapping.IllegalPrefixException, PrefixMapping.JenaLockedException
 
Field Summary
 
Fields inherited from interface com.hp.hpl.jena.shared.PrefixMapping
Extended, Standard
 
Constructor Summary
PolyadicPrefixMappingImpl(Polyadic p)
           
 
Method Summary
 java.lang.String expandPrefix(java.lang.String prefixed)
          Expand a prefixed URI.
 java.util.Map getNsPrefixMap()
          Return a copy of the internal mapping from names to URI strings.
 java.lang.String getNsPrefixURI(java.lang.String prefix)
          Get the URI bound to a specific prefix, null if there isn't one.
 java.lang.String getNsURIPrefix(java.lang.String uri)
          Answer the prefix for the given URI, or null if there isn't one.
 java.lang.String qnameFor(java.lang.String uri)
          Answer the qname for uri which uses a prefix from this mapping, or null if there isn't one.
 PrefixMapping removeNsPrefix(java.lang.String prefix)
          Remove any existing maplet with the given prefix name and answer this mapping.
 PrefixMapping setNsPrefix(java.lang.String prefix, java.lang.String uri)
          Specify the prefix name for a URI prefix string.
 PrefixMapping setNsPrefixes(java.util.Map other)
          Add the bindings in the map to our own.
 PrefixMapping setNsPrefixes(PrefixMapping other)
          Add the bindings of other to our own.
 java.lang.String shortForm(java.lang.String uri)
          Compress the URI using the prefix mapping.
 java.lang.String toString()
          Answer a readable (we hope) representation of this prefix mapping.
 
Methods inherited from class com.hp.hpl.jena.shared.impl.PrefixMappingImpl
isNiceURI, lock, samePrefixMappingAs, withDefaultMappings
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface com.hp.hpl.jena.shared.PrefixMapping
lock, samePrefixMappingAs, withDefaultMappings
 

Constructor Detail

PolyadicPrefixMappingImpl

public PolyadicPrefixMappingImpl(Polyadic p)
Method Detail

setNsPrefix

public PrefixMapping setNsPrefix(java.lang.String prefix,
                                 java.lang.String uri)
Description copied from interface: PrefixMapping
Specify the prefix name for a URI prefix string. Any existing use of that prefix name is overwritten. The result is this same prefixMapping. (The earlier restriction that adding second prefix for the same URI caused the earlier binding to be deleted has been withdrawn.)

A prefix name must be a valid NCName, or the empty string. The empty string is reserved to mean "the default namespace".

Need not check the RFC2396 validity of the URI. Bad URIs are either silently ignored or behave as if they were good. The earlier restriction that the URI should end with a non-NCName character has been removed.

Specified by:
setNsPrefix in interface PrefixMapping
Overrides:
setNsPrefix in class com.hp.hpl.jena.shared.impl.PrefixMappingImpl
Parameters:
prefix - the string to be used for the prefix.
uri - the URI prefix to be named
Returns:
this PrefixMapping

removeNsPrefix

public PrefixMapping removeNsPrefix(java.lang.String prefix)
Description copied from interface: PrefixMapping
Remove any existing maplet with the given prefix name and answer this mapping. If the prefix is the empty string, then this removes the default namespace. If the prefix is not a legal prefix string, or is not present in the mapping, nothing happens.

The reverse URI-to-prefix mapping is updated, but if there are multiple prefixes for the removed URI it is unspecified which of them will be chosen.

Specified by:
removeNsPrefix in interface PrefixMapping
Overrides:
removeNsPrefix in class com.hp.hpl.jena.shared.impl.PrefixMappingImpl
Parameters:
prefix - the prefix string to remove
Returns:
this PrefixMapping

setNsPrefixes

public PrefixMapping setNsPrefixes(PrefixMapping other)
Add the bindings of other to our own. We defer to the general case because we have to ensure the URIs are checked.

Specified by:
setNsPrefixes in interface PrefixMapping
Overrides:
setNsPrefixes in class com.hp.hpl.jena.shared.impl.PrefixMappingImpl
Parameters:
other - the PrefixMapping whose bindings we are to add to this.
Returns:
this PrefixMapping

setNsPrefixes

public PrefixMapping setNsPrefixes(java.util.Map other)
Add the bindings in the map to our own. This will fail with a ClassCastException if any key or value is not a String; we make no guarantees about order or completeness if this happens. It will fail with an IllegalPrefixException if any prefix is illegal; similar provisos apply.

Specified by:
setNsPrefixes in interface PrefixMapping
Overrides:
setNsPrefixes in class com.hp.hpl.jena.shared.impl.PrefixMappingImpl
Parameters:
other - the Map whose bindings we are to add to this.
Returns:
this PrefixMapping

getNsPrefixURI

public java.lang.String getNsPrefixURI(java.lang.String prefix)
Description copied from interface: PrefixMapping
Get the URI bound to a specific prefix, null if there isn't one.

Specified by:
getNsPrefixURI in interface PrefixMapping
Overrides:
getNsPrefixURI in class com.hp.hpl.jena.shared.impl.PrefixMappingImpl
Parameters:
prefix - the prefix name to be looked up
Returns:
the most recent URI bound to that prefix name, null if none

getNsPrefixMap

public java.util.Map getNsPrefixMap()
Description copied from interface: PrefixMapping
Return a copy of the internal mapping from names to URI strings. Updating this copy will have no effect on the PrefixMap.

Specified by:
getNsPrefixMap in interface PrefixMapping
Overrides:
getNsPrefixMap in class com.hp.hpl.jena.shared.impl.PrefixMappingImpl
Returns:
a copy of the internal String -> String mapping

getNsURIPrefix

public java.lang.String getNsURIPrefix(java.lang.String uri)
Description copied from interface: PrefixMapping
Answer the prefix for the given URI, or null if there isn't one. If there is more than one, one of them will be picked. If possible, it will be the most recently added prefix. (The cases where it's not possible is when a binding has been removed.)

Specified by:
getNsURIPrefix in interface PrefixMapping
Overrides:
getNsURIPrefix in class com.hp.hpl.jena.shared.impl.PrefixMappingImpl
Parameters:
uri - the uri whose prefix is to be found
Returns:
the prefix mapped to that uri, or null if there isn't one

expandPrefix

public java.lang.String expandPrefix(java.lang.String prefixed)
Expand a prefixed URI. There's an assumption that any URI of the form Head:Tail is subject to mapping if Head is in the prefix mapping. So, if someone takes it into their heads to define eg "http" or "ftp" we have problems.

Specified by:
expandPrefix in interface PrefixMapping
Overrides:
expandPrefix in class com.hp.hpl.jena.shared.impl.PrefixMappingImpl
Parameters:
prefixed - a QName or URI
Returns:
the expanded string if possible, otherwise the original string

toString

public java.lang.String toString()
Answer a readable (we hope) representation of this prefix mapping.

Overrides:
toString in class com.hp.hpl.jena.shared.impl.PrefixMappingImpl

shortForm

public java.lang.String shortForm(java.lang.String uri)
Compress the URI using the prefix mapping. This version of the code looks through all the maplets and checks each candidate prefix URI for being a leading substring of the argument URI. There's probably a much more efficient algorithm available, preprocessing the prefix strings into some kind of search table, but for the moment we don't need it.

Specified by:
shortForm in interface PrefixMapping
Overrides:
shortForm in class com.hp.hpl.jena.shared.impl.PrefixMappingImpl
Parameters:
uri - the URI string to try and prefix-compress
Returns:
the shortened form if possible, otherwise the unchanged argument

qnameFor

public java.lang.String qnameFor(java.lang.String uri)
Description copied from class: com.hp.hpl.jena.shared.impl.PrefixMappingImpl
Answer the qname for uri which uses a prefix from this mapping, or null if there isn't one.

Relies on splitNamespace to carve uri into namespace and localname components; this ensures that the localname is legal and we just have to (reverse-)lookup the namespace in the prefix table.

Specified by:
qnameFor in interface PrefixMapping
Overrides:
qnameFor in class com.hp.hpl.jena.shared.impl.PrefixMappingImpl
See Also:
PrefixMapping.qnameFor(java.lang.String)


Copyright � 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Hewlett-Packard Development Company, LP