Class: Lutaml::Xml::Error::NamespaceMismatchError

Inherits:
XmlError show all
Defined in:
lib/lutaml/xml/error/namespace_mismatch_error.rb

Overview

Raised when a namespace mismatch occurs during type resolution

This error is raised when attempting to resolve a type in a specific namespace, but the type’s configured namespace doesn’t match.

Examples:

raise NamespaceMismatchError.new(MyType, OtherNamespace)

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(type_class, expected_namespace, message: nil) ⇒ NamespaceMismatchError

Create a new NamespaceMismatchError

Parameters:

  • type_class (Class)

    the type class being resolved

  • expected_namespace (Class)

    the expected namespace class

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

    custom error message



28
29
30
31
32
33
34
35
36
# File 'lib/lutaml/xml/error/namespace_mismatch_error.rb', line 28

def initialize(type_class, expected_namespace, message: nil)
  @type_class = type_class
  @expected_namespace = expected_namespace
  @actual_namespace = if type_class.is_a?(Class) && type_class <= Lutaml::Model::Type::Value
                        type_class.namespace_class
                      end

  super(message || default_message)
end

Instance Attribute Details

#actual_namespaceClass? (readonly)

Returns the actual namespace class configured on the type.

Returns:

  • (Class, nil)

    the actual namespace class configured on the type



21
22
23
# File 'lib/lutaml/xml/error/namespace_mismatch_error.rb', line 21

def actual_namespace
  @actual_namespace
end

#expected_namespaceClass (readonly)

Returns the expected namespace class.

Returns:

  • (Class)

    the expected namespace class



18
19
20
# File 'lib/lutaml/xml/error/namespace_mismatch_error.rb', line 18

def expected_namespace
  @expected_namespace
end

#type_classClass (readonly)

Returns the type class being resolved.

Returns:

  • (Class)

    the type class being resolved



15
16
17
# File 'lib/lutaml/xml/error/namespace_mismatch_error.rb', line 15

def type_class
  @type_class
end