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
00074 readonly attribute PropertyUList all_of_kind_property;
00075
00076
00080 readonly attribute PropertyUList all_of_type_property;
00081
00082
00090 Property create_property (in string name, in CORBA::TypeCode type_code)
00091 raises (Reflective::SemanticError);
00092
00093 };
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 };
00141
00145 interface EventTypeClass : Reflective::RefObject
00146 {
00147
00151 readonly attribute EventTypeUList all_of_kind_event_type;
00152
00153
00158 readonly attribute EventTypeUList all_of_type_event_type;
00159
00160
00167 EventType create_event_type (in string domain, in string name)
00168 raises (Reflective::SemanticError);
00169 };
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 };
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
00256
00260 readonly attribute EventTypeRepositoryUList
00261 all_of_kind_event_type_repository;
00262
00263
00264
00269 readonly attribute EventTypeRepositoryUList
00270 all_of_type_event_type_repository;
00271
00272
00281 EventTypeRepository create_event_type_repository (in StringSet supported_domains)
00282 raises (Reflective::AlreadyCreated,
00283 Reflective::SemanticError);
00284 };
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 };
00326
00327
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
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
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
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 };
00933
00934 #endif