Class: Lutaml::UmlRepository::Validators::ValidationResult

Inherits:
Object
  • Object
show all
Defined in:
lib/lutaml/uml_repository/validators/repository_validator.rb

Overview

ValidationResult encapsulates the results of repository validation

Examples:

Checking validation results

result = validator.validate
puts "Valid: #{result.valid?}"
puts "Errors: #{result.errors.size}"
puts "Warnings: #{result.warnings.size}"
puts "External refs: #{result.external_references.size}"

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(valid:, errors:, warnings:, external_references: [], validation_details: nil) ⇒ ValidationResult

information

Parameters:

  • valid (Boolean)

    Whether validation passed

  • errors (Array<String>)

    Validation errors

  • warnings (Array<String>)

    Validation warnings

  • external_references (Array<Hash>) (defaults to: [])

    External type references

  • validation_details (Array<Hash>, nil) (defaults to: nil)

    Detailed validation



348
349
350
351
352
353
354
355
356
357
358
# File 'lib/lutaml/uml_repository/validators/repository_validator.rb', line 348

def initialize(
  valid:, errors:, warnings:, external_references: [],
  validation_details: nil
)
  @valid = valid
  @errors = errors.freeze
  @warnings = warnings.freeze
  @external_references = external_references.freeze
  @validation_details = validation_details&.freeze
  freeze
end

Instance Attribute Details

#errorsArray<String> (readonly)

Returns Validation errors.

Returns:

  • (Array<String>)

    Validation errors



331
332
333
# File 'lib/lutaml/uml_repository/validators/repository_validator.rb', line 331

def errors
  @errors
end

#external_referencesArray<Hash> (readonly)

Returns External type references.

Returns:

  • (Array<Hash>)

    External type references



337
338
339
# File 'lib/lutaml/uml_repository/validators/repository_validator.rb', line 337

def external_references
  @external_references
end

#validation_detailsArray<Hash> (readonly)

Returns Detailed validation information.

Returns:

  • (Array<Hash>)

    Detailed validation information



340
341
342
# File 'lib/lutaml/uml_repository/validators/repository_validator.rb', line 340

def validation_details
  @validation_details
end

#warningsArray<String> (readonly)

Returns Validation warnings.

Returns:

  • (Array<String>)

    Validation warnings



334
335
336
# File 'lib/lutaml/uml_repository/validators/repository_validator.rb', line 334

def warnings
  @warnings
end

Instance Method Details

#has_external_references?Boolean

Check if there are any external references

Returns:

  • (Boolean)

    True if external references found



377
378
379
# File 'lib/lutaml/uml_repository/validators/repository_validator.rb', line 377

def has_external_references?
  !@external_references.empty?
end

#has_warnings?Boolean

Check if there are any warnings

Returns:

  • (Boolean)

    True if warnings present



370
371
372
# File 'lib/lutaml/uml_repository/validators/repository_validator.rb', line 370

def has_warnings?
  !@warnings.empty?
end

#issue_countInteger

Get total issue count (errors + warnings)

Returns:

  • (Integer)

    Total number of issues



384
385
386
# File 'lib/lutaml/uml_repository/validators/repository_validator.rb', line 384

def issue_count
  @errors.size + @warnings.size
end

#summaryString

Get a summary of validation results

Returns:

  • (String)

    Summary string



391
392
393
394
395
396
397
398
399
400
# File 'lib/lutaml/uml_repository/validators/repository_validator.rb', line 391

def summary
  if valid? && !has_warnings?
    "Validation passed: no issues found"
  elsif valid?
    "Validation passed with #{@warnings.size} warning(s)"
  else
    "Validation failed with #{@errors.size} error(s) and " \
      "#{@warnings.size} warning(s)"
  end
end

#valid?Boolean

Check if validation passed (no errors)

Returns:

  • (Boolean)

    True if no errors



363
364
365
# File 'lib/lutaml/uml_repository/validators/repository_validator.rb', line 363

def valid?
  @valid
end