class Lutaml::Hal::Resource

def create_link_set_class

the resource-linked Link classes
The "links" class holds the `_links` object which contains
def create_link_set_class
  parent_klass_name = name.split('::')[0..-2].join('::')
  child_klass_name = "#{name.split('::').last}LinkSet"
  klass_name = [parent_klass_name, child_klass_name].join('::')
  Hal.debug_log "Creating link set class #{klass_name}"
  # Check if the LinkSet class is already defined, return if so
  return Object.const_get(klass_name) if Object.const_defined?(klass_name)
  # Define the LinkSet class dynamically as a normal Lutaml::Model class
  # since it is not a Resource.
  klass = Class.new(Lutaml::Hal::LinkSet)
  parent_klass = !parent_klass_name.empty? ? Object.const_get(parent_klass_name) : Object
  parent_klass.const_set(child_klass_name, klass)
  # Define the LinkSet class with mapping inside the current class
  class_eval do
    attribute :links, klass
    key_value do
      map '_links', to: :links
    end
  end
end