# File lib/rgen/model_builder/builder_context.rb, line 68
  def method_missing(m, *args, &block)
    package, classOrContainer = @commandResolver.resolveCommand(m, @package)
    return super if package.nil?
    return classOrContainer.send(m, *args, &block) if classOrContainer.is_a?(ExtensionContainerFactory::ExtensionContainer)
    eClass = classOrContainer
    nameArg, argHash = self.class.processArguments(args)
    internalName = nameArg || argHash[:name]
    argHash[:name] ||= nameArg if nameArg && self.class.hasNameAttribute(eClass)
    resolverJobs, asRole, helperName = self.class.filterArgHash(argHash, eClass)
    element = eClass.instanceClass.new(argHash)
    @resolver.setElementName(element, internalName)
    @env << element if @env
    contextElement = @contextStack.last
    if contextElement
      self.class.associateWithContextElement(element, contextElement, asRole)
    else
      @toplevelElements << element
    end
    resolverJobs.each do |job|
      job.receiver = element
      job.namespace = contextElement
      @resolver.addJob(job)
    end
    # process block

    if block
      @contextStack.push(element)
      @package, oldPackage = package, @package
      instance_eval(&block)
      @package = oldPackage
      @contextStack.pop
    end
    element
  end