Class: Oscal::V1_2_1::SystemCharacteristics

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



12905
12906
12907
# File 'lib/oscal/v1_2_1/all_models.rb', line 12905

def self.metaschema_constraints
  @metaschema_constraints
end

Instance Method Details

#json_assembly_soa_from_authorization_boundary_authorization_boundary(instance, value) ⇒ Object



12708
12709
12710
12711
12712
12713
12714
12715
12716
# File 'lib/oscal/v1_2_1/all_models.rb', line 12708

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

#json_assembly_soa_from_data_flow_data_flow(instance, value) ⇒ Object



12786
12787
12788
12789
12790
12791
12792
12793
12794
# File 'lib/oscal/v1_2_1/all_models.rb', line 12786

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

#json_assembly_soa_from_network_architecture_network_architecture(instance, value) ⇒ Object



12762
12763
12764
12765
12766
12767
12768
12769
12770
# File 'lib/oscal/v1_2_1/all_models.rb', line 12762

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

#json_assembly_soa_from_security_impact_level_security_impact_level(instance, value) ⇒ Object



12684
12685
12686
12687
12688
12689
12690
12691
12692
# File 'lib/oscal/v1_2_1/all_models.rb', line 12684

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

#json_assembly_soa_from_status_status(instance, value) ⇒ Object



12796
12797
12798
12799
12800
12801
12802
12803
12804
# File 'lib/oscal/v1_2_1/all_models.rb', line 12796

def json_assembly_soa_from_status_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::Status.of_json(item.is_a?(Hash) ? item : {}) }
  instance.instance_variable_set(:@status, parsed)
end

#json_assembly_soa_from_system_information_system_information(instance, value) ⇒ Object



12895
12896
12897
12898
12899
12900
12901
12902
12903
# File 'lib/oscal/v1_2_1/all_models.rb', line 12895

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

#json_assembly_soa_to_authorization_boundary_authorization_boundary(instance, doc) ⇒ Object



12718
12719
12720
12721
12722
12723
12724
12725
12726
12727
12728
12729
12730
# File 'lib/oscal/v1_2_1/all_models.rb', line 12718

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

#json_assembly_soa_to_data_flow_data_flow(instance, doc) ⇒ Object



12772
12773
12774
12775
12776
12777
12778
12779
12780
12781
12782
12783
12784
# File 'lib/oscal/v1_2_1/all_models.rb', line 12772

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

#json_assembly_soa_to_network_architecture_network_architecture(instance, doc) ⇒ Object



12748
12749
12750
12751
12752
12753
12754
12755
12756
12757
12758
12759
12760
# File 'lib/oscal/v1_2_1/all_models.rb', line 12748

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

#json_assembly_soa_to_security_impact_level_security_impact_level(instance, doc) ⇒ Object



12694
12695
12696
12697
12698
12699
12700
12701
12702
12703
12704
12705
12706
# File 'lib/oscal/v1_2_1/all_models.rb', line 12694

def json_assembly_soa_to_security_impact_level_security_impact_level(instance, doc)
  current = instance.instance_variable_get(:@security_impact_level)
  if current.is_a?(Array)
    result = current.map do |item|
      if item.is_a?(Lutaml::Model::Serializable)
        Oscal::V1_2_1::SecurityImpactLevel.as_json(item)
      else
        item
      end
    end
    doc["security-impact-level"] = result.length == 1 ? result.first : result
  end
end

#json_assembly_soa_to_status_status(instance, doc) ⇒ Object



12806
12807
12808
12809
12810
12811
12812
12813
12814
12815
12816
12817
12818
# File 'lib/oscal/v1_2_1/all_models.rb', line 12806

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

#json_assembly_soa_to_system_information_system_information(instance, doc) ⇒ Object



12670
12671
12672
12673
12674
12675
12676
12677
12678
12679
12680
12681
12682
# File 'lib/oscal/v1_2_1/all_models.rb', line 12670

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

#json_from_date_authorized_date_authorized(instance, value) ⇒ Object



12732
12733
12734
12735
12736
12737
12738
12739
12740
12741
12742
12743
12744
12745
12746
# File 'lib/oscal/v1_2_1/all_models.rb', line 12732

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

#json_from_remarks_remarks(instance, value) ⇒ Object



12820
12821
12822
12823
12824
12825
12826
12827
12828
12829
12830
12831
12832
12833
12834
# File 'lib/oscal/v1_2_1/all_models.rb', line 12820

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



12864
12865
12866
12867
12868
12869
12870
12871
12872
12873
12874
12875
12876
12877
12878
12879
# File 'lib/oscal/v1_2_1/all_models.rb', line 12864

def json_soa_from_system_id_system_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::SystemId.of_json(item)
    when String then Oscal::V1_2_1::SystemId.of_json(item)
    else item
    end
  end
  instance.instance_variable_set(:@system_id, parsed)
end

#json_soa_to_system_id_system_ids(instance, doc) ⇒ Object



12881
12882
12883
12884
12885
12886
12887
12888
12889
12890
12891
12892
12893
# File 'lib/oscal/v1_2_1/all_models.rb', line 12881

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

#json_to_date_authorized_date_authorized(instance, doc) ⇒ Object



12850
12851
12852
12853
12854
12855
12856
12857
12858
12859
12860
12861
12862
# File 'lib/oscal/v1_2_1/all_models.rb', line 12850

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

#json_to_remarks_remarks(instance, doc) ⇒ Object



12836
12837
12838
12839
12840
12841
12842
12843
12844
12845
12846
12847
12848
# File 'lib/oscal/v1_2_1/all_models.rb', line 12836

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



12909
12910
12911
12912
# File 'lib/oscal/v1_2_1/all_models.rb', line 12909

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

#validate_occurrencesObject



12914
12915
12916
# File 'lib/oscal/v1_2_1/all_models.rb', line 12914

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