/**
 *  Generated with Tigerstripe(tm) Tigerstripe Workbench Feature 2.2.0.v20070419-1556-GFEkmUll2-0111E.
 *
 *  Tigerstripe(tm) is a registered trademark of Tigerstripe, Inc.
 *
 *  Plugin  : Sun Microsystems Inc./SunJavaSpecificationPlugin(1.0) (1.0)
 *
 *  DO NOT EDIT THIS CODE WAS AUTOMATICALLY GENERATED
 *
 *  Generated from source Tigerstipe Artifact :
 *        javax.oss.cbe.HierarchicalPrimaryKey
 *
 *  Using template :
 *        templates/1.3/datatypeInterface.vm
 *
 * Copyright 2002-2007 The Members of the OSS through Java(TM) Initiative.
 * All rights reserved. Use is subject to license terms.
 */
package javax.oss.cbe;

import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import javax.xml.bind.annotation.XmlType;

import ossj.common.cbe.HierarchicalPrimaryKeyAdapter;

@XmlType
@XmlJavaTypeAdapter(value=HierarchicalPrimaryKeyAdapter.class)

/**
 *  Public interface definition for HierarchicalPrimaryKey.
 *
 * The <CODE>HierarchicalPrimaryKey</CODE> interface represents an inventory
 * key based on a hierarchy. The DN (Distiguished Name) of the inventory object is
 * composed of the RDN (Relative Distiguished Name)and the DN of the parent.
 * In case the entity is directly under the top of the hierarchy (i.e. the parent is "top")
 * the parent DN is a null <CODE>String</CODE> .
 * The HierarchicalName interface (see the interface definition below) represents a key based
 * on a hierarchy, e.g., X.500 or LDAP directory. Every object in the hierarchy has a
 * Distinguished Name (DN), which is made up of a sequence of Relative Distinguished Names (RDNs).
 * The RDNs are separated by commas. An RDN is unique for given base in the hierarchy.
 * A DN is unique to the entire hierarchy.
 * Here is an example of a DN:
 * "network=Canada,subnetwork=Ottawa,device=OttawaRouter1"
 * The RDNs of this DN are:
 * <ul>
 * <li>RDN => network=Canada
 * <li>RDN => subnetwork=Ottawa
 * <li>RDN => device=OttawaRouter1
 * </ul>
 * The parent DN of the "OttawaRouter1" object is "network=Canada,subnetwork=Ottawa".
 *
 */
public interface HierarchicalPrimaryKey 
	extends java.lang.Cloneable, java.io.Serializable {


    /**
     * Deep copy of this object.
     *
     * @return The cloned object
     */
    public Object clone();


    /**
     *
     * Attribute getter for rdn.
     *
     *
     * Set the RDN (Relative Distiguished Name) of
     * the named object.
     *
     * @return the value of the rdn field.
     *
     */
    public java.lang.String getRdn( );


    /**
     * Attribute setter for rdn.
     *
     *
     * Set the RDN (Relative Distiguished Name) of
     * the named object.
     * @param value - the value to use to set the rdn attribute.
     * @throws java.lang.IllegalArgumentException
     *         Thrown to report that a bad argument was provided to the method.
     *
     */
    public void setRdn(java.lang.String value)
        throws
        java.lang.IllegalArgumentException;

    /**
     *
     * Attribute getter for parentDn.
     *
     *
     * Set the DN (Distiguished Name) of the parent object
     *
     * @return the value of the parentDn field.
     *
     */
    public java.lang.String getParentDn( );


    /**
     * Attribute setter for parentDn.
     *
     *
     * Set the DN (Distiguished Name) of the parent object
     * @param value - the value to use to set the parentDn attribute.
     * @throws java.lang.IllegalArgumentException
     *         Thrown to report that a bad argument was provided to the method.
     *
     */
    public void setParentDn(java.lang.String value)
        throws
        java.lang.IllegalArgumentException;


}
