class JavaClass::ClassList::PackageEntry
A package in the List
. A package contains ClassEntry
.
- Author
-
Peter Kofler
Attributes
name[R]
version[R]
Return the list of versions this package exists. This is the sum of all versions of all classes in the package.
Public Class Methods
new(name, vers=0)
click to toggle source
Create a new package with name name and first version vers which is the version of the first class in the package.
# File lib/javaclass/classlist/package_entry.rb, line 15 def initialize(name, vers=0) @name = name @version = [vers] @classes = Hash.new # class_name (most likely String) => ClassEntry end
Public Instance Methods
<=>(other)
click to toggle source
Sorting in packages is: java.lang
, other java.*
, javax.*
and then others.
# File lib/javaclass/classlist/package_entry.rb, line 34 def <=>(other) if @name =~ /^java\.lang$/ and other.name !~ /^java\.lang$/ -1 elsif @name !~ /^java\.lang$/ and other.name =~ /^java\.lang$/ 1 elsif @name =~ /^java\./ and other.name !~ /^java\./ -1 elsif @name !~ /^java\./ and other.name =~ /^java\./ 1 elsif @name =~ /^javax\./ and other.name !~ /^javax\./ -1 elsif @name !~ /^javax\./ and other.name =~ /^javax\./ 1 else @name <=> other.name end end
add_class(class_name, is_public, version)
click to toggle source
# File lib/javaclass/classlist/package_entry.rb, line 21 def add_class(class_name, is_public, version) @version << version unless @version.include? version @version = @version.sort unless @classes.has_key?(class_name) @classes[class_name] = ClassEntry.new(self, class_name, is_public, version) # class_name does not need to be frozen because it's not read from the keys else @classes[class_name].update(version, is_public) end end
classes()
click to toggle source
Return the classes in this package.
# File lib/javaclass/classlist/package_entry.rb, line 53 def classes @classes.values.sort end
size()
click to toggle source
Return the number of classes in this package.
# File lib/javaclass/classlist/package_entry.rb, line 58 def size @classes.size end
to_package_shortcut_s(minversion, maxversion)
click to toggle source
Special version of to_s
for package shortcut. A package needs minversion and maxversion to determine if the whole package was dropped.
# File lib/javaclass/classlist/package_entry.rb, line 68 def to_package_shortcut_s(minversion, maxversion) "#{@name}#{format_version(minversion, maxversion)} - \n" + classes.collect { |c| c.to_package_shortcut_s }.join end
to_s()
click to toggle source
# File lib/javaclass/classlist/package_entry.rb, line 62 def to_s @name end
Private Instance Methods
format_version(minversion, maxversion)
click to toggle source
# File lib/javaclass/classlist/package_entry.rb, line 75 def format_version(minversion, maxversion) is_newer = @version.first > minversion is_outdated = @version.last < maxversion line = " [#{ is_newer ? @version.first.to_s : ''}" + "#{is_outdated ? '-' + @version.last.to_s : ''}" + "]" line.sub(/(\d)-\1/, "only \\1").sub(/ \[\]/, '') end