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

#if !defined (CCM_COMPONENTID_IDL)
#define CCM_COMPONENTID_IDL

#include "ccm/CCM_StateIdFactory.idl"

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

module Components
{
  typeprefix Components "omg.org";

  local interface ComponentId
  {
    FacetId get_target_facet();

    SegmentId get_target_segment();

    StateIdValue get_target_state_id (in StateIdFactory sid_factory)
      raises (InvalidStateIdData);

    StateIdValue get_segment_state_id (in SegmentId seg,
                                       in StateIdFactory sid_factory)
      raises (InvalidStateIdData);

    ComponentId create_with_new_target (in FacetId new_target_facet,
                                        in SegmentId new_target_segment);

    SegmentDescrSeq get_segment_descrs (in StateIdFactory sid_factory)
      raises (InvalidStateIdData);
  };
};
#endif /* CCM_COMPONENTID_IDL */
