Class: Oscal::V1_2_1::Parameter

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



9476
9477
9478
# File 'lib/oscal/v1_2_1/all_models.rb', line 9476

def self.metaschema_constraints
  @metaschema_constraints
end

Instance Method Details

#json_assembly_soa_from_parameter_selection_select(instance, value) ⇒ Object



9422
9423
9424
9425
9426
9427
9428
9429
9430
# File 'lib/oscal/v1_2_1/all_models.rb', line 9422

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

#json_assembly_soa_to_parameter_selection_select(instance, doc) ⇒ Object



9446
9447
9448
9449
9450
9451
9452
9453
9454
9455
9456
9457
9458
# File 'lib/oscal/v1_2_1/all_models.rb', line 9446

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

#json_from_parameter_value_values(instance, value) ⇒ Object



9460
9461
9462
9463
9464
9465
9466
9467
9468
9469
9470
9471
9472
9473
9474
# File 'lib/oscal/v1_2_1/all_models.rb', line 9460

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

#json_from_remarks_remarks(instance, value) ⇒ Object



9392
9393
9394
9395
9396
9397
9398
9399
9400
9401
9402
9403
9404
9405
9406
# File 'lib/oscal/v1_2_1/all_models.rb', line 9392

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_parameter_value_values(instance, doc) ⇒ Object



9432
9433
9434
9435
9436
9437
9438
9439
9440
9441
9442
9443
9444
# File 'lib/oscal/v1_2_1/all_models.rb', line 9432

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

#json_to_remarks_remarks(instance, doc) ⇒ Object



9408
9409
9410
9411
9412
9413
9414
9415
9416
9417
9418
9419
9420
# File 'lib/oscal/v1_2_1/all_models.rb', line 9408

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



9480
9481
9482
9483
# File 'lib/oscal/v1_2_1/all_models.rb', line 9480

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

#validate_occurrencesObject



9485
9486
9487
# File 'lib/oscal/v1_2_1/all_models.rb', line 9485

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