class Lutaml::Qea::Models::EaDiagramLink

geometry and styling.
generalizations, etc.) on specific diagrams, including their routing
This model represents the visual rendering of connectors (associations,
Represents a diagram link from the t_diagramlinks table

def self.primary_key_column

def self.primary_key_column
  :instance_id
end

def self.table_name

def self.table_name
  "t_diagramlinks"
end

def hidden?

Returns:
  • (Boolean) -
def hidden?
  hidden == 1
end

def object_ids

Returns:
  • (Hash) - Hash with :source_oid, :dest_oid
def object_ids
  parsed = parsed_style
  {
    source_oid: parsed["SOID"],
    dest_oid: parsed["EOID"],
  }
end

def parsed_geometry # rubocop:disable Metrics/MethodLength

Returns:
  • (Hash) - Parsed geometry data
def parsed_geometry # rubocop:disable Metrics/MethodLength
  return {} unless geometry
  parts = geometry.split(",")
  result = {}
  # First 4 values are typically coordinates
  if parts.length >= 4
    result[:coords] = parts[0..3].map(&:strip).map(&:to_i)
  end
  # Remaining parts contain additional metadata
  if parts.length > 4
    result[:metadata] = parts[4..].join(",")
  end
  result
end

def parsed_style

Returns:
  • (Hash) - Parsed style attributes
def parsed_style
  return {} unless style
  style.split(";").each_with_object({}) do |pair, hash|
    key, value = pair.split("=", 2)
    hash[key] = value if key && value
  end
end