CBMC
Loading...
Searching...
No Matches
Classes | Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | List of all members
java_class_loader_baset Class Reference

Base class for maintaining classpath. More...

#include <java_class_loader_base.h>

+ Inheritance diagram for java_class_loader_baset:
+ Collaboration diagram for java_class_loader_baset:

Classes

struct   classpath_entryt
  An entry in the classpath. More...
 

Public Member Functions

  Clear all classpath entries.
 
  Appends an entry to the class path, used for loading classes.
 

Static Public Member Functions

static std::string  file_to_class_name (const std::string &)
  Convert a file name to the class name.
 
  Convert a class name to a file name, with OS-dependent syntax.
 
  Convert a class name to a file name, does the inverse of file_to_class_name.
 

Public Attributes

  a cache for jar_filet, by path name
 

Protected Member Functions

  attempt to load a class from a classpath_entry
 
std::optional< java_bytecode_parse_treetget_class_from_jar (const irep_idt &class_name, const std::string &jar_file, message_handlert &)
  attempt to load a class from a given jar file
 
std::optional< java_bytecode_parse_treetget_class_from_directory (const irep_idt &class_name, const std::string &path, message_handlert &)
  attempt to load a class from a given directory
 

Protected Attributes

  List of entries in the classpath.
 

Detailed Description

Base class for maintaining classpath.

Definition at line 22 of file java_class_loader_base.h.

Member Function Documentation

◆  add_classpath_entry()

void java_class_loader_baset::add_classpath_entry ( const std::string &  path,
message_handlertmessage_handler 
)

Appends an entry to the class path, used for loading classes.

The argument may be 1) The name of a directory, used for searching for .class files 2) The name of a JAR file

Definition at line 22 of file java_class_loader_base.cpp.

◆  class_name_to_jar_file()

std::string java_class_loader_baset::class_name_to_jar_file ( const irep_idtclass_name )
static

Convert a class name to a file name, does the inverse of file_to_class_name.

Parameters
class_name the name of the class
Returns
the class name converted to file name

Definition at line 96 of file java_class_loader_base.cpp.

◆  class_name_to_os_file()

std::string java_class_loader_baset::class_name_to_os_file ( const irep_idtclass_name )
static

Convert a class name to a file name, with OS-dependent syntax.

Parameters
class_name the name of the class
Returns
the class name converted to file name

Definition at line 115 of file java_class_loader_base.cpp.

◆  clear_classpath()

void java_class_loader_baset::clear_classpath ( )
inline

Clear all classpath entries.

Definition at line 26 of file java_class_loader_base.h.

◆  file_to_class_name()

std::string java_class_loader_baset::file_to_class_name ( const std::string &  file )
static

Convert a file name to the class name.

Java interprets folders as packages, therefore a prefix of ./ is removed if necessary, and all / are converted to .. For example a class file ./com/diffblue/test.class is converted to the class name com.diffblue.test.

Parameters
file the name of the class file
Returns
the file name converted to Java class name

Definition at line 64 of file java_class_loader_base.cpp.

◆  get_class_from_directory()

std::optional< java_bytecode_parse_treet > java_class_loader_baset::get_class_from_directory ( const irep_idtclass_name,
const std::string &  path,
message_handlertmessage_handler 
)
protected

attempt to load a class from a given directory

Load class from directory.

Parameters
class_name name of class to load in Java source format
path directory to load from
message_handler message handler
Returns
optional value of parse tree, empty if class cannot be loaded

Definition at line 195 of file java_class_loader_base.cpp.

◆  get_class_from_jar()

std::optional< java_bytecode_parse_treet > java_class_loader_baset::get_class_from_jar ( const irep_idtclass_name,
const std::string &  jar_file,
message_handlertmessage_handler 
)
protected

attempt to load a class from a given jar file

Load class from jar file.

Parameters
class_name name of class to load in Java source format
jar_file path of the jar file
message_handler message handler
Returns
optional value of parse tree, empty if class cannot be loaded

Definition at line 160 of file java_class_loader_base.cpp.

◆  load_class()

std::optional< java_bytecode_parse_treet > java_class_loader_baset::load_class ( const irep_idtclass_name,
const classpath_entrytcp_entry,
message_handlertmessage_handler 
)
protected

attempt to load a class from a classpath_entry

Definition at line 137 of file java_class_loader_base.cpp.

Member Data Documentation

◆  classpath_entries

std::list<classpath_entryt> java_class_loader_baset::classpath_entries
protected

List of entries in the classpath.

Definition at line 59 of file java_class_loader_base.h.

◆  jar_pool

jar_poolt java_class_loader_baset::jar_pool

a cache for jar_filet, by path name

Definition at line 42 of file java_class_loader_base.h.


The documentation for this class was generated from the following files:

AltStyle によって変換されたページ (->オリジナル) /