Class: Oscal::V1_2_1::Metadata

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



8835
8836
8837
# File 'lib/oscal/v1_2_1/all_models.rb', line 8835

def self.metaschema_constraints
  @metaschema_constraints
end

Instance Method Details

#json_from_last_modified_last_modified(instance, value) ⇒ Object



8758
8759
8760
8761
8762
8763
8764
8765
8766
8767
8768
8769
8770
8771
8772
# File 'lib/oscal/v1_2_1/all_models.rb', line 8758

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

#json_from_oscal_version_oscal_version(instance, value) ⇒ Object



8728
8729
8730
8731
8732
8733
8734
8735
8736
8737
8738
8739
8740
8741
8742
# File 'lib/oscal/v1_2_1/all_models.rb', line 8728

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

#json_from_published_published(instance, value) ⇒ Object



8654
8655
8656
8657
8658
8659
8660
8661
8662
8663
8664
8665
8666
8667
8668
# File 'lib/oscal/v1_2_1/all_models.rb', line 8654

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

#json_from_remarks_remarks(instance, value) ⇒ Object



8774
8775
8776
8777
8778
8779
8780
8781
8782
8783
8784
8785
8786
8787
8788
# File 'lib/oscal/v1_2_1/all_models.rb', line 8774

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_from_version_version(instance, value) ⇒ Object



8698
8699
8700
8701
8702
8703
8704
8705
8706
8707
8708
8709
8710
8711
8712
# File 'lib/oscal/v1_2_1/all_models.rb', line 8698

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

#json_soa_from_document_id_document_ids(instance, value) ⇒ Object



8804
8805
8806
8807
8808
8809
8810
8811
8812
8813
8814
8815
8816
8817
8818
8819
# File 'lib/oscal/v1_2_1/all_models.rb', line 8804

def json_soa_from_document_id_document_ids(instance, value)
  items = case value
          when Hash then [value]
          when Array then value
          when String then [value]
          else return
          end
  parsed = items.map do |item|
    case item
    when Hash then Oscal::V1_2_1::DocumentId.of_json(item)
    when String then Oscal::V1_2_1::DocumentId.of_json(item)
    else item
    end
  end
  instance.instance_variable_set(:@document_id, parsed)
end

#json_soa_to_document_id_document_ids(instance, doc) ⇒ Object



8821
8822
8823
8824
8825
8826
8827
8828
8829
8830
8831
8832
8833
# File 'lib/oscal/v1_2_1/all_models.rb', line 8821

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

#json_to_last_modified_last_modified(instance, doc) ⇒ Object



8684
8685
8686
8687
8688
8689
8690
8691
8692
8693
8694
8695
8696
# File 'lib/oscal/v1_2_1/all_models.rb', line 8684

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

#json_to_oscal_version_oscal_version(instance, doc) ⇒ Object



8744
8745
8746
8747
8748
8749
8750
8751
8752
8753
8754
8755
8756
# File 'lib/oscal/v1_2_1/all_models.rb', line 8744

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

#json_to_published_published(instance, doc) ⇒ Object



8670
8671
8672
8673
8674
8675
8676
8677
8678
8679
8680
8681
8682
# File 'lib/oscal/v1_2_1/all_models.rb', line 8670

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

#json_to_remarks_remarks(instance, doc) ⇒ Object



8790
8791
8792
8793
8794
8795
8796
8797
8798
8799
8800
8801
8802
# File 'lib/oscal/v1_2_1/all_models.rb', line 8790

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

#json_to_version_version(instance, doc) ⇒ Object



8714
8715
8716
8717
8718
8719
8720
8721
8722
8723
8724
8725
8726
# File 'lib/oscal/v1_2_1/all_models.rb', line 8714

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

#validate_constraintsObject



8839
8840
8841
8842
# File 'lib/oscal/v1_2_1/all_models.rb', line 8839

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

#validate_occurrencesObject



8844
8845
8846
# File 'lib/oscal/v1_2_1/all_models.rb', line 8844

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