/**
 *  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.Association
 *
 *  Using template :
 *        templates/1.3/keyInterface.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.AssociationKeyAdapter;

@XmlType
@XmlJavaTypeAdapter(value=AssociationKeyAdapter.class)

/**
 *  Public interface definition for AssociationKey.
 *
 * The <CODE>AssociationValue</CODE> is the base from which all association
 * interfaces are derived.
 * <p>
 * Associations are represented in the CBE package as managed entities
 * (according to the OSS through Java definition of managed entity).
 * <CODE>Association</CODE> instances have their own keys.
 *
 * <p>
 * The following attributes of an <CODE>AssociationValue</CODE> are set at creation:
 * <ul>
 * <li>EntityKey
 * <li>the key of object A (A end)
 * <li>the key of object Z (Z end)
 * </ul>
 * Note that other attributes could be defined by concrete association values
 * derived from this base interface. However these attributes should be specific
 * to this association and should not depend on the state of other objects.
 * <p>
 * The roles are captured in the definition of the association attributes
 * and in the corresponding {@link AssociationRule AssociationRule}.
 * For example in a "<CODE>SupportedBy</CODE>" type of association for one of the
 * objects will be defined an attribute "<CODE>supporting</CODE>" and "<CODE>supported</CODE>" for the other.
 * The corresponding <CODE>AssociationRule</CODE> will define the A and Z end roles as
 * "<CODE>supporting</CODE>" and "<CODE>supported</CODE>".
 * <p>
 * An {@link AssociationRule AssociationRule} is provided for every concrete
 * association type. The rule defines the constraints for this association type
 * (e.g. roles, cardinality, association constraints).
 * <p>
 * Associations are uniquely identified by their keys.
 * See {@link AssociationKey AssociationKey}
 * for more information.
 * <p>
 * The <CODE>AssociationValue</CODE> inherits from <CODE>ManagedEntityValue</CODE> all methods
 * for population, generic attribute access and serialization.
 *
 */
public interface AssociationKey 
	extends javax.oss.cbe.CBEManagedEntityKey {
}
