Class: JavaClass::JavaQualifiedName
- Includes:
- PackageLogic, SimpleNameLogic
- Defined in:
- lib/javaclass/java_name.rb
Overview
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
Constant Summary collapse
- VALID_REGEX =
/^ ( (?: #{JavaLanguage::IDENTIFIER_REGEX}#{JavaLanguage::SEPARATOR_REGEX} )* ) ( #{JavaLanguage::IDENTIFIER_REGEX} ) $/x
Constants inherited from String
Class Method Summary collapse
-
.valid?(string) ⇒ Boolean
Is string a valid qualified name?.
Instance Method Summary collapse
-
#full_name ⇒ Object
Full normalized class name of this class.
-
#initialize(string, jvmname = nil, classname = nil) ⇒ JavaQualifiedName
constructor
Create a new qualified name string with optional jvmname and classname classes which may be available.
-
#to_class_file ⇒ Object
Return the Java class file name of this class, e.g.
-
#to_classname ⇒ Object
Return the full classname of this class, e.g.
-
#to_java_file ⇒ Object
Return the Java source file name of this class, e.g.
- #to_javaname ⇒ Object
-
#to_jvmname ⇒ Object
Return the VM name of this class, e.g.
Methods included from SimpleNameLogic
#simple_name, #split_simple_name
Methods included from PackageLogic
#in_jdk?, #package, #same_or_subpackage_of?, #subpackage_of?
Methods inherited from String
#double, #hexdump, #single, #u1, #u2, #u2rep, #u4, #u8
Constructor Details
#initialize(string, jvmname = nil, classname = nil) ⇒ JavaQualifiedName
Create a new qualified name string with optional jvmname and classname classes which may be available.
114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 |
# 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 |
Class Method Details
.valid?(string) ⇒ Boolean
Is string a valid qualified name?
109 110 111 |
# File 'lib/javaclass/java_name.rb', line 109 def self.valid?(string) string =~ VALID_REGEX end |
Instance Method Details
#full_name ⇒ Object
Full normalized class name of this class. This returns just the plain String.
131 132 133 |
# File 'lib/javaclass/java_name.rb', line 131 def full_name @full_name end |
#to_class_file ⇒ Object
Return the Java class file name of this class, e.g. java/lang/Object.class
.
161 162 163 164 165 166 167 168 169 |
# 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 |
#to_classname ⇒ Object
Return the full classname of this class, e.g. java.lang.Object
.
140 141 142 |
# File 'lib/javaclass/java_name.rb', line 140 def to_classname self end |
#to_java_file ⇒ Object
Return the Java source file name of this class, e.g. java/lang/Object.java
. This is a plain String.
156 157 158 |
# File 'lib/javaclass/java_name.rb', line 156 def to_java_file @full_name.gsub(JavaLanguage::SEPARATOR, JavaClassFileName::SEPARATOR) + JavaLanguage::SOURCE end |
#to_javaname ⇒ Object
135 136 137 |
# File 'lib/javaclass/java_name.rb', line 135 def to_javaname self end |
#to_jvmname ⇒ Object
Return the VM name of this class, e.g. java/lang/Object
.
145 146 147 148 149 150 151 152 153 |
# File 'lib/javaclass/java_name.rb', line 145 def to_jvmname return @jvm_name if @jvm_name new_val = JavaVMName.new(@full_name.gsub(JavaLanguage::SEPARATOR, JavaVMName::SEPARATOR), self) if frozen? new_val else @jvm_name = new_val end end |