blob: 0e0e4d319253f2beaed87b06ac0afe2d6d38f9ca [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (16) -->
<title>JavaClassLoader (OpenJ9 JDK 16)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description" content="declaration: module: openj9.dtfj, package: com.ibm.dtfj.java, interface: JavaClassLoader">
<meta name="generator" content="javadoc/ClassWriterImpl">
<meta name="keywords" content="com.ibm.dtfj.java.JavaClassLoader interface">
<meta name="keywords" content="getDefinedClasses()">
<meta name="keywords" content="getCachedClasses()">
<meta name="keywords" content="findClass()">
<meta name="keywords" content="getObject()">
<meta name="keywords" content="equals()">
<meta name="keywords" content="hashCode()">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-3.5.1.min.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var evenRowColor = "even-row-color";
var oddRowColor = "odd-row-color";
var tableTab = "table-tab";
var activeTableTab = "active-table-tab";
var pathtoroot = "../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar.top">
<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<div class="about-language"><div style="margin-top: 9px;"><strong>OpenJ9 JDK 16</strong></div></div>
<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="../../../../module-summary.html">Module</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="class-use/JavaClassLoader.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-files/index-1.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div>
<ul class="sub-nav-list">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="sub-nav-list">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<div class="nav-list-search"><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip.navbar.top">
<!-- -->
</span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="module-label-in-type">Module</span>&nbsp;<a href="../../../../module-summary.html">openj9.dtfj</a></div>
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">com.ibm.dtfj.java</a></div>
<h1 title="Interface JavaClassLoader" class="title">Interface JavaClassLoader</h1>
</div>
<section class="description">
<dl class="notes">
<dt>All Known Implementing Classes:</dt>
<dd><code><a href="../../j9ddr/vm29/view/dtfj/java/DTFJJavaClassloader.html" title="class in com.ibm.j9ddr.vm29.view.dtfj.java">DTFJJavaClassloader</a></code>, <code><a href="j9/JavaClassLoader.html" title="class in com.ibm.dtfj.java.j9">JavaClassLoader</a></code>, <code><a href="javacore/JCJavaClassLoader.html" title="class in com.ibm.dtfj.java.javacore">JCJavaClassLoader</a></code></dd>
</dl>
<hr>
<div class="type-signature"><span class="modifiers">public interface </span><span class="element-name type-name-label">JavaClassLoader</span></div>
<div class="block"><p>Represents an internal ClassLoader structure within a Java VM instance.
For most ClassLoaders there is a corresponding <code>java.lang.ClassLoader</code>
object within with JavaRuntime. For primordial class loaders such as
the bootstrap class loader, there may or may not be a corresponding
<code>java.lang.ClassLoader</code> instance.</p>
<p>Since Java does not define any strict inheritance structure between
class loaders, there are no APIs for inspecting 'child' or 'parent'
class loaders. This information may be inferred by inspecting the
corresponding <code>java.lang.ClassLoader</code> instance.</p></div>
<dl class="notes">
<dt>See Also:</dt>
<dd><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/ClassLoader.html" title="class or interface in java.lang" class="external-link" target="_blank"><code>ClassLoader</code></a></dd>
</dl>
</section>
<section class="summary">
<ul class="summary-list">
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method.summary">
<h2>Method Summary</h2>
<div id="method-summary-table">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab3" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab3', 3)" class="table-tab">Abstract Methods</button></div>
<div id="method-summary-table.tabpanel" role="tabpanel">
<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code>boolean</code></div>
<div class="col-second even-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code><span class="member-name-link"><a href="#equals(java.lang.Object)">equals</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link" target="_blank">Object</a>&nbsp;obj)</code></div>
<div class="col-last even-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3">
<div class="block">Compares the argument to the receiver, and answers true
if they represent the <em>same</em> object using a class
specific comparison.</div>
</div>
<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code><a href="JavaClass.html" title="interface in com.ibm.dtfj.java">JavaClass</a></code></div>
<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code><span class="member-name-link"><a href="#findClass(java.lang.String)">findClass</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link" target="_blank">String</a>&nbsp;name)</code></div>
<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3">
<div class="block">Find a named class within this class loader.</div>
</div>
<div class="col-first even-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/Iterator.html" title="class or interface in java.util" class="external-link" target="_blank">Iterator</a></code></div>
<div class="col-second even-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code><span class="member-name-link"><a href="#getCachedClasses()">getCachedClasses</a></span>()</code></div>
<div class="col-last even-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3">
<div class="block">When a ClassLoader successfully delegates a findClass() request to
another ClassLoader, the result of the delegation must be cached within
the internal structure so that the VM does not make repeated requests
for the same class.</div>
</div>
<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/Iterator.html" title="class or interface in java.util" class="external-link" target="_blank">Iterator</a></code></div>
<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code><span class="member-name-link"><a href="#getDefinedClasses()">getDefinedClasses</a></span>()</code></div>
<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3">
<div class="block">Get the set of classes which are defined in this JavaClassLoader.</div>
</div>
<div class="col-first even-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code><a href="JavaObject.html" title="interface in com.ibm.dtfj.java">JavaObject</a></code></div>
<div class="col-second even-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code><span class="member-name-link"><a href="#getObject()">getObject</a></span>()</code></div>
<div class="col-last even-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3">
<div class="block">Get the java.lang.ClassLoader instance associated with this class loader.</div>
</div>
<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code>int</code></div>
<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3"><code><span class="member-name-link"><a href="#hashCode()">hashCode</a></span>()</code></div>
<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table method-summary-table-tab3">
<div class="block">Answers an integer hash code for the receiver.</div>
</div>
</div>
</div>
</div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method.detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="getDefinedClasses()">
<h3>getDefinedClasses</h3>
<div class="member-signature"><span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/Iterator.html" title="class or interface in java.util" class="external-link" target="_blank">Iterator</a></span>&nbsp;<span class="element-name">getDefinedClasses</span>()</div>
<div class="block">Get the set of classes which are defined in this JavaClassLoader.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>an iterator over the collection of classes which are defined
in this JavaClassLoader</dd>
<dt>See Also:</dt>
<dd><a href="JavaClass.html" title="interface in com.ibm.dtfj.java"><code>JavaClass</code></a>,
<a href="../image/CorruptData.html" title="interface in com.ibm.dtfj.image"><code>CorruptData</code></a></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getCachedClasses()">
<h3>getCachedClasses</h3>
<div class="member-signature"><span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/Iterator.html" title="class or interface in java.util" class="external-link" target="_blank">Iterator</a></span>&nbsp;<span class="element-name">getCachedClasses</span>()</div>
<div class="block">When a ClassLoader successfully delegates a findClass() request to
another ClassLoader, the result of the delegation must be cached within
the internal structure so that the VM does not make repeated requests
for the same class.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>an iterator over the collection of classes which are defined
in this JavaClassLoader <i>or</i> which were found by delegation to
other JavaClassLoaders</dd>
<dt>See Also:</dt>
<dd><a href="JavaClass.html" title="interface in com.ibm.dtfj.java"><code>JavaClass</code></a>,
<a href="../image/CorruptData.html" title="interface in com.ibm.dtfj.image"><code>CorruptData</code></a></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="findClass(java.lang.String)">
<h3>findClass</h3>
<div class="member-signature"><span class="return-type"><a href="JavaClass.html" title="interface in com.ibm.dtfj.java">JavaClass</a></span>&nbsp;<span class="element-name">findClass</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link" target="_blank">String</a>&nbsp;name)</span>
throws <span class="exceptions"><a href="../image/CorruptDataException.html" title="class in com.ibm.dtfj.image">CorruptDataException</a></span></div>
<div class="block">Find a named class within this class loader. The class may have been
defined in this class loader, or this class loader may have delegated
the load to another class loader and cached the result.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>name</code> - of the class to find. Packages should be separated by
'/' instead of '.'</dd>
<dt>Returns:</dt>
<dd>the JavaClass instance, or null if it is not found</dd>
<dt>Throws:</dt>
<dd><code><a href="../image/CorruptDataException.html" title="class in com.ibm.dtfj.image">CorruptDataException</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getObject()">
<h3>getObject</h3>
<div class="member-signature"><span class="return-type"><a href="JavaObject.html" title="interface in com.ibm.dtfj.java">JavaObject</a></span>&nbsp;<span class="element-name">getObject</span>()
throws <span class="exceptions"><a href="../image/CorruptDataException.html" title="class in com.ibm.dtfj.image">CorruptDataException</a></span></div>
<div class="block">Get the java.lang.ClassLoader instance associated with this class loader.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>a JavaObject representing the java.lang.ClassLoader instance
associated with this class loader, or null if there is no Java class
loader associated with this low-level class loader.</dd>
<dt>Throws:</dt>
<dd><code><a href="../image/CorruptDataException.html" title="class in com.ibm.dtfj.image">CorruptDataException</a></code></dd>
<dt>See Also:</dt>
<dd><a href="JavaObject.html" title="interface in com.ibm.dtfj.java"><code>JavaObject</code></a>,
<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/ClassLoader.html" title="class or interface in java.lang" class="external-link" target="_blank"><code>ClassLoader</code></a></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="equals(java.lang.Object)">
<h3>equals</h3>
<div class="member-signature"><span class="return-type">boolean</span>&nbsp;<span class="element-name">equals</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link" target="_blank">Object</a>&nbsp;obj)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from class:&nbsp;<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link" target="_blank">java.lang.Object</a></code></span></div>
<div class="block">Compares the argument to the receiver, and answers true
if they represent the <em>same</em> object using a class
specific comparison. The implementation in Object answers
true only if the argument is the exact same object as the
receiver (==).</div>
<dl class="notes">
<dt>Overrides:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link" target="_blank">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link" target="_blank">Object</a></code></dd>
<dt>Parameters:</dt>
<dd><code>obj</code> - </dd>
<dt>Returns:</dt>
<dd>True if the given object refers to the same Java Class Loader in the image</dd>
<dt>See Also:</dt>
<dd><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link" target="_blank"><code>Object.hashCode()</code></a></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="hashCode()">
<h3>hashCode</h3>
<div class="member-signature"><span class="return-type">int</span>&nbsp;<span class="element-name">hashCode</span>()</div>
<div class="block"><span class="descfrm-type-label">Description copied from class:&nbsp;<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link" target="_blank">java.lang.Object</a></code></span></div>
<div class="block">Answers an integer hash code for the receiver. Any two
objects which answer <code>true</code> when passed to
<code>.equals</code> must answer the same value for this
method.</div>
<dl class="notes">
<dt>Overrides:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link" target="_blank">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link" target="_blank">Object</a></code></dd>
<dt>Returns:</dt>
<dd>the receiver's hash.</dd>
<dt>See Also:</dt>
<dd><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link" target="_blank"><code>Object.equals(java.lang.Object)</code></a></dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small><a href="https://www.eclipse.org/openj9/" target="_blank">Eclipse OpenJ9 website.</a><br> To raise a bug report or suggest an improvement create an <a href="https://github.com/eclipse-openj9/openj9/issues" target="_blank">Eclipse Openj9 issue.</a><br> Copyright &copy; 1998, 2021, IBM Corp. and others.</small></p>
</footer>
</div>
</div>
</body>
</html>