class Lutaml::Qea::Validation::ClassValidator

def validate_generalization_parents # rubocop:disable Metrics/AbcSize,Metrics/MethodLength,Metrics/CyclomaticComplexity,Metrics/PerceivedComplexity

rubocop:disable Metrics/AbcSize,Metrics/MethodLength,Metrics/CyclomaticComplexity,Metrics/PerceivedComplexity
def validate_generalization_parents # rubocop:disable Metrics/AbcSize,Metrics/MethodLength,Metrics/CyclomaticComplexity,Metrics/PerceivedComplexity
  connectors.select(&:generalization?).each do |gen|
    parent_id = gen.end_object_id
    unless object_exists?(parent_id)
      child = objects.find { |o| o.ea_object_id == gen.start_object_id }
      child_path = if child
                     resolve_class_path(child.ea_object_id,
                                        child.name)
                   else
                     "Unknown"
                   end
      result.add_error(
        category: :missing_reference,
        entity_type: :generalization,
        entity_id: gen.connector_id.to_s,
        entity_name: child&.name || "Unknown",
        field: "end_object_id",
        reference: parent_id.to_s,
        message: "Generalization parent #{parent_id} does not exist",
        location: child_path,
      )
    end
  end
end