Class | JavaClass::JavaQualifiedName |
In: |
lib/javaclass/java_name.rb
|
Parent: | String |
A full qualified class name. That is like a.b.C. Care has to be taken if this is used as hash key. String is treated special and the additional fields are lost when the key is retrieved from the Hash (because it is frozen).
Author: | Peter Kofler |
VALID_REGEX | = | /^ ( (?: #{JavaLanguage::IDENTIFIER_REGEX}#{JavaLanguage::SEPARATOR_REGEX} )* ) ( #{JavaLanguage::IDENTIFIER_REGEX} ) $/x |
Create a new qualified name string with optional jvmname and classname classes which may be available.
# File lib/javaclass/java_name.rb, line 114 def initialize(string, jvmname=nil, classname=nil) super string if string =~ VALID_REGEX @package = $1 || '' @simple_name = $2 @full_name = string else # TODO Implement qualified name logic for inner classes (e.g. CollectionUtils$IChecker) raise ArgumentError, "#{string} is no valid qualified name" end package_remove_trailing_dot! @jvm_name = jvmname @class_name = classname end
Is string a valid qualified name?
# File lib/javaclass/java_name.rb, line 109 def self.valid?(string) string =~ VALID_REGEX end
Return the Java class file name of this class, e.g. java/lang/Object.class.
# File lib/javaclass/java_name.rb, line 161 def to_class_file return @class_name if @class_name new_val = JavaClassFileName.new(@full_name.gsub(JavaLanguage::SEPARATOR, JavaClassFileName::SEPARATOR) + JavaLanguage::CLASS, self) if frozen? new_val else @class_name = new_val end end
Return the full classname of this class, e.g. java.lang.Object.
# File lib/javaclass/java_name.rb, line 140 def to_classname self end