Exception: Syskit::Models::InvalidCompositionChildPort

Inherits:
RuntimeError
  • Object
show all
Defined in:
lib/syskit/models/composition_child.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(composition_model, child_name, port_name) ⇒ InvalidCompositionChildPort

Returns a new instance of InvalidCompositionChildPort



291
292
293
294
295
296
297
# File 'lib/syskit/models/composition_child.rb', line 291

def initialize(composition_model, child_name, port_name)
    @composition_model, @child_name, @port_name =
        composition_model, child_name, port_name
    @existing_ports = composition_model.find_child(child_name).each_required_model.map do |child_model|
        [child_model, child_model.each_input_port.sort_by(&:name), child_model.each_output_port.sort_by(&:name)]
    end
end

Instance Attribute Details

#child_nameObject (readonly)

Returns the value of attribute child_name



287
288
289
# File 'lib/syskit/models/composition_child.rb', line 287

def child_name
  @child_name
end

#composition_modelObject (readonly)

Returns the value of attribute composition_model



286
287
288
# File 'lib/syskit/models/composition_child.rb', line 286

def composition_model
  @composition_model
end

#existing_portsObject (readonly)

Returns the value of attribute existing_ports



289
290
291
# File 'lib/syskit/models/composition_child.rb', line 289

def existing_ports
  @existing_ports
end

#port_nameObject (readonly)

Returns the value of attribute port_name



288
289
290
# File 'lib/syskit/models/composition_child.rb', line 288

def port_name
  @port_name
end

Instance Method Details

#pretty_print(pp) ⇒ Object



299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
# File 'lib/syskit/models/composition_child.rb', line 299

def pretty_print(pp)
    pp.text "port #{port_name} of child #{child_name} of #{composition_model.short_name} does not exist"
    pp.breakable
    pp.text "Available ports are:"
    pp.nest(2) do
        pp.breakable
        pp.seplist(existing_ports) do |child_model, inputs, outputs|
            pp.text child_model.short_name
            pp.nest(2) do
                pp.breakable
                pp.seplist(inputs) do |port|
                    pp.text "(in)#{port.name}[#{port.type_name}]"
                end
                pp.breakable
                pp.seplist(outputs) do |port|
                    pp.text "(out)#{port.name}[#{port.type_name}]"
                end
            end
        end
    end
end