module JavaClass::JavaNameScanner

Mixin with logic to scan for hard coded class names.

Author

Peter Kofler

Constants

TEXT_REGEX

Public Instance Methods

scan_config_for_3rd_party_class_names(path, ignorepattern=/^\./) click to toggle source
# File lib/javaclass/java_name_scanner.rb, line 20
def scan_config_for_3rd_party_class_names(path, ignorepattern=/^\./)
  scan_config_for_class_names(path, ignorepattern).reject { |name| name.in_jdk? }
  # need abstraction for - .reject { |name| name.in_jdk? } - have it three times
  # maybe a mixin for enumerables containing JavaTypes
  #JavaNameEnumerable with - .reject { |name| name.in_jdk? } - und anderen? reject_in_jdk = 3rd Party
  # and find_all { |n| n.same_or_subpackage_of?(x) } -- also very often  = in_package()
end
scan_config_for_class_names(path, ignorepattern=/^\./) click to toggle source

Find all possible class names in all XML and property files under path and optionally ignore ignorepattern

# File lib/javaclass/java_name_scanner.rb, line 29
def scan_config_for_class_names(path, ignorepattern=/^\./)
  return [] unless File.exist? path
  if File.file?(path) 
    if path =~ /\.xml$|\.properties$|MANIFEST.MF$/
      scan_text_for_class_names(IO.readlines(path).join)
    else
      []
    end
  else
    Dir.entries(path).reject { |n| n =~ /^\./ or n=~ ignorepattern }.
                      map { |n| scan_config_for_class_names(File.join(path, n), ignorepattern) }.
                      flatten.sort
  end
end
scan_text_for_class_names(string) click to toggle source

Extract the list of possible class names from the given string . This will only find names with at least one package name.

# File lib/javaclass/java_name_scanner.rb, line 54
def scan_text_for_class_names(string)
  string.scan(TEXT_REGEX).flatten.map { |match| JavaQualifiedName.new(match) }
end