Class: Oscal::V1_2_1::ByComponent

Inherits:
Base
  • Object
show all
Defined in:
lib/oscal/v1_2_1/all_models.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Base

lutaml_default_register

Class Method Details

.metaschema_constraintsObject



13607
13608
13609
# File 'lib/oscal/v1_2_1/all_models.rb', line 13607

def self.metaschema_constraints
  @metaschema_constraints
end

Instance Method Details

#json_assembly_soa_from_export_export(instance, value) ⇒ Object



13539
13540
13541
13542
13543
13544
13545
13546
13547
# File 'lib/oscal/v1_2_1/all_models.rb', line 13539

def json_assembly_soa_from_export_export(instance, value)
  items = case value
          when Hash then [value]
          when Array then value
          else return
          end
  parsed = items.map { |item| Oscal::V1_2_1::ByComponentExport.of_json(item.is_a?(Hash) ? item : {}) }
  instance.instance_variable_set(:@export, parsed)
end

#json_assembly_soa_from_implementation_status_implementation_status(instance, value) ⇒ Object



13529
13530
13531
13532
13533
13534
13535
13536
13537
# File 'lib/oscal/v1_2_1/all_models.rb', line 13529

def json_assembly_soa_from_implementation_status_implementation_status(instance, value)
  items = case value
          when Hash then [value]
          when Array then value
          else return
          end
  parsed = items.map { |item| Oscal::V1_2_1::ImplementationStatus.of_json(item.is_a?(Hash) ? item : {}) }
  instance.instance_variable_set(:@implementation_status, parsed)
end

#json_assembly_soa_to_export_export(instance, doc) ⇒ Object



13549
13550
13551
13552
13553
13554
13555
13556
13557
13558
13559
13560
13561
# File 'lib/oscal/v1_2_1/all_models.rb', line 13549

def json_assembly_soa_to_export_export(instance, doc)
  current = instance.instance_variable_get(:@export)
  if current.is_a?(Array)
    result = current.map do |item|
      if item.is_a?(Lutaml::Model::Serializable)
        Oscal::V1_2_1::ByComponentExport.as_json(item)
      else
        item
      end
    end
    doc["export"] = result.length == 1 ? result.first : result
  end
end

#json_assembly_soa_to_implementation_status_implementation_status(instance, doc) ⇒ Object



13563
13564
13565
13566
13567
13568
13569
13570
13571
13572
13573
13574
13575
# File 'lib/oscal/v1_2_1/all_models.rb', line 13563

def json_assembly_soa_to_implementation_status_implementation_status(instance, doc)
  current = instance.instance_variable_get(:@implementation_status)
  if current.is_a?(Array)
    result = current.map do |item|
      if item.is_a?(Lutaml::Model::Serializable)
        Oscal::V1_2_1::ImplementationStatus.as_json(item)
      else
        item
      end
    end
    doc["implementation-status"] = result.length == 1 ? result.first : result
  end
end

#json_from_remarks_remarks(instance, value) ⇒ Object



13577
13578
13579
13580
13581
13582
13583
13584
13585
13586
13587
13588
13589
13590
13591
# File 'lib/oscal/v1_2_1/all_models.rb', line 13577

def json_from_remarks_remarks(instance, value)
  if value.is_a?(Array)
    parsed = value.map { |v| Oscal::V1_2_1::Remarks.of_json(v) }
    instance.instance_variable_set(:@remarks, parsed)
  elsif value.is_a?(Hash)
    if value.empty?
      inst = Oscal::V1_2_1::Remarks.new(content: "")
      instance.instance_variable_set(:@remarks, inst)
    else
      instance.instance_variable_set(:@remarks, Oscal::V1_2_1::Remarks.of_json(value))
    end
  elsif value
    instance.instance_variable_set(:@remarks, Oscal::V1_2_1::Remarks.of_json(value))
  end
end

#json_to_remarks_remarks(instance, doc) ⇒ Object



13593
13594
13595
13596
13597
13598
13599
13600
13601
13602
13603
13604
13605
# File 'lib/oscal/v1_2_1/all_models.rb', line 13593

def json_to_remarks_remarks(instance, doc)
  current = instance.instance_variable_get(:@remarks)
  if current.is_a?(Array)
    doc["remarks"] = current.map { |item| item.respond_to?(:content) ? item.content : item }
  elsif current
    if current.is_a?(Lutaml::Model::Serializable)
      doc["remarks"] = Oscal::V1_2_1::Remarks.as_json(current)
    else
      val = current.respond_to?(:content) ? current.content : current
      doc["remarks"] = val
    end
  end
end

#validate_constraintsObject



13611
13612
13613
13614
# File 'lib/oscal/v1_2_1/all_models.rb', line 13611

def validate_constraints
  validator = Metaschema::ConstraintValidator.new
  validator.validate(self, self.class.metaschema_constraints)
end

#validate_occurrencesObject



13616
13617
13618
# File 'lib/oscal/v1_2_1/all_models.rb', line 13616

def validate_occurrences
  Metaschema::ConstraintValidator.validate_occurrences(self, self.class.instance_variable_get(:@occurrence_constraints))
end