Class | JavaClass::JavaClassFileName |
In: |
lib/javaclass/java_name.rb
|
Parent: | String |
A Java class file name from the file system. That is a/b/C.class. These names are read from the FolderClasspath.
Author: | Peter Kofler |
SEPARATOR | = | '/' |
SEPARATOR_REGEX | = | /\/|\\/ |
VALID_REGEX | = | /^ (?: #{JavaLanguage::IDENTIFIER_REGEX}#{SEPARATOR_REGEX} )* #{JavaLanguage::IDENTIFIER_REGEX} #{JavaLanguage::CLASS_REGEX} /x |
file_name | [R] | The plain file name of this class file. |
Create a new class file name string with optional qualified class which may be available.
# File lib/javaclass/java_name.rb, line 296 def initialize(string, qualified=nil) super string if string =~ VALID_REGEX @file_name = string.gsub(SEPARATOR_REGEX, SEPARATOR) else raise ArgumentError, "#{string} is no valid class file name" end @qualified_name = qualified @jvm_name = nil end
Is string a valid class file name?
# File lib/javaclass/java_name.rb, line 288 def self.valid?(string) string =~ VALID_REGEX end
# File lib/javaclass/java_name.rb, line 307 def to_classname return @qualified_name if @qualified_name new_val = JavaQualifiedName.new( @file_name.gsub(SEPARATOR_REGEX, JavaLanguage::SEPARATOR).sub(JavaLanguage::CLASS_REGEX, ''), nil, self) if frozen? new_val else @qualified_name = new_val end end
# File lib/javaclass/java_name.rb, line 329 def to_java_file @file_name.sub(JavaLanguage::CLASS_REGEX, JavaLanguage::SOURCE) end