net.handle.hdllib
Class NamespaceInfo

java.lang.Object
  extended by net.handle.hdllib.NamespaceInfo

public class NamespaceInfo
extends java.lang.Object

Object containing information about a handle namespace. A namespace is basically a set of handles under a prefix and is usually identified by a prefix handle. The prefix handle can be a local or global handle. It usually consists of everything before the first slash of a handle identifer, or it can be a local prefix which includes the global prefix and also some part of the identifer after the slash. A handle could be contained within multiple nested namespaces.


Field Summary
static java.lang.String CONTACT_TAG
           
static java.lang.String DELEGATE_TAG
           
static java.lang.String LOCAL_DEL_ATT
           
static char LOCAL_DELEGATION_DELIMITER
           
static java.lang.String LOCATIONS_TAG
           
static java.lang.String PREFIX_DEL_ATT
           
static java.lang.String PUBKEY_TAG
           
static java.lang.String STATUS_ACTIVE
           
static java.lang.String STATUS_INACTIVE
           
static java.lang.String STATUS_MSG_TAG
           
static java.lang.String STATUS_TAG
           
static java.lang.String TEMPLATE_DELIMITER_ATT
           
static java.lang.String TEMPLATE_TAG
           
 
Constructor Summary
NamespaceInfo()
          Construct a new namespace information record, with the default settings
NamespaceInfo(byte[] rawInfo)
           
NamespaceInfo(HandleValue namespaceValue)
           
 
Method Summary
 boolean delegatesLocalNames()
          Return whether or not names under this namespace can be delegated to other handle servers based on the local part of the handle (everything after the first slash).
 boolean delegatesPrefixes()
          Return whether or not names under this namespace can be delegated to other handle servers based on the prefix part of the handle (everything before the first slash).
 net.cnri.simplexml.XTag getInheritedTag(java.lang.String name)
           
 java.lang.String getLocationTemplateHandle()
          Return the handle containing the 10320/loc values that provide a set of locations for all handles under this namespace.
 java.lang.String getNamespaceStatus()
          Return the status of this namespace as a String.
 NamespaceInfo getParentNamespace()
          Get the parent for this namespace.
 java.security.PublicKey[] getPublicKeys()
          Return a list of public keys that can sign values within this namespace.
 java.lang.String getResponsiblePartyContactAddress()
          Return an email address for the person or company that is responsible for this namespace.
 java.lang.String getStatusMessage()
          Return a message that can be presented to a user who tries to resolve an identifier under this namespace if the namespace status is not active.
 void setParentNamespace(NamespaceInfo parent)
          Set the parent for this namespace.
 HandleValue[] templateConstruct(HandleValue[] origvals, java.lang.String handle, java.lang.String base, java.lang.String extension, boolean caseSensitive, HandleResolver resolver, short recursionCount)
           
 java.lang.String templateDelimiter()
          Return whether or not names under this namespace can be templated
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

STATUS_ACTIVE

public static final java.lang.String STATUS_ACTIVE
See Also:
Constant Field Values

STATUS_INACTIVE

public static final java.lang.String STATUS_INACTIVE
See Also:
Constant Field Values

PUBKEY_TAG

public static final java.lang.String PUBKEY_TAG
See Also:
Constant Field Values

CONTACT_TAG

public static final java.lang.String CONTACT_TAG
See Also:
Constant Field Values

STATUS_MSG_TAG

public static final java.lang.String STATUS_MSG_TAG
See Also:
Constant Field Values

STATUS_TAG

public static final java.lang.String STATUS_TAG
See Also:
Constant Field Values

DELEGATE_TAG

public static final java.lang.String DELEGATE_TAG
See Also:
Constant Field Values

LOCAL_DEL_ATT

public static final java.lang.String LOCAL_DEL_ATT
See Also:
Constant Field Values

PREFIX_DEL_ATT

public static final java.lang.String PREFIX_DEL_ATT
See Also:
Constant Field Values

LOCAL_DELEGATION_DELIMITER

public static final char LOCAL_DELEGATION_DELIMITER
See Also:
Constant Field Values

TEMPLATE_TAG

public static final java.lang.String TEMPLATE_TAG
See Also:
Constant Field Values

LOCATIONS_TAG

public static final java.lang.String LOCATIONS_TAG
See Also:
Constant Field Values

TEMPLATE_DELIMITER_ATT

public static final java.lang.String TEMPLATE_DELIMITER_ATT
See Also:
Constant Field Values
Constructor Detail

NamespaceInfo

public NamespaceInfo(HandleValue namespaceValue)
              throws HandleException
Throws:
HandleException

NamespaceInfo

public NamespaceInfo(byte[] rawInfo)
              throws HandleException
Throws:
HandleException

NamespaceInfo

public NamespaceInfo()
Construct a new namespace information record, with the default settings

Method Detail

setParentNamespace

public void setParentNamespace(NamespaceInfo parent)
Set the parent for this namespace. This should be called when resolving an identifier that is contained within multiple nested namespaces.


getParentNamespace

public NamespaceInfo getParentNamespace()
Get the parent for this namespace. This can be useful for tracing back namespaces when debugging or when verifying identifiers or sub-namespaces based on signatures applied by parent namespaces. If there is no higher level namespace, then this will return null;


getResponsiblePartyContactAddress

public java.lang.String getResponsiblePartyContactAddress()
Return an email address for the person or company that is responsible for this namespace.


getStatusMessage

public java.lang.String getStatusMessage()
Return a message that can be presented to a user who tries to resolve an identifier under this namespace if the namespace status is not active.


getNamespaceStatus

public java.lang.String getNamespaceStatus()
Return the status of this namespace as a String. Currently known values are "active" and "inactive" although it is possible that other values will be used in the future.


delegatesLocalNames

public boolean delegatesLocalNames()
Return whether or not names under this namespace can be delegated to other handle servers based on the local part of the handle (everything after the first slash).


delegatesPrefixes

public boolean delegatesPrefixes()
Return whether or not names under this namespace can be delegated to other handle servers based on the prefix part of the handle (everything before the first slash).


getLocationTemplateHandle

public java.lang.String getLocationTemplateHandle()
Return the handle containing the 10320/loc values that provide a set of locations for all handles under this namespace.


templateDelimiter

public java.lang.String templateDelimiter()
Return whether or not names under this namespace can be templated


templateConstruct

public HandleValue[] templateConstruct(HandleValue[] origvals,
                                       java.lang.String handle,
                                       java.lang.String base,
                                       java.lang.String extension,
                                       boolean caseSensitive,
                                       HandleResolver resolver,
                                       short recursionCount)

getInheritedTag

public net.cnri.simplexml.XTag getInheritedTag(java.lang.String name)

getPublicKeys

public java.security.PublicKey[] getPublicKeys()
Return a list of public keys that can sign values within this namespace. Keep in mind that these keys should not be considered valid unless the HandleValue that was used to construct this object was verified in some way, such as with a signed handle response or using the SecureResolver.


toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object