class JavaClass::JavaVMName
A class name from the JVM. That is a/b/C
. These names are read from the constant pool. Atoms and arrays are expressed as JVM names as well.
- Author
-
Peter Kofler
Constants
- ARRAY_REGEX
- ATOMS
Mapping of atoms to wrappers.
- SEPARATOR
- SEPARATOR_REGEX
- VALID_REGEX
Public Class Methods
new(string, qualified=nil)
click to toggle source
Create a new JVM name string with optional qualified class which may be available.
Calls superclass method
# File lib/javaclass/java_name.rb, line 213 def initialize(string, qualified=nil) super string if string =~ ARRAY_REGEX @is_array = string[/^\[+/].length string = string.sub(ARRAY_REGEX, '\1\2') if string =~ /^[BSIJFDZC]$/ @is_atom = string string = ATOMS[string] else @is_atom = false end else @is_array = false end if string =~ VALID_REGEX @jvm_name = string else raise ArgumentError, "#{string} is no valid JVM name" end @qualified_name = qualified @class_name = nil end
valid?(string)
click to toggle source
Is string a valid JVM name?
# File lib/javaclass/java_name.rb, line 208 def self.valid?(string) string =~ ARRAY_REGEX || string =~ VALID_REGEX end
Public Instance Methods
array?()
click to toggle source
Is this a bytecode array, e.g. represented by [B
.
# File lib/javaclass/java_name.rb, line 241 def array? @is_array end
to_class_file()
click to toggle source
# File lib/javaclass/java_name.rb, line 263 def to_class_file return @class_name if @class_name new_val = JavaClassFileName.new(@jvm_name + JavaLanguage::CLASS, @qualified_name) if frozen? new_val else @class_name = new_val end end
to_classname()
click to toggle source
# File lib/javaclass/java_name.rb, line 245 def to_classname return @qualified_name if @qualified_name new_val = JavaQualifiedName.new(@jvm_name.gsub(SEPARATOR, JavaLanguage::SEPARATOR), self, nil) if frozen? new_val else @qualified_name = new_val end end
to_java_file()
click to toggle source
# File lib/javaclass/java_name.rb, line 259 def to_java_file @jvm_name + JavaLanguage::SOURCE end
to_jvmname()
click to toggle source
# File lib/javaclass/java_name.rb, line 255 def to_jvmname self end