Changes in SDAI_dictionary_schema for version 3.6.
Explicit attributes changed into derived ones
in entity attribute:
- parent_entity
in entity declaration:
- parent_schema
in entity entity_definition
- supertypes
in entity sub_supertype_constraint:
- super_type
in entity subtype_expression:
- operands
Also added a new type:
TYPE declaration_scope_type = SELECT
(algorithm_definition,
global_rule);
END_TYPE;
Added new entity:
ENTITY inner_declaration SUBTYPE OF (declaration);
scope : declaration_scope_type;
END_ENTITY;
A corresponding change made in declaration:
ENTITY declaration
ABSTRACT SUPERTYPE OF (ONEOF(inner_declaration,
interfaced_declaration, local_declaration)
AND ONEOF(data_type_declaration, rule_declaration,
algorithm_declaration, constant_declaration, map_declaration,
subtype_constraint_declaration));
Incompatibilities in writing JSDAI applications caused by the above changes in SDAI_dictionary_schema
Methods no longer available:
- in CAttribute:public static int usedinParent_entity(EAttribute type, EEntity_definition instance, ASdaiModel domain, AEntity result) throws SdaiException {...}
- in CDeclaration (and its subtypes):public static int usedinParent_schema(EDeclaration type, ESchema_definition instance, ASdaiModel domain, AEntity result) throws SdaiException {...}
- in CEntity_definition:public static int usedinSupertypes(EEntity_definition type, EEntity_definition instance, ASdaiModel domain, AEntity result) throws SdaiException {...}
- in CSub_supertype_constraint:public static int usedinSuper_type(ESub_supertype_constraint type, EEntity_definition instance, ASdaiModel domain, AEntity result) throws SdaiException {...}
- in CSubtype_expression:public static int usedinOperands(ESubtype_expression type, EEntity instance, ASdaiModel domain, AEntity result) throws SdaiException {...}
NOTE: the corresponding methods for attributes of more general types are still available:
- usedinParent_entity(..) - usedinParent(...)
- usedinParent_schema(...) - usedinParent(...)
- usedinSupertypes(...) - usedinGeneric_supertypes(...)
- usedinSuper_type(...) - usedinGeneric_supertype(...)
- usedinOperands(...) - usedinGeneric_operands(...)
Methods that are still present but may require changes in applications
- in CAttribute:public static jsdai.dictionary.EAttribute attributeParent_entity(EAttribute type) throws SdaiException {...}
- in CDeclaration (and its subtypes:public static jsdai.dictionary.EAttribute attributeParent_schema(EDeclaration type) throws SdaiException {...}
- in CEntity_definition:public static jsdai.dictionary.EAttribute attributeSupertypes(EEntity_definition type) throws SdaiException {...}
- in CSub_supertype_constraint:public static jsdai.dictionary.EAttribute attributeSuper_type(ESub_supertype_constraint type) throws SdaiException {...}
- in CSubtype_expression:public static jsdai.dictionary.EAttribute attributeOperands(ESubtype_expression type) throws SdaiException {...}
NOTE: These methods may cause incompatibilities if the returned EAttribute value is attempted to cast to EExplicit_attribute because instead of instances of EExplicit_attribute now instances of EDerived_attribute are returned.
For example, this code is no longer correct:
EExplicit_attribute ea = (EExplicit_attribute)attr_inst.attributeParent_entity(null);