Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members  

NotificationTypes.idl

Go to the documentation of this file.
00001 #ifndef NOTIFICATIONTYPES_IDL
00002 #define NOTIFICATIONTYPES_IDL
00003 
00004 #include <Reflective.idl>
00005 
00016 #pragma prefix "omg.org"
00017 
00018 #ifdef TAO12
00019 #define EventType _EventType
00020 #endif
00021 
00022 #ifdef TAO13
00023 #define EventType _EventType
00024 #define component _component
00025 #define Reflective ::Reflective
00026 #endif
00027 
00028 module NotificationTypes
00029 {
00033    typedef sequence <string> StringSet;
00034 
00035    interface NotificationTypesPackage;
00036    interface PropertyClass;
00037    interface Property;
00038 
00042    typedef sequence <Property> PropertyUList;
00043 
00044    interface EventTypeClass;
00045    interface EventType;
00046 
00050    typedef sequence <EventType> EventTypeSet;
00051 
00055    typedef sequence <EventType> EventTypeUList;
00056 
00057    interface EventTypeRepositoryClass;
00058    interface EventTypeRepository;
00059 
00063    typedef sequence <EventTypeRepository> EventTypeRepositoryUList;
00064 
00068    interface PropertyClass : Reflective::RefObject
00069    {
00070       // get all property including subtypes of property
00074       readonly attribute PropertyUList all_of_kind_property;
00075 
00076       // get all property excluding subtypes of property
00080       readonly attribute PropertyUList all_of_type_property;
00081 
00082       // Factory operation for Property objects
00090       Property create_property (in string name, in CORBA::TypeCode type_code)
00091          raises (Reflective::SemanticError);
00092 
00093    }; // end of interface PropertyClass
00094 
00098    interface Property : PropertyClass
00099    {
00106       string name()
00107          raises (Reflective::StructuralError,
00108                  Reflective::SemanticError);
00109 
00119       void set_name (in string new_value)
00120          raises (Reflective::SemanticError);
00121 
00128       CORBA::TypeCode type_code()
00129          raises (Reflective::StructuralError, Reflective::SemanticError);
00130 
00138       void set_type_code (in CORBA::TypeCode new_value)
00139          raises (Reflective::SemanticError);
00140    }; // end of interface Property
00141 
00145    interface EventTypeClass : Reflective::RefObject
00146    {
00147       // get all event_type including subtypes of event_type
00151       readonly attribute EventTypeUList all_of_kind_event_type;
00152 
00153       // get all event_type excluding subtypes of event_type
00158       readonly attribute EventTypeUList all_of_type_event_type;
00159 
00160       // Factory operation for EventType objects
00167       EventType create_event_type (in string domain, in string name)
00168          raises (Reflective::SemanticError);
00169    }; // end of interface EventTypeClass
00170 
00174    interface EventType : EventTypeClass
00175    {
00182       string domain()
00183          raises (Reflective::StructuralError,
00184                  Reflective::SemanticError);
00185 
00193       void set_domain (in string new_value)
00194          raises (Reflective::SemanticError);
00195 
00202       string name()
00203          raises (Reflective::StructuralError,
00204                  Reflective::SemanticError);
00205 
00212       void set_name (in string new_value)
00213          raises (Reflective::SemanticError);
00214 
00221       string get_full_name()
00222          raises (Reflective::SemanticError);
00223    }; // end of interface EventType
00224 
00228    exception InvalidName
00229    {
00230       string name;
00231    };
00232 
00236    exception UnknownDomain
00237    {
00238       string domain;
00239    };
00240 
00244    exception TypeNotFound
00245    {
00246       string name;
00247    };
00248 
00253    interface EventTypeRepositoryClass : Reflective::RefObject
00254    {
00255       // get all event_type_repository including subtypes of
00256       // event_type_repository
00260       readonly attribute EventTypeRepositoryUList
00261          all_of_kind_event_type_repository;
00262 
00263       // get all event_type_repository excluding subtypes of
00264       // event_type_repository
00269       readonly attribute EventTypeRepositoryUList
00270          all_of_type_event_type_repository;
00271 
00272       // Factory operation for EventTypeRepository objects
00281       EventTypeRepository create_event_type_repository (in StringSet supported_domains)
00282          raises (Reflective::AlreadyCreated,
00283                  Reflective::SemanticError);
00284    }; // end of interface EventTypeRepositoryClass
00285 
00290    interface EventTypeRepository : EventTypeRepositoryClass
00291    {
00297       StringSet supported_domains()
00298          raises (Reflective::SemanticError);
00299 
00312       EventType lookup (in string name, in string domain)
00313          raises (InvalidName, TypeNotFound, UnknownDomain,
00314                  Reflective::SemanticError);
00315 
00323       EventTypeUList events_in_domain (in string domain)
00324          raises (UnknownDomain, Reflective::SemanticError);
00325    }; // end of interface EventTypeRepository
00326 
00327    // data types for Association Contains
00332    struct ContainsLink
00333    {
00334       EventTypeRepository container;
00335       EventType contained;
00336    };
00337 
00341    typedef sequence <ContainsLink> ContainsLinkSet;
00342 
00350    interface Contains : Reflective::RefAssociation
00351    {
00356       ContainsLinkSet all_Contains_links();
00357 
00366       boolean exists (in EventTypeRepository container,
00367                       in EventType contained);
00368 
00376       EventTypeSet with_container (in EventTypeRepository container);
00377 
00383       EventTypeRepository with_contained (in EventType contained);
00384 
00394       void add (in EventTypeRepository container, in EventType contained)
00395          raises (Reflective::StructuralError,
00396                  Reflective::SemanticError);
00397 
00409       void modify_container (in EventTypeRepository container,
00410                              in EventType contained,
00411                              in EventTypeRepository new_container)
00412          raises (Reflective::StructuralError, Reflective::NotFound,
00413                  Reflective::SemanticError);
00414 
00435       void modify_contained (in EventTypeRepository container,
00436                              in EventType contained,
00437                              in EventType new_contained)
00438          raises (Reflective::StructuralError, Reflective::NotFound,
00439                  Reflective::SemanticError);
00440 
00449       void remove (in EventTypeRepository container, in EventType contained)
00450          raises (Reflective::StructuralError, Reflective::NotFound,
00451                  Reflective::SemanticError);
00452    };
00453 
00454    // data types for Association Inherits
00459    struct InheritsLink
00460    {
00461       EventType sub_type;
00462       EventType super_type;
00463    };
00464 
00468    typedef sequence <InheritsLink> InheritsLinkSet;
00469 
00477    interface Inherits : Reflective::RefAssociation
00478    {
00483       InheritsLinkSet all_Inherits_links();
00484 
00492       boolean exists (in EventType sub_type, in EventType super_type);
00493 
00499       EventType with_sub_type (in EventType sub_type);
00500 
00506       EventTypeSet with_super_type (in EventType super_type);
00507 
00524       void add (in EventType sub_type, in EventType super_type)
00525          raises (Reflective::StructuralError, Reflective::SemanticError);
00526 
00543       void modify_sub_type (in EventType sub_type,
00544                             in EventType super_type,
00545                             in EventType new_sub_type)
00546          raises (Reflective::StructuralError, Reflective::NotFound,
00547                  Reflective::SemanticError);
00548 
00564       void modify_super_type (in EventType sub_type,
00565                               in EventType super_type,
00566                               in EventType new_super_type)
00567          raises (Reflective::StructuralError, Reflective::NotFound,
00568                  Reflective::SemanticError);
00569 
00579       void remove (in EventType sub_type, in EventType super_type)
00580          raises (Reflective::StructuralError, Reflective::NotFound,
00581                  Reflective::SemanticError);
00582    };
00583 
00584    // data types for Association Imports
00589    struct ImportsLink
00590    {
00591       EventType importer;
00592       EventType imported;
00593    };
00594 
00598    typedef sequence <ImportsLink> ImportsLinkSet;
00599 
00607    interface Imports : Reflective::RefAssociation
00608    {
00613       ImportsLinkSet all_Imports_links();
00614 
00621       boolean exists (in EventType importer, in EventType imported);
00622 
00628       EventTypeSet with_importer (in EventType importer);
00629 
00636       EventTypeSet with_imported (in EventType imported);
00637 
00653       void add (in EventType importer, in EventType imported)
00654          raises (Reflective::StructuralError, Reflective::SemanticError);
00655 
00673       void modify_importer (in EventType importer,
00674                             in EventType imported,
00675                             in EventType new_importer)
00676          raises (Reflective::StructuralError, Reflective::NotFound,
00677                  Reflective::SemanticError);
00678 
00695       void modify_imported (in EventType importer,
00696                             in EventType imported,
00697                             in EventType new_imported)
00698          raises (Reflective::StructuralError, Reflective::NotFound,
00699                  Reflective::SemanticError);
00700 
00711       void remove (in EventType importer, in EventType imported)
00712          raises (Reflective::StructuralError, Reflective::NotFound,
00713                  Reflective::SemanticError);
00714    };
00715 
00716    // data types for Association Composes
00721    struct ComposesLink
00722    {
00723       EventType composition;
00724       Property component;
00725    };
00726 
00730    typedef sequence <ComposesLink> ComposesLinkSet;
00731 
00739    interface Composes : Reflective::RefAssociation
00740    {
00745       ComposesLinkSet all_Composes_links();
00746 
00753       boolean exists (in EventType composition, in Property component);
00754 
00760       PropertyUList with_composition (in EventType composition);
00761 
00767       EventType with_component (in Property component);
00768 
00783       void add (in EventType composition, in Property component)
00784          raises (Reflective::StructuralError, Reflective::SemanticError);
00785 
00803       void add_before_component (in EventType composition,
00804                                  in Property component,
00805                                  in Property before)
00806          raises (Reflective::StructuralError, Reflective::NotFound,
00807                  Reflective::SemanticError);
00808 
00827       void modify_composition (in EventType composition,
00828                                in Property component,
00829                                in EventType new_composition)
00830          raises (Reflective::StructuralError, Reflective::NotFound,
00831                  Reflective::SemanticError);
00832 
00849       void modify_component (in EventType composition,
00850                              in Property component,
00851                              in Property new_component)
00852          raises (Reflective::StructuralError, Reflective::NotFound,
00853                  Reflective::SemanticError);
00854 
00868       void remove (in EventType composition, in Property component)
00869          raises (Reflective::StructuralError, Reflective::NotFound,
00870                  Reflective::SemanticError);
00871    };
00872 
00878    interface NotificationTypesPackageFactory
00879    {
00885       NotificationTypesPackage create_notification_types_package ()
00886          raises (Reflective::SemanticError);
00887    };
00888 
00894    interface NotificationTypesPackage : Reflective::RefPackage
00895    {
00899       readonly attribute PropertyClass property_class_ref;
00900 
00904       readonly attribute EventTypeClass event_type_class_ref;
00905 
00909       readonly attribute EventTypeRepositoryClass
00910          event_type_repository_class_ref;
00911 
00915       readonly attribute Contains contains_ref;
00916 
00920       readonly attribute Inherits inherits_ref;
00921 
00925       readonly attribute Imports imports_ref;
00926 
00930       readonly attribute Composes composes_ref;
00931    };
00932 }; // end of module NotificationTypes
00933 
00934 #endif /* NOTIFICATIONTYPES_IDL */