cprover
Toggle main menu visibility
Loading...
Searching...
No Matches
java_class_loader_base.h
Go to the documentation of this file.
1
/*******************************************************************\
2
3
Module:
4
5
Author: Daniel Kroening, kroening@kroening.com
6
7
\*******************************************************************/
8
9
#ifndef CPROVER_JAVA_BYTECODE_JAVA_CLASS_LOADER_BASE_H
10
#define CPROVER_JAVA_BYTECODE_JAVA_CLASS_LOADER_BASE_H
11
12
#include <
util/irep.h
>
13
14
#include "
jar_pool.h
"
15
16
#include <list>
17
18
class
message_handlert
;
19
struct
java_bytecode_parse_treet
;
20
22
class
java_class_loader_baset
23
{
24
public
:
26
void
clear_classpath
()
27
{
28
classpath_entries
.clear();
29
}
30
35
void
add_classpath_entry
(
const
std::string &,
message_handlert
&);
36
37
static
std::string
file_to_class_name
(
const
std::string &);
38
static
std::string
class_name_to_os_file
(
const
irep_idt
&);
39
static
std::string
class_name_to_jar_file
(
const
irep_idt
&);
40
42
jar_poolt
jar_pool
;
43
44
protected
:
46
struct
classpath_entryt
47
{
48
using
kindt
=
enum
{ JAR, DIRECTORY };
49
kindt
kind
;
50
std::string
path
;
51
52
classpath_entryt
(
kindt
_kind,
const
std::string &_path)
53
:
kind
(_kind),
path
(_path)
54
{
55
}
56
};
57
59
std::list<classpath_entryt>
classpath_entries
;
60
62
std::optional<java_bytecode_parse_treet>
load_class
(
63
const
irep_idt
&class_name,
64
const
classpath_entryt
&,
65
message_handlert
&);
66
68
std::optional<java_bytecode_parse_treet>
get_class_from_jar
(
69
const
irep_idt
&class_name,
70
const
std::string &jar_file,
71
message_handlert
&);
72
74
std::optional<java_bytecode_parse_treet>
get_class_from_directory
(
75
const
irep_idt
&class_name,
76
const
std::string &path,
77
message_handlert
&);
78
};
79
80
#endif
// CPROVER_JAVA_BYTECODE_JAVA_CLASS_LOADER_BASE_H
jar_poolt
A chache for jar_filet objects, by file name.
Definition
jar_pool.h:19
java_class_loader_baset
Base class for maintaining classpath.
Definition
java_class_loader_base.h:23
java_class_loader_baset::add_classpath_entry
void add_classpath_entry(const std::string &, message_handlert &)
Appends an entry to the class path, used for loading classes.
Definition
java_class_loader_base.cpp:22
java_class_loader_baset::get_class_from_jar
std::optional< java_bytecode_parse_treet > get_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
Definition
java_class_loader_base.cpp:158
java_class_loader_baset::clear_classpath
void clear_classpath()
Clear all classpath entries.
Definition
java_class_loader_base.h:26
java_class_loader_baset::jar_pool
jar_poolt jar_pool
a cache for jar_filet, by path name
Definition
java_class_loader_base.h:42
java_class_loader_baset::load_class
std::optional< java_bytecode_parse_treet > load_class(const irep_idt &class_name, const classpath_entryt &, message_handlert &)
attempt to load a class from a classpath_entry
Definition
java_class_loader_base.cpp:135
java_class_loader_baset::class_name_to_os_file
static std::string class_name_to_os_file(const irep_idt &)
Convert a class name to a file name, with OS-dependent syntax.
Definition
java_class_loader_base.cpp:113
java_class_loader_baset::get_class_from_directory
std::optional< java_bytecode_parse_treet > get_class_from_directory(const irep_idt &class_name, const std::string &path, message_handlert &)
attempt to load a class from a given directory
Definition
java_class_loader_base.cpp:193
java_class_loader_baset::class_name_to_jar_file
static std::string class_name_to_jar_file(const irep_idt &)
Convert a class name to a file name, does the inverse of file_to_class_name.
Definition
java_class_loader_base.cpp:94
java_class_loader_baset::classpath_entries
std::list< classpath_entryt > classpath_entries
List of entries in the classpath.
Definition
java_class_loader_base.h:59
java_class_loader_baset::file_to_class_name
static std::string file_to_class_name(const std::string &)
Convert a file name to the class name.
Definition
java_class_loader_base.cpp:62
message_handlert
Definition
message.h:27
irep.h
jar_pool.h
java_bytecode_parse_treet
Definition
java_bytecode_parse_tree.h:23
java_class_loader_baset::classpath_entryt
An entry in the classpath.
Definition
java_class_loader_base.h:47
java_class_loader_baset::classpath_entryt::classpath_entryt
classpath_entryt(kindt _kind, const std::string &_path)
Definition
java_class_loader_base.h:52
java_class_loader_baset::classpath_entryt::kindt
enum { JAR, DIRECTORY } kindt
Definition
java_class_loader_base.h:48
java_class_loader_baset::classpath_entryt::kind
kindt kind
Definition
java_class_loader_base.h:49
java_class_loader_baset::classpath_entryt::path
std::string path
Definition
java_class_loader_base.h:50
irep_idt
dstringt irep_idt
Definition
verification_result.h:16
jbmc
src
java_bytecode
java_class_loader_base.h
Generated by
1.17.0