class Lutaml::UmlRepository::StaticSite::Serializers::PackageSerializer

def build_map

def build_map
  packages = {}
  @repository.packages_index.each do |package|
    id = @id_generator.package_id(package)
    packages[id] = serialize(package, id)
  end
  packages
end

def collect_class_ids(package)

def collect_class_ids(package)
  (package.classes || []).map { |c| @id_generator.class_id(c) }
end

def collect_diagram_ids(package)

def collect_diagram_ids(package)
  package_diagrams(package).map { |d| @id_generator.diagram_id(d) }
end

def collect_sub_package_ids(package)

def collect_sub_package_ids(package)
  (package.packages || []).map { |p| @id_generator.package_id(p) }
end

def parent_id(package)

def parent_id(package)
  return nil unless package.namespace.is_a?(Lutaml::Uml::Package)
  @id_generator.package_id(package.namespace)
end

def serialize(package, id)

def serialize(package, id)
  Models::SpaPackage.new(
    id: id,
    xmi_id: package.xmi_id,
    name: package.name,
    path: package_path_for(package),
    definition: format_definition(package.definition, @options),
    stereotypes: normalize_stereotypes(package.stereotype),
    classes: collect_class_ids(package),
    sub_packages: collect_sub_package_ids(package),
    diagrams: collect_diagram_ids(package),
    parent: parent_id(package),
  )
end