Class PolyadicPrefixMappingImpl

java.lang.Object
org.apache.jena.shared.impl.PrefixMappingImpl
org.apache.jena.graph.compose.PolyadicPrefixMappingImpl
All Implemented Interfaces:
PrefixMapping

public class PolyadicPrefixMappingImpl extends PrefixMappingImpl implements PrefixMapping
  • Constructor Details

    • PolyadicPrefixMappingImpl

      public PolyadicPrefixMappingImpl(Polyadic p)
  • Method Details

    • setNsPrefix

      public PrefixMapping setNsPrefix(String prefix, 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.

      Note, in particular, that the prefix mapping can only be used if it includes the URI up to any '#' character because '#' is not legal in the local part of an NCName.

      Specified by:
      setNsPrefix in interface PrefixMapping
      Overrides:
      setNsPrefix in class 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(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 PrefixMappingImpl
      Parameters:
      prefix - the prefix string to remove
      Returns:
      this PrefixMapping
    • clearNsPrefixMap

      public PrefixMapping clearNsPrefixMap()
      Description copied from interface: PrefixMapping
      Clear this prefix mapping of all mappings
      Specified by:
      clearNsPrefixMap in interface PrefixMapping
      Overrides:
      clearNsPrefixMap in class PrefixMappingImpl
    • 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 PrefixMappingImpl
      Parameters:
      other - the PrefixMapping whose bindings we are to add to this.
      Returns:
      this PrefixMapping
    • setNsPrefixes

      public PrefixMapping setNsPrefixes(Map<String,String> 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 PrefixMappingImpl
      Parameters:
      other - the Map whose bindings we are to add to this.
      Returns:
      this PrefixMapping
    • getNsPrefixURI

      public String getNsPrefixURI(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 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 Map<String,String> 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 PrefixMappingImpl
      Returns:
      a copy of the internal String -> String mapping
    • getNsURIPrefix

      public String getNsURIPrefix(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 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 String expandPrefix(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 PrefixMappingImpl
      Parameters:
      prefixed - a QName or URI
      Returns:
      the expanded string if possible, otherwise the original string
    • toString

      public String toString()
      Answer a readable (we hope) representation of this prefix mapping.
      Overrides:
      toString in class PrefixMappingImpl
    • shortForm

      public String shortForm(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 PrefixMappingImpl
      Parameters:
      uri - the URI string to try and prefix-compress
      Returns:
      the shortened form if possible, otherwise the unchanged argument
    • hasNoMappings

      public boolean hasNoMappings()
      Description copied from interface: PrefixMapping
      Return whether the prefix mapping has any defined prefixes.
      Specified by:
      hasNoMappings in interface PrefixMapping
      Overrides:
      hasNoMappings in class PrefixMappingImpl
    • numPrefixes

      public int numPrefixes()
      Description copied from interface: PrefixMapping
      Return the number of defined prefixes.
      Specified by:
      numPrefixes in interface PrefixMapping
      Overrides:
      numPrefixes in class PrefixMappingImpl
    • qnameFor

      public String qnameFor(String uri)
      Description copied from class: 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 PrefixMappingImpl