class Lutaml::Model::Transform
def self.data_to_model(context, data, format, options = {})
def self.data_to_model(context, data, format, options = {}) new(context).data_to_model(data, format, options) end
def self.model_to_data(context, model, format, options = {})
def self.model_to_data(context, model, format, options = {}) new(context).model_to_data(model, format, options) end
def apply_value_map(value, value_map, attr)
def apply_value_map(value, value_map, attr) if value.nil? value_for_option(value_map[:nil], attr) elsif Utils.empty?(value) value_for_option(value_map[:empty], attr, value) elsif Utils.uninitialized?(value) value_for_option(value_map[:omitted], attr) else value end end
def attribute_for_rule(rule)
def attribute_for_rule(rule) return attributes[rule.to] unless rule.delegate attributes[rule.delegate].type.attributes[rule.to] end
def data_to_model(data, options = {})
def data_to_model(data, options = {}) raise NotImplementedError, "#{self.class.name} must implement `data_to_model`." end
def empty_object(attr)
def empty_object(attr) return [] if attr.collection? "" end
def initialize(context)
def initialize(context) @context = context @attributes = context.attributes end
def mappings_for(format)
def mappings_for(format) context.mappings_for(format) end
def model_class
def model_class @context.model end
def model_to_data(model, options = {})
def model_to_data(model, options = {}) raise NotImplementedError, "#{self.class.name} must implement `model_to_data`." end
def valid_rule?(rule)
def valid_rule?(rule) attribute = attribute_for_rule(rule) !!attribute || rule.custom_methods[:from] end
def value_for_option(option, attr, empty_value = nil)
def value_for_option(option, attr, empty_value = nil) return nil if option == :nil return empty_value || empty_object(attr) if option == :empty Lutaml::Model::UninitializedClass.instance end