class Lutaml::Model::Schema::XmlCompiler::Group

def base_name

def base_name
  (name || ref)&.split(":")&.last
end

def definitions_content

def definitions_content
  @definitions_content ||= instance.to_attributes(@indent)
end

def extended_indent

def extended_indent
  @indent * 2
end

def initialize(name = nil, ref = nil)

def initialize(name = nil, ref = nil)
  @name = name
  @ref = ref
end

def required_files

def required_files
  if Utils.blank?(name) && Utils.present?(ref)
    "require_relative \"#{Utils.snake_case(ref.split(':').last)}\""
  else
    @instance&.required_files
  end
end

def setup_options(options)

def setup_options(options)
  @indent = " " * options&.fetch(:indent, 2)
end

def to_attributes(indent = @indent)

def to_attributes(indent = @indent)
  if Utils.present?(@ref)
    "#{indent}import_model_attributes :#{Utils.snake_case(base_name)}\n"
  else
    @instance.to_attributes(indent)
  end
end

def to_class(options: {})

def to_class(options: {})
  setup_options(options)
  GROUP_TEMPLATE.result(binding)
end

def to_xml_mapping(indent = @indent)

def to_xml_mapping(indent = @indent)
  if Utils.present?(@ref)
    "#{indent}import_model_mappings :#{Utils.snake_case(base_name)}\n"
  else
    @instance.to_xml_mapping(indent * 2)
  end
end

def xml_mapping_block

def xml_mapping_block
  XML_MAPPING_TEMPLATE.result(binding)
end