Class: Lutaml::Xsd::TypeResolutionResult

Inherits:
Model::Serializable
  • Object
show all
Defined in:
lib/lutaml/xsd/type_resolution_result.rb

Overview

Represents the result of resolving a qualified type name

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#definitionObject

The resolved type definition (SimpleType, ComplexType, Element, etc.) Note: This is not serialized in YAML as it’s a complex object reference



21
22
23
# File 'lib/lutaml/xsd/type_resolution_result.rb', line 21

def definition
  @definition
end

Class Method Details

.failure(qname:, error_message:, namespace: nil, local_name: nil, resolution_path: []) ⇒ TypeResolutionResult

Create a failed resolution result

Parameters:

  • qname (String)

    The original qualified name

  • namespace (String, nil) (defaults to: nil)

    The attempted namespace URI

  • local_name (String, nil) (defaults to: nil)

    The local type name

  • error_message (String)

    The error message

  • resolution_path (Array<String>) (defaults to: [])

    Steps taken before failure

Returns:



91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
# File 'lib/lutaml/xsd/type_resolution_result.rb', line 91

def self.failure(qname:, error_message:, namespace: nil, local_name: nil,
resolution_path: [])
  result = new(
    resolved: false,
    qname: qname,
    namespace: namespace,
    local_name: local_name,
    schema_file: nil,
    resolution_path: resolution_path,
    error_message: error_message,
  )
  # Set definition separately since it's attr_accessor, not attribute
  result.definition = nil
  result
end

.success(qname:, namespace:, local_name:, definition:, schema_file:, resolution_path: []) ⇒ TypeResolutionResult

Create a successful resolution result

Parameters:

  • qname (String)

    The original qualified name

  • namespace (String)

    The resolved namespace URI

  • local_name (String)

    The local type name

  • definition (Base)

    The type definition object

  • schema_file (String)

    The source schema file

  • resolution_path (Array<String>) (defaults to: [])

    Steps taken to resolve

Returns:



68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
# File 'lib/lutaml/xsd/type_resolution_result.rb', line 68

def self.success(qname:, namespace:, local_name:, definition:,
schema_file:, resolution_path: [])
  result = new(
    resolved: true,
    qname: qname,
    namespace: namespace,
    local_name: local_name,
    schema_file: schema_file,
    resolution_path: resolution_path,
    error_message: nil,
  )
  # Set definition separately since it's attr_accessor, not attribute
  result.definition = definition
  result
end

Instance Method Details

#resolved?Boolean

Check if the type was successfully resolved

Returns:

  • (Boolean)


44
45
46
# File 'lib/lutaml/xsd/type_resolution_result.rb', line 44

def resolved?
  resolved == true
end

#type_classString?

Get the type class name if definition is available

Returns:

  • (String, nil)


56
57
58
# File 'lib/lutaml/xsd/type_resolution_result.rb', line 56

def type_class
  definition&.class&.name
end

#type_nameString?

Get the type name from the definition if available

Returns:

  • (String, nil)


50
51
52
# File 'lib/lutaml/xsd/type_resolution_result.rb', line 50

def type_name
  definition&.name
end