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

Methods

Included Modules

PackageLogic SimpleNameLogic

Constants

VALID_REGEX = /^ ( (?: #{JavaLanguage::IDENTIFIER_REGEX}#{JavaLanguage::SEPARATOR_REGEX} )* ) ( #{JavaLanguage::IDENTIFIER_REGEX} ) $/x

Public Class methods

Create a new qualified name string with optional jvmname and classname classes which may be available.

[Source]

# 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?

[Source]

# File lib/javaclass/java_name.rb, line 109
    def self.valid?(string)
      string =~ VALID_REGEX
    end

Public Instance methods

Full normalized class name of this class. This returns just the plain String.

[Source]

# File lib/javaclass/java_name.rb, line 131
    def full_name
      @full_name
    end

Return the Java class file name of this class, e.g. java/lang/Object.class.

[Source]

# 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.

[Source]

# File lib/javaclass/java_name.rb, line 140
    def to_classname
      self
    end

Return the Java source file name of this class, e.g. java/lang/Object.java. This is a plain String.

[Source]

# File lib/javaclass/java_name.rb, line 156
    def to_java_file
      @full_name.gsub(JavaLanguage::SEPARATOR, JavaClassFileName::SEPARATOR) + JavaLanguage::SOURCE
    end

[Source]

# File lib/javaclass/java_name.rb, line 135
    def to_javaname
      self
    end

Return the VM name of this class, e.g. java/lang/Object.

[Source]

# 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

[Validate]