[ref_impl_eiffel] [879] Various validation improvements:
Revision: 879
Author: thomas.beale
Date: 2009-07-27 15:36:58 +0100 (Mon, 27 Jul 2009)
Log Message:
-----------
Various validation improvements:
- major improvements in organisation of validation logic
- removal of some obsolete validation
- move of ARCHETYPE_CONSTRAINT.is_valid logic, which is no longer needed
- addition of ARCHETYPE_CONSTRAINT.rem_descriptor, to allow live ref to
the meta-model **
- addition of basic strict/non-strict compilation option
** This introduces a new problem - we use deep_twin to generate initial
flat form archetypes from differential form archetypes; e.g. in
FLAT_ARCHETYPE.make_from_differential - at the moment this will cause
massive in-memory copying of the meta-model structure becuase of the
rm_descriptor links. A solution is till to be found.
TODO
- both top-level and specialised archetypes need to be compressed with
the RM to pick up existence, cardinality, occurrences. Currently only
top-level ones are. (ARCHETYPE_FLATTENER).
- connect in post-flattening validation; posibly create a new validator
class to do this? Currently only logic is to check for occurrences v
cardinality; logic is at bottom of ARCHETYPE_VALIDATOR.
Modified Paths:
--------------
BRANCHES/specialisation/apps/adl_workbench/src/main/constants_imp.e
BRANCHES/specialisation/apps/adl_workbench/src/main/main_window.e
BRANCHES/specialisation/apps/adl_workbench/src/main/option_dialog.e
BRANCHES/specialisation/apps/adl_workbench/src/main/option_dialog_imp.e
BRANCHES/specialisation/apps/adl_workbench/src/main/shared_ui_resources.e
BRANCHES/specialisation/apps/adl_workbench/src/main/system_interface.xml
BRANCHES/specialisation/components/adl_parser/src/syntax/cadl/cadl_engine.e
BRANCHES/specialisation/components/adl_parser/src/syntax/cadl/parser/cadl_validator.e
BRANCHES/specialisation/components/adl_parser/src/syntax/cadl/parser/cadl_validator.y
BRANCHES/specialisation/components/archetype_repository/src/directory/arch_rep_archetype.e
BRANCHES/specialisation/components/reference_model_checker/src/model_access.e
BRANCHES/specialisation/libraries/common_libs/src/basic/multiplicity_interval.e
BRANCHES/specialisation/libraries/common_libs/src/structures/object_graph/path/og_path.e
BRANCHES/specialisation/libraries/common_libs/src/utility/error_reporting/in_memory_message_db.e
BRANCHES/specialisation/libraries/openehr/src/am/archetype/archetype_path_analyser.e
BRANCHES/specialisation/libraries/openehr/src/am/archetype/archetype_validator.e
BRANCHES/specialisation/libraries/openehr/src/am/archetype/comparator/archetype_flattener.e
BRANCHES/specialisation/libraries/openehr/src/am/archetype/constraint_model/archetype_constraint.e
BRANCHES/specialisation/libraries/openehr/src/am/archetype/constraint_model/archetype_internal_ref.e
BRANCHES/specialisation/libraries/openehr/src/am/archetype/constraint_model/c_attribute.e
BRANCHES/specialisation/libraries/openehr/src/am/archetype/constraint_model/c_complex_object.e
BRANCHES/specialisation/libraries/openehr/src/am/archetype/constraint_model/c_object.e
BRANCHES/specialisation/libraries/openehr/src/am/archetype/constraint_model/c_primitive_object.e
BRANCHES/specialisation/libraries/openehr/src/am/archetype/constraint_model/c_unidentified_node_checker.e
BRANCHES/specialisation/libraries/openehr/src/am/archetype/constraint_model/constraint_ref.e
BRANCHES/specialisation/libraries/openehr/src/am/archetype/ontology/archetype_ontology.e
BRANCHES/specialisation/libraries/openehr/src/am/archetype/shared_application_context.e
BRANCHES/specialisation/libraries/openehr/src/rm/common/resource/authored_resource_validator.e