Class: JavaClass::Dsl::JavaNameFactory::TemporaryJavaNamePart

Inherits:
Object
  • Object
show all
Defined in:
lib/javaclass/dsl/java_name_factory.rb

Overview

Private temporary result to continue collecting qualified name parts.

Author

Peter Kofler

Instance Method Summary collapse

Constructor Details

#initialize(history, &fail) ⇒ TemporaryJavaNamePart

Create a part with history package name so far that started in context instance.



50
51
52
53
# File 'lib/javaclass/dsl/java_name_factory.rb', line 50

def initialize(history, &fail)
  @history = history
  @context = fail
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(method_id, *args) ⇒ Object



57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# File 'lib/javaclass/dsl/java_name_factory.rb', line 57

def method_missing(method_id, *args)
  str = method_id.id2name
  if JavaLanguage::RESERVED_WORDS.include?(str)
    @context.call
  elsif str =~ /^#{JavaLanguage::TYPE_REGEX}$/
    # starts with an uppercase letter, this is a class
    JavaQualifiedName.new("#{@history}#{JavaLanguage::SEPARATOR}#{str}", &@context) 
  elsif str == '*'
    # special syntax, ending with *, this is a package
    JavaPackageName.new("#{@history}") 
  elsif str =~ JavaLanguage::PACKAGE_REGEX
    # starts with a lowercase letter, this is a package
    TemporaryJavaNamePart.new("#{@history}#{JavaLanguage::SEPARATOR}#{str}", &@context)
  else
    @context.call
  end
end

Instance Method Details

#__unused_method_missing__Object



55
# File 'lib/javaclass/dsl/java_name_factory.rb', line 55

alias :__unused_method_missing__ :method_missing