Class: Lutaml::UmlRepository::Validators::RepositoryValidator
- Inherits:
-
Object
- Object
- Lutaml::UmlRepository::Validators::RepositoryValidator
- Defined in:
- lib/lutaml/uml_repository/validators/repository_validator.rb
Overview
RepositoryValidator validates the consistency and integrity of a UML repository
Performs comprehensive validation checks including:
-
Type reference validation (checking all attribute types exist)
-
Generalization reference validation (checking parent classes exist)
-
Circular inheritance detection
-
Association reference validation
-
Multiplicity validation
Constant Summary collapse
- PRIMITIVE_TYPES =
Primitive types that don’t need to be resolved
%w[ String Integer Boolean Date DateTime Float Double Long Short Byte Char Time Decimal UnlimitedNatural Real ].freeze
Instance Method Summary collapse
-
#initialize(document, indexes) ⇒ RepositoryValidator
constructor
A new instance of RepositoryValidator.
-
#validate(verbose: false) ⇒ ValidationResult
Validate the repository and return results.
Constructor Details
#initialize(document, indexes) ⇒ RepositoryValidator
Returns a new instance of RepositoryValidator.
34 35 36 37 38 39 |
# File 'lib/lutaml/uml_repository/validators/repository_validator.rb', line 34 def initialize(document, indexes) @document = document @indexes = indexes @errors = [] @warnings = [] end |
Instance Method Details
#validate(verbose: false) ⇒ ValidationResult
Validate the repository and return results
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'lib/lutaml/uml_repository/validators/repository_validator.rb', line 45 def validate(verbose: false) # rubocop:disable Metrics/MethodLength @verbose = verbose @validation_details = [] if verbose check_type_references check_generalization_references # DISABLED: check_circular_inheritance - has bugs with name resolution check_association_references check_multiplicities ValidationResult.new( valid: @errors.empty?, errors: @errors, warnings: @warnings, external_references: @external_references || [], validation_details: @validation_details, ) end |