// $Id: CCM_Entity2Context.idl 83421 2008-10-23 09:52:43Z johnnyw $

#if !defined (CCM_ENTITY2CONTEXT_IDL)
#define CCM_ENTITY2CONTEXT_IDL

#include "ccm/CCM_Session2Context.idl"
#include "ccm/CCM_EntityContext.idl"
#include "ccm/CCM_ComponentId.idl"

// *************** Extended Container Interfaces ***************

module Components
{
  typeprefix Components "omg.org";

  local interface Entity2Context : EntityContext, CCM2Context
  {
    ComponentId get_component_id ()
      raises (IllegalState);

    ComponentId create_component_id (in FacetId target_facet,
                                     in SegmentId target_segment,
                                     in SegmentDescrSeq seq_descrs);

    ComponentId create_monolithic_component_id (in FacetId target_facet,
                                                in StateIdValue sid);

    Object create_ref_from_cid (in CORBA::RepositoryId repid,
                                in ComponentId cid);

    ComponentId get_cid_from_ref (in Object objref)
      raises (BadComponentReference);
  };
};
#endif /* CCM_ENTITY2CONTEXT_IDL */
