Class NamespaceHelper

java.lang.Object
org.apache.jackrabbit.commons.NamespaceHelper

public class NamespaceHelper extends Object
Helper class for working with JCR namespaces.
Since:
Jackrabbit JCR Commons 1.5
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final String
    The jcr namespace URI.
    static final String
    The mix namespace URI.
    static final String
    The nt namespace URI.
  • Constructor Summary

    Constructors
    Constructor
    Description
    Creates a namespace helper for the given session.
  • Method Summary

    Modifier and Type
    Method
    Description
    Replaces the standard jcr, nt, or mix prefix in the given name with the prefix mapped to that namespace in the current session.
    getJcrName(String uri, String name)
    Returns the prefixed JCR name for the given namespace URI and local name in the current session.
    Returns a map containing all prefix to namespace URI mappings of the current session.
    Returns the prefix mapped to the given namespace URI in the current session, or null if the namespace does not exist.
    getURI(String prefix)
    Returns the namespace URI mapped to the given prefix in the current session, or null if the namespace does not exist.
    Safely registers the given namespace.
    void
    Safely registers all namespaces in the given map from prefixes to namespace URIs.

    Methods inherited from class java.lang.Object

    equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

  • Constructor Details

    • NamespaceHelper

      public NamespaceHelper(Session session)
      Creates a namespace helper for the given session.
      Parameters:
      session - current session
  • Method Details

    • getNamespaces

      public Map<String,String> getNamespaces() throws RepositoryException
      Returns a map containing all prefix to namespace URI mappings of the current session. The returned map is newly allocated and can can be freely modified by the caller.
      Returns:
      namespace mappings
      Throws:
      RepositoryException - if the namespaces could not be retrieved
      See Also:
    • getPrefix

      public String getPrefix(String uri) throws RepositoryException
      Returns the prefix mapped to the given namespace URI in the current session, or null if the namespace does not exist.
      Parameters:
      uri - namespace URI
      Returns:
      namespace prefix, or null
      Throws:
      RepositoryException - if the namespace could not be retrieved
      See Also:
    • getURI

      public String getURI(String prefix) throws RepositoryException
      Returns the namespace URI mapped to the given prefix in the current session, or null if the namespace does not exist.
      Parameters:
      prefix - namespace prefix
      Returns:
      namespace prefix, or null
      Throws:
      RepositoryException - if the namespace could not be retrieved
      See Also:
    • getJcrName

      public String getJcrName(String uri, String name) throws NamespaceException, RepositoryException
      Returns the prefixed JCR name for the given namespace URI and local name in the current session.
      Parameters:
      uri - namespace URI
      name - local name
      Returns:
      prefixed JCR name
      Throws:
      NamespaceException - if the namespace does not exist
      RepositoryException - if the namespace could not be retrieved
    • getJcrName

      public String getJcrName(String name) throws IllegalArgumentException, RepositoryException
      Replaces the standard jcr, nt, or mix prefix in the given name with the prefix mapped to that namespace in the current session.

      The purpose of this method is to make it easier to write namespace-aware code that uses names in the standard JCR namespaces. For example:

           node.getProperty(helper.getName("jcr:data"));
       
      Parameters:
      name - prefixed name using the standard JCR prefixes
      Returns:
      prefixed name using the current session namespace mappings
      Throws:
      IllegalArgumentException - if the prefix is unknown
      RepositoryException - if the namespace could not be retrieved
    • registerNamespace

      public String registerNamespace(String prefix, String uri) throws RepositoryException
      Safely registers the given namespace. If the namespace already exists, then the prefix mapped to the namespace in the current session is returned. Otherwise the namespace is registered to the namespace registry. If the given prefix is already registered for some other namespace or otherwise invalid, then another prefix is automatically generated. After the namespace has been registered, the prefix mapped to it in the current session is returned.
      Parameters:
      prefix - namespace prefix
      uri - namespace URI
      Returns:
      namespace prefix in the current session
      Throws:
      RepositoryException - if the namespace could not be registered
      See Also:
    • registerNamespaces

      public void registerNamespaces(Map<String,String> namespaces) throws RepositoryException
      Safely registers all namespaces in the given map from prefixes to namespace URIs.
      Parameters:
      namespaces - namespace mappings
      Throws:
      RepositoryException - if the namespaces could not be registered