Class: Oscal::V1_2_1::MappingCollection

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

.of_json(doc, options = {}) ⇒ Object



10830
10831
10832
10833
10834
10835
10836
# File 'lib/oscal/v1_2_1/all_models.rb', line 10830

def self.of_json(doc, options = {})
  if doc.is_a?(Hash) && doc.key?("mapping-collection")
    super(doc["mapping-collection"], options)
  else
    super(doc, options)
  end
end

.of_yaml(doc, options = {}) ⇒ Object



10843
10844
10845
10846
10847
10848
10849
# File 'lib/oscal/v1_2_1/all_models.rb', line 10843

def self.of_yaml(doc, options = {})
  if doc.is_a?(Hash) && doc.key?("mapping-collection")
    super(doc["mapping-collection"], options)
  else
    super(doc, options)
  end
end

.to_json(instance, options = {}) ⇒ Object



10838
10839
10840
10841
# File 'lib/oscal/v1_2_1/all_models.rb', line 10838

def self.to_json(instance, options = {})
  json_str = super(instance, options)
  { "mapping-collection" => JSON.parse(json_str) }.to_json
end

.to_yaml(instance, options = {}) ⇒ Object



10851
10852
10853
10854
10855
# File 'lib/oscal/v1_2_1/all_models.rb', line 10851

def self.to_yaml(instance, options = {})
  yaml_str = super(instance, options)
  data = YAML.safe_load(yaml_str, permitted_classes: [Date, Time, Symbol])
  { "mapping-collection" => data }.to_yaml
end

Instance Method Details

#json_assembly_soa_from_back_matter_back_matter(instance, value) ⇒ Object



10758
10759
10760
10761
10762
10763
10764
10765
10766
# File 'lib/oscal/v1_2_1/all_models.rb', line 10758

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

#json_assembly_soa_from_mapping_mappings(instance, value) ⇒ Object



10806
10807
10808
10809
10810
10811
10812
10813
10814
# File 'lib/oscal/v1_2_1/all_models.rb', line 10806

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

#json_assembly_soa_from_mapping_provenance_provenance(instance, value) ⇒ Object



10782
10783
10784
10785
10786
10787
10788
10789
10790
# File 'lib/oscal/v1_2_1/all_models.rb', line 10782

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

#json_assembly_soa_from_metadata_metadata(instance, value) ⇒ Object



10734
10735
10736
10737
10738
10739
10740
10741
10742
# File 'lib/oscal/v1_2_1/all_models.rb', line 10734

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

#json_assembly_soa_to_back_matter_back_matter(instance, doc) ⇒ Object



10768
10769
10770
10771
10772
10773
10774
10775
10776
10777
10778
10779
10780
# File 'lib/oscal/v1_2_1/all_models.rb', line 10768

def json_assembly_soa_to_back_matter_back_matter(instance, doc)
  current = instance.instance_variable_get(:@back_matter)
  if current.is_a?(Array)
    result = current.map do |item|
      if item.is_a?(Lutaml::Model::Serializable)
        Oscal::V1_2_1::BackMatter.as_json(item)
      else
        item
      end
    end
    doc["back-matter"] = result.length == 1 ? result.first : result
  end
end

#json_assembly_soa_to_mapping_mappings(instance, doc) ⇒ Object



10816
10817
10818
10819
10820
10821
10822
10823
10824
10825
10826
10827
10828
# File 'lib/oscal/v1_2_1/all_models.rb', line 10816

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

#json_assembly_soa_to_mapping_provenance_provenance(instance, doc) ⇒ Object



10792
10793
10794
10795
10796
10797
10798
10799
10800
10801
10802
10803
10804
# File 'lib/oscal/v1_2_1/all_models.rb', line 10792

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

#json_assembly_soa_to_metadata_metadata(instance, doc) ⇒ Object



10744
10745
10746
10747
10748
10749
10750
10751
10752
10753
10754
10755
10756
# File 'lib/oscal/v1_2_1/all_models.rb', line 10744

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

#to_json(options = {}) ⇒ Object



10857
10858
10859
# File 'lib/oscal/v1_2_1/all_models.rb', line 10857

def to_json(options = {})
  self.class.to_json(self, options)
end

#to_yaml(options = {}) ⇒ Object



10861
10862
10863
# File 'lib/oscal/v1_2_1/all_models.rb', line 10861

def to_yaml(options = {})
  self.class.to_yaml(self, options)
end

#validate_occurrencesObject



10865
10866
10867
# File 'lib/oscal/v1_2_1/all_models.rb', line 10865

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