class RGen::ModelBuilder::BuilderContext::PackageResolver
Public Class Methods
new(rootPackage, extensionFactory)
click to toggle source
# File lib/rgen/model_builder/builder_context.rb, line 157 def initialize(rootPackage, extensionFactory) @rootPackage = rootPackage @extensionFactory = extensionFactory @packageByCommand = {} end
Public Instance Methods
packageByCommand(contextPackage, name)
click to toggle source
# File lib/rgen/model_builder/builder_context.rb, line 163 def packageByCommand(contextPackage, name) return @packageByCommand[[contextPackage, name]] if @packageByCommand.has_key?([contextPackage, name]) if @extensionFactory.extensionContainer(contextPackage).respond_to?(name) result = contextPackage else className = name.to_s[0..0].upcase + name.to_s[1..-1] eClass = contextPackage.eClasses.find{|c| c.name == className} if eClass result = contextPackage elsif contextPackage != @rootPackage result = packageByCommand(contextPackage.eSuperPackage, name) else result = nil end end @packageByCommand[[contextPackage, name]] = result end