org.apache.directory.shared.ldap.util
Class NamespaceTools

java.lang.Object
  extended by org.apache.directory.shared.ldap.util.NamespaceTools

public class NamespaceTools
extends java.lang.Object

Tools dealing with common Naming operations.

Version:
$Revision: 649846 $
Author:
Apache Directory Project

Constructor Summary
NamespaceTools()
           
 
Method Summary
static java.lang.String[] getCompositeComponents(java.lang.String compositeNameComponent)
          Gets the '+' appended components of a composite name component.
static java.lang.String getRdnAttribute(java.lang.String rdn)
          Gets the attribute of a single attribute rdn or name component.
static java.lang.String getRdnValue(java.lang.String rdn)
          Gets the value of a single name component of a distinguished name.
static javax.naming.Name getRelativeName(javax.naming.Name ancestor, javax.naming.Name descendant)
          Gets the relative name between an ancestor and a potential descendant.
static boolean hasCompositeComponents(java.lang.String name)
          Checks to see if a name has name complex name components in it.
static java.lang.String inferLdapName(java.lang.String realm)
          Uses the algorithm in RFC 2247 to infer an LDAP name from a Kerberos realm name or a DNS domain name.
static boolean isDescendant(javax.naming.Name ancestor, javax.naming.Name descendant)
          Tests to see if a candidate entry is a descendant of a base.
static boolean isSibling(javax.naming.Name name1, javax.naming.Name name2)
          Checks to see if two names are siblings.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

NamespaceTools

public NamespaceTools()
Method Detail

getRdnAttribute

public static java.lang.String getRdnAttribute(java.lang.String rdn)
Gets the attribute of a single attribute rdn or name component.

Parameters:
rdn - the name component
Returns:
the attribute name TODO the name rdn is misused rename refactor this method

getRdnValue

public static java.lang.String getRdnValue(java.lang.String rdn)
Gets the value of a single name component of a distinguished name.

Parameters:
rdn - the name component to get the value from
Returns:
the value of the single name component TODO the name rdn is misused rename refactor this method

isSibling

public static boolean isSibling(javax.naming.Name name1,
                                javax.naming.Name name2)
                         throws javax.naming.NamingException
Checks to see if two names are siblings.

Parameters:
name1 - the first name
name2 - the second name
Returns:
true if the names are siblings, false otherwise.
Throws:
javax.naming.NamingException

isDescendant

public static boolean isDescendant(javax.naming.Name ancestor,
                                   javax.naming.Name descendant)
Tests to see if a candidate entry is a descendant of a base.

Parameters:
ancestor - the base ancestor
descendant - the candidate to test for descendancy
Returns:
true if the candidate is a descendant

getRelativeName

public static javax.naming.Name getRelativeName(javax.naming.Name ancestor,
                                                javax.naming.Name descendant)
                                         throws javax.naming.NamingException
Gets the relative name between an ancestor and a potential descendant. Both name arguments must be normalized. The returned name is also normalized.

Parameters:
ancestor - the normalized distinguished name of the ancestor context
descendant - the normalized distinguished name of the descendant context
Returns:
the relatve normalized name between the ancestor and the descendant contexts
Throws:
javax.naming.NamingException - if the contexts are not related in the ancestual sense

inferLdapName

public static java.lang.String inferLdapName(java.lang.String realm)
Uses the algorithm in RFC 2247 to infer an LDAP name from a Kerberos realm name or a DNS domain name.

Parameters:
realm - the realm or domain name
Returns:
the LDAP name for the realm or domain

getCompositeComponents

public static java.lang.String[] getCompositeComponents(java.lang.String compositeNameComponent)
                                                 throws javax.naming.NamingException
Gets the '+' appended components of a composite name component.

Parameters:
compositeNameComponent - a single name component not a whole name
Returns:
the components of the complex name component in order
Throws:
javax.naming.NamingException - if nameComponent is invalid (starts with a +)

hasCompositeComponents

public static boolean hasCompositeComponents(java.lang.String name)
                                      throws javax.naming.NamingException
Checks to see if a name has name complex name components in it.

Parameters:
name - The name to check
Returns:
true if the name has composite components
Throws:
javax.naming.NamingException - If the name is invalid


Copyright © 2003-2011 Apache Software Foundation. All Rights Reserved.