// This file contains the base OMG IDL module for MOF Repositories. // // Editor: Dr. Philippe Merle - LIFL & INRIA // ORBacus specific #pragma TypeCode // ISSUE: Identifiers of the CCM metamodels must not be // named as IDL2/IDL3/PSDL/CIDL keywords. // ISSUE: Here IDL keywords are escaped. // #define Supports _Supports #define supports _supports #define factory _factory // ISSUE: Here CCM IDL keywords are escaped. // #define emits _emits #define consumes _consumes #define publishes _publishes #define provides _provides #define component _component #define finder _finder #define home _home #define multiple _multiple #define uses _uses // MOF Reflective APIs. // #pragma prefix "mof.omg.org" module Reflective { interface RefBaseObject; interface RefObject; typedef sequence < RefObject > RefObjectUList; typedef sequence < RefObject > RefObjectSet; interface RefAssociation; interface RefPackage; typedef RefObject DesignatorType; typedef any _ValueType; typedef sequence < _ValueType > ValueTypeList; typedef sequence < RefObject, 2 > Link; typedef sequence LinkSet; const string UNDERFLOW_VIOLATION = "org.omg.mof:structural.underflow"; const string OVERFLOW_VIOLATION = "org.omg.mof:structural.overflow"; const string DUPLICATE_VIOLATION = "org.omg.mof:structural.duplicate"; const string REFERENCE_CLOSURE_VIOLATION = "org.omg.mof:structural.reference_closure"; const string SUPERTYPE_CLOSURE_VIOLATION = "org.omg.mof:structural.supertype_closure"; const string COMPOSITION_CYCLE_VIOLATION = "org.omg.mof:structural.composition_cycle"; const string COMPOSITION_CLOSURE_VIOLATION = "org.omg.mof:structural.composition_closure"; const string INVALID_OBJECT_VIOLATION = "org.omg.mof:structural.invalid_object"; const string NIL_OBJECT_VIOLATION = "org.omg.mof:structural.nil_object"; const string INACCESSIBLE_OBJECT_VIOLATION = "org.omg.mof:structural.inaccessible_object"; const string ALREADY_EXISTS_VIOLATION = "org.omg.mof:structural.already_exists"; const string INVALID_DESIGNATOR_VIOLATION = "org.omg.mof:reflective.invalid_designator"; const string WRONG_DESIGNATOR_DESIGNATOR_VIOLATION = "org.omg.mof:reflective.wrong_designator_kind"; const string UNKNOWN_DESIGNATOR_VIOLATION = "org.omg.mof:reflective.unknown_designator"; const string ABSTRACT_CLASS_VIOLATION = "org.omg.mof:reflective.abstract_class"; const string NOT_CHANGEABLE_VIOLATION = "org.omg.mof:reflective.not_changeable"; const string NOT_PUBLIC_VIOLATION = "org.omg.mof:reflective.not_public"; const string WRONG_SCOPE_VIOLATION = "org.omg.mof:reflective.wrong_scope"; const string WRONG_MULTIPLICITY_VIOLATION = "org.omg.mof:reflective.wrong_multiplicity"; const string WRONG_TYPE_VIOLATION = "org.omg.mof:reflective.wrong_type"; const string WRONG_NUMBER_PARAMETERS_VIOLATION ="org.omg.mof:reflective.wrong_number_parameters"; const string INVALID_DELETION_VIOLATION = "org.omg.mof:reflective.invalid_deletion"; struct NamedValueType { string name; _ValueType value; }; typedef sequence < NamedValueType > NamedValueList; exception MofError { string error_kind; RefObject element_in_error; NamedValueList extra_info; string error_description; }; exception NotFound {}; exception NotSet {}; exception BadPosition { unsigned long current_size; }; exception OtherException { DesignatorType exception_designator; ValueTypeList exception_values; }; interface RefBaseObject { string ref_mof_id (); DesignatorType ref_meta_object (); boolean ref_itself (in RefBaseObject other_object); RefPackage ref_immediate_package (); RefPackage ref_outermost_package (); void ref_delete () raises (MofError); }; // end of RefBaseObject interface interface RefObject : RefBaseObject { boolean ref_is_instance_of (in DesignatorType some_class, in boolean consider_subtypes); RefObject ref_create_instance (in ValueTypeList args) raises (MofError); RefObjectSet ref_all_objects (in boolean include_subtypes); void ref_set_value (in DesignatorType feature, in _ValueType new_value) raises (MofError); _ValueType ref_value (in DesignatorType feature) raises (NotSet, MofError); void ref_unset_value () raises (MofError); void ref_add_value (in DesignatorType feature, in _ValueType new_element) raises (MofError); void ref_add_value_before (in DesignatorType feature, in _ValueType new_element, in _ValueType before_element) raises (NotFound, MofError); void ref_add_value_at (in DesignatorType feature, in _ValueType new_element, in unsigned long position) raises (BadPosition, MofError); void ref_modify_value (in DesignatorType feature, in _ValueType old_element, in _ValueType new_element) raises (NotFound, MofError); void ref_modify_value_at (in DesignatorType feature, in _ValueType new_element, in unsigned long position) raises (BadPosition, MofError); void ref_remove_value (in DesignatorType feature, in _ValueType existing_element) raises (NotFound, MofError); void ref_remove_value_at (in DesignatorType feature, in unsigned long position) raises (BadPosition, MofError); RefObject ref_immediate_composite (); RefObject ref_outermost_composite (); _ValueType ref_invoke_operation (in DesignatorType requested_operation, inout ValueTypeList args) raises (OtherException, MofError); }; // end of RefObject interface interface RefAssociation : RefBaseObject { LinkSet ref_all_links (); boolean ref_link_exists (in Link some_link) raises (MofError); RefObjectUList ref_query (in DesignatorType query_end, in RefObject query_object) raises (MofError); void ref_add_link (in Link new_link) raises (MofError); void ref_add_link_before (in Link new_link, in DesignatorType position_end, in RefObject before) raises (NotFound, MofError); void ref_modify_link (in Link old_link, in DesignatorType position_end, in RefObject new_object) raises (NotFound, MofError); void ref_remove_link (in Link old_link) raises (NotFound, MofError); }; // end of RefAssociation interface interface RefPackage : RefBaseObject { RefObject ref_class_ref (in DesignatorType class) raises (MofError); RefAssociation ref_association_ref (in DesignatorType association) raises (MofError); RefPackage ref_package_ref (in DesignatorType package) raises (MofError); }; // end of RefPackage interface }; // end of Reflective module