class IDL::AST::Initializer
Attributes
params[R]
raises[R]
Public Class Methods
new(_name, _enclosure, params)
click to toggle source
Calls superclass method
IDL::AST::Leaf::new
# File lib/ridl/node.rb, line 2135 def initialize(_name, _enclosure, params) super(_name, _enclosure) @params = (params[:params] || []).collect do |(ptype, pname)| IDL::AST::Parameter.new(pname, self, {attribute: :in, type: ptype}) end @raises = [] self.raises = params[:raises] end
Public Instance Methods
instantiate(instantiation_context, _enclosure)
click to toggle source
Calls superclass method
IDL::AST::Leaf#instantiate
# File lib/ridl/node.rb, line 2165 def instantiate(instantiation_context, _enclosure) _params = { raises: self.concrete_raises(instantiation_context) } _init = super(instantiation_context, _enclosure, _params) _init.set_concrete_parameters(instantiation_context, @params) _init end
marshal_dump()
click to toggle source
Calls superclass method
IDL::AST::Leaf#marshal_dump
# File lib/ridl/node.rb, line 2155 def marshal_dump super() << @params << @raises end
marshal_load(vars)
click to toggle source
Calls superclass method
IDL::AST::Leaf#marshal_load
# File lib/ridl/node.rb, line 2159 def marshal_load(vars) @raises = vars.pop @params = vars.pop super(vars) end
raises=(exlist)
click to toggle source
# File lib/ridl/node.rb, line 2144 def raises=(exlist) exlist.each do |extype| unless extype.is_a?(IDL::Type::ScopedName) && (extype.is_node?(IDL::AST::Exception) || extype.is_node?(IDL::AST::TemplateParam) || extype.resolved_type.is_a?(IDL::Type::Native)) raise 'Only IDL Exception types allowed in raises declaration.' end @raises << extype end end
Protected Instance Methods
concrete_raises(instantiation_context)
click to toggle source
# File lib/ridl/node.rb, line 2176 def concrete_raises(instantiation_context) @raises.collect do |ex| ex.instantiate(instantiation_context) end end
set_concrete_parameters(instantiation_context, parms)
click to toggle source
# File lib/ridl/node.rb, line 2182 def set_concrete_parameters(instantiation_context, parms) @params = parms.collect do |parm| IDL::AST::Parameter.new(parm.name, self, { attribute: :in, type: parm.idltype.instantiate(instantiation_context) }) end end