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