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



333
334
335
336
337
338
339
340
341
342
343
# File 'lib/lutaml/uml_repository/validators/repository_validator.rb', line 333

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



316
317
318
# File 'lib/lutaml/uml_repository/validators/repository_validator.rb', line 316

def errors
  @errors
end

#external_referencesArray<Hash> (readonly)

Returns External type references.

Returns:

  • (Array<Hash>)

    External type references



322
323
324
# File 'lib/lutaml/uml_repository/validators/repository_validator.rb', line 322

def external_references
  @external_references
end

#validation_detailsArray<Hash> (readonly)

Returns Detailed validation information.

Returns:

  • (Array<Hash>)

    Detailed validation information



325
326
327
# File 'lib/lutaml/uml_repository/validators/repository_validator.rb', line 325

def validation_details
  @validation_details
end

#warningsArray<String> (readonly)

Returns Validation warnings.

Returns:

  • (Array<String>)

    Validation warnings



319
320
321
# File 'lib/lutaml/uml_repository/validators/repository_validator.rb', line 319

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



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

def has_external_references?
  !@external_references.empty?
end

#has_warnings?Boolean

Check if there are any warnings

Returns:

  • (Boolean)

    True if warnings present



355
356
357
# File 'lib/lutaml/uml_repository/validators/repository_validator.rb', line 355

def has_warnings?
  !@warnings.empty?
end

#issue_countInteger

Get total issue count (errors + warnings)

Returns:

  • (Integer)

    Total number of issues



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

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

#summaryString

Get a summary of validation results

Returns:

  • (String)

    Summary string



376
377
378
379
380
381
382
383
384
385
# File 'lib/lutaml/uml_repository/validators/repository_validator.rb', line 376

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



348
349
350
# File 'lib/lutaml/uml_repository/validators/repository_validator.rb', line 348

def valid?
  @valid
end