blob: f2ba6bb75ef1e1534c60679f0ff7e15078d01461 [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>BaseJdmpviewCommand (OpenJ9 JDK 11)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="keywords" content="com.ibm.jvm.dtfjview.commands.BaseJdmpviewCommand class">
<meta name="keywords" content="out">
<meta name="keywords" content="ctx">
<meta name="keywords" content="logger">
<meta name="keywords" content="hexfmt">
<meta name="keywords" content="printDetailedHelp()">
<meta name="keywords" content="initCommand()">
<meta name="keywords" content="toLong()">
<meta name="keywords" content="getArtifactType()">
<meta name="keywords" content="toHexStringAddr()">
<meta name="keywords" content="handleException()">
<meta name="keywords" content="decodeThreadState()">
<meta name="keywords" content="toHexString()">
<meta name="keywords" content="toString()">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../../../jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="BaseJdmpviewCommand (OpenJ9 JDK 11)";
}
}
catch(err) {
}
//-->
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":6,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" 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="navBarCell1Rev">Class</li>
<li><a href="class-use/BaseJdmpviewCommand.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 class="aboutLanguage"><div style="margin-top: 9px;"><strong>OpenJ9 JDK 11</strong></div></div>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="moduleLabelInType">Module</span>&nbsp;<a href="../../../../../module-summary.html">openj9.dtfjview</a></div>
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">com.ibm.jvm.dtfjview.commands</a></div>
<h2 title="Class BaseJdmpviewCommand" class="title">Class BaseJdmpviewCommand</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li><a href="../../../../../../openj9.dtfj/com/ibm/java/diagnostics/utils/commands/BaseCommand.html" title="class in com.ibm.java.diagnostics.utils.commands">com.ibm.java.diagnostics.utils.commands.BaseCommand</a></li>
<li>
<ul class="inheritance">
<li>com.ibm.jvm.dtfjview.commands.BaseJdmpviewCommand</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="../../../../../../openj9.dtfj/com/ibm/java/diagnostics/utils/commands/ICommand.html" title="interface in com.ibm.java.diagnostics.utils.commands">ICommand</a></code></dd>
</dl>
<dl>
<dt>Direct Known Subclasses:</dt>
<dd><code><a href="CdCommand.html" title="class in com.ibm.jvm.dtfjview.commands">CdCommand</a></code>, <code><a href="CloseCommand.html" title="class in com.ibm.jvm.dtfjview.commands">CloseCommand</a></code>, <code><a href="DeadlockCommand.html" title="class in com.ibm.jvm.dtfjview.commands">DeadlockCommand</a></code>, <code><a href="FindCommand.html" title="class in com.ibm.jvm.dtfjview.commands">FindCommand</a></code>, <code><a href="FindNextCommand.html" title="class in com.ibm.jvm.dtfjview.commands">FindNextCommand</a></code>, <code><a href="FindPtrCommand.html" title="class in com.ibm.jvm.dtfjview.commands">FindPtrCommand</a></code>, <code><a href="HeapdumpCommand.html" title="class in com.ibm.jvm.dtfjview.commands">HeapdumpCommand</a></code>, <code><a href="HelpCommand.html" title="class in com.ibm.jvm.dtfjview.commands">HelpCommand</a></code>, <code><a href="HexdumpCommand.html" title="class in com.ibm.jvm.dtfjview.commands">HexdumpCommand</a></code>, <code><a href="infocommands/InfoClassCommand.html" title="class in com.ibm.jvm.dtfjview.commands.infocommands">InfoClassCommand</a></code>, <code><a href="infocommands/InfoHeapCommand.html" title="class in com.ibm.jvm.dtfjview.commands.infocommands">InfoHeapCommand</a></code>, <code><a href="infocommands/InfoJitmCommand.html" title="class in com.ibm.jvm.dtfjview.commands.infocommands">InfoJitmCommand</a></code>, <code><a href="infocommands/InfoLockCommand.html" title="class in com.ibm.jvm.dtfjview.commands.infocommands">InfoLockCommand</a></code>, <code><a href="infocommands/InfoMemoryCommand.html" title="class in com.ibm.jvm.dtfjview.commands.infocommands">InfoMemoryCommand</a></code>, <code><a href="infocommands/InfoMmapCommand.html" title="class in com.ibm.jvm.dtfjview.commands.infocommands">InfoMmapCommand</a></code>, <code><a href="infocommands/InfoProcCommand.html" title="class in com.ibm.jvm.dtfjview.commands.infocommands">InfoProcCommand</a></code>, <code><a href="infocommands/InfoSymCommand.html" title="class in com.ibm.jvm.dtfjview.commands.infocommands">InfoSymCommand</a></code>, <code><a href="infocommands/InfoSystemCommand.html" title="class in com.ibm.jvm.dtfjview.commands.infocommands">InfoSystemCommand</a></code>, <code><a href="infocommands/InfoThreadCommand.html" title="class in com.ibm.jvm.dtfjview.commands.infocommands">InfoThreadCommand</a></code>, <code><a href="LogCommand.html" title="class in com.ibm.jvm.dtfjview.commands">LogCommand</a></code>, <code><a href="OpenCommand.html" title="class in com.ibm.jvm.dtfjview.commands">OpenCommand</a></code>, <code><a href="PwdCommand.html" title="class in com.ibm.jvm.dtfjview.commands">PwdCommand</a></code>, <code><a href="ScrollCommand.html" title="class in com.ibm.jvm.dtfjview.commands">ScrollCommand</a></code>, <code><a href="setcommands/SetHeapdumpCommand.html" title="class in com.ibm.jvm.dtfjview.commands.setcommands">SetHeapdumpCommand</a></code>, <code><a href="setcommands/SetLoggingCommand.html" title="class in com.ibm.jvm.dtfjview.commands.setcommands">SetLoggingCommand</a></code>, <code><a href="showcommands/ShowHeapdumpCommand.html" title="class in com.ibm.jvm.dtfjview.commands.showcommands">ShowHeapdumpCommand</a></code>, <code><a href="showcommands/ShowLoggingCommand.html" title="class in com.ibm.jvm.dtfjview.commands.showcommands">ShowLoggingCommand</a></code>, <code><a href="SimpleRedirectorCommand.html" title="class in com.ibm.jvm.dtfjview.commands">SimpleRedirectorCommand</a></code>, <code><a href="WhatisCommand.html" title="class in com.ibm.jvm.dtfjview.commands">WhatisCommand</a></code>, <code><a href="xcommands/XCommand.html" title="class in com.ibm.jvm.dtfjview.commands.xcommands">XCommand</a></code></dd>
</dl>
<hr>
<pre>public abstract class <span class="typeNameLabel">BaseJdmpviewCommand</span>
extends <a href="../../../../../../openj9.dtfj/com/ibm/java/diagnostics/utils/commands/BaseCommand.html" title="class in com.ibm.java.diagnostics.utils.commands">BaseCommand</a></pre>
<div class="block">This the base command for all jdmpview commands. It ensures consistent
behaviour with the legacy commands without breaking the generic command
encapsulation.
There are a number of methods which allow DTFJ objects to be consistently
displayed across different plugins e.g. getClassInfo(). Where the method
name starts with getXYZ the output will be returned for further processing,
however where the method starts with writeXYZ then the output is written
immediately to the command's print stream.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="BaseJdmpviewCommand.ArtifactType.html" title="enum in com.ibm.jvm.dtfjview.commands">BaseJdmpviewCommand.ArtifactType</a></span></code></th>
<td class="colLast">
<div class="block">Enum for identifying the type of artifact that is currently being analyzed.</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- =========== FIELD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected <a href="../../../../../../openj9.dtfj/com/ibm/java/diagnostics/utils/IDTFJContext.html" title="interface in com.ibm.java.diagnostics.utils">IDTFJContext</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ctx">ctx</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hexfmt">hexfmt</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.logging/java/util/logging/Logger.html?is-external=true" title="class or interface in java.util.logging" class="externalLink" target="_blank">Logger</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#logger">logger</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/PrintStream.html?is-external=true" title="class or interface in java.io" class="externalLink" target="_blank">PrintStream</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#out">out</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="fields.inherited.from.class.com.ibm.java.diagnostics.utils.commands.BaseCommand">
<!-- -->
</a>
<h3>Fields declared in class&nbsp;com.ibm.java.diagnostics.utils.commands.<a href="../../../../../../openj9.dtfj/com/ibm/java/diagnostics/utils/commands/BaseCommand.html" title="class in com.ibm.java.diagnostics.utils.commands">BaseCommand</a></h3>
<code><a href="../../../../../../openj9.dtfj/com/ibm/java/diagnostics/utils/commands/BaseCommand.html#COMMAND_FORMAT">COMMAND_FORMAT</a>, <a href="../../../../../../openj9.dtfj/com/ibm/java/diagnostics/utils/commands/BaseCommand.html#config">config</a>, <a href="../../../../../../openj9.dtfj/com/ibm/java/diagnostics/utils/commands/BaseCommand.html#nl">nl</a>, <a href="../../../../../../openj9.dtfj/com/ibm/java/diagnostics/utils/commands/BaseCommand.html#SUBCOMMAND_FORMAT">SUBCOMMAND_FORMAT</a></code></li>
</ul>
</li>
</ul>
</section>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">BaseJdmpviewCommand</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#decodeThreadState(int)">decodeThreadState</a></span>&#8203;(int&nbsp;state)</code></th>
<td class="colLast">
<div class="block">Textual description of a thread state.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>protected <a href="BaseJdmpviewCommand.ArtifactType.html" title="enum in com.ibm.jvm.dtfjview.commands">BaseJdmpviewCommand.ArtifactType</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getArtifactType()">getArtifactType</a></span>()</code></th>
<td class="colLast">
<div class="block">Determine the type of artifact currently being operated on.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#handleException(java.lang.Throwable)">handleException</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">Throwable</a>&nbsp;cause)</code></th>
<td class="colLast">
<div class="block">Lots of DTFJ methods will throw a standard set of exceptions such as corrupt data
or data unavailable.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#initCommand(java.lang.String,java.lang.String%5B%5D,com.ibm.java.diagnostics.utils.IContext,java.io.PrintStream)">initCommand</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a>&nbsp;command,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a>[]&nbsp;args,
<a href="../../../../../../openj9.dtfj/com/ibm/java/diagnostics/utils/IContext.html" title="interface in com.ibm.java.diagnostics.utils">IContext</a>&nbsp;context,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/PrintStream.html?is-external=true" title="class or interface in java.io" class="externalLink" target="_blank">PrintStream</a>&nbsp;out)</code></th>
<td class="colLast">
<div class="block">Common processing to initialize the command and make the porting of
existing jdmpview commands easier.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>abstract void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#printDetailedHelp(java.io.PrintStream)">printDetailedHelp</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/PrintStream.html?is-external=true" title="class or interface in java.io" class="externalLink" target="_blank">PrintStream</a>&nbsp;out)</code></th>
<td class="colLast">
<div class="block">Print detailed help for a given command</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toHexString(byte)">toHexString</a></span>&#8203;(byte&nbsp;num)</code></th>
<td class="colLast">
<div class="block">Format a number with the correct number of zeros as padding according
to the data type passed in.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toHexString(int)">toHexString</a></span>&#8203;(int&nbsp;num)</code></th>
<td class="colLast">
<div class="block">Format a number with the correct number of zeros as padding according
to the data type passed in.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toHexString(long)">toHexString</a></span>&#8203;(long&nbsp;num)</code></th>
<td class="colLast">
<div class="block">Format a number with the correct number of zeros as padding according
to the data type passed in.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toHexString(short)">toHexString</a></span>&#8203;(short&nbsp;num)</code></th>
<td class="colLast">
<div class="block">Format a number with the correct number of zeros as padding according
to the data type passed in.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toHexStringAddr(long)">toHexStringAddr</a></span>&#8203;(long&nbsp;num)</code></th>
<td class="colLast">
<div class="block">Format an address as hex padded with zeros according to the size of the process.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toLong(java.lang.String)">toLong</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a>&nbsp;number)</code></th>
<td class="colLast">
<div class="block">Typically used when an extension takes a numeric argument, and wants to
accept a variety of formats.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString(double)">toString</a></span>&#8203;(double&nbsp;num)</code></th>
<td class="colLast">
<div class="block">Convenience method to convert a number into a String to display.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString(float)">toString</a></span>&#8203;(float&nbsp;num)</code></th>
<td class="colLast">
<div class="block">Convenience method to convert a number into a String to display.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.com.ibm.java.diagnostics.utils.commands.BaseCommand">
<!-- -->
</a>
<h3>Methods declared in class&nbsp;com.ibm.java.diagnostics.utils.commands.<a href="../../../../../../openj9.dtfj/com/ibm/java/diagnostics/utils/commands/BaseCommand.html" title="class in com.ibm.java.diagnostics.utils.commands">BaseCommand</a></h3>
<code><a href="../../../../../../openj9.dtfj/com/ibm/java/diagnostics/utils/commands/BaseCommand.html#addCommand(java.lang.String,java.lang.String,java.lang.String)">addCommand</a>, <a href="../../../../../../openj9.dtfj/com/ibm/java/diagnostics/utils/commands/BaseCommand.html#addSubCommand(java.lang.String,java.lang.String,java.lang.String,java.lang.String)">addSubCommand</a>, <a href="../../../../../../openj9.dtfj/com/ibm/java/diagnostics/utils/commands/BaseCommand.html#setConfig(com.ibm.java.diagnostics.utils.plugins.PluginConfig)">setConfig</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods declared in class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">Object</a></h3>
<code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink" target="_blank">clone</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink" target="_blank">equals</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink" target="_blank">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink" target="_blank">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink" target="_blank">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink" target="_blank">notify</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink" target="_blank">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink" target="_blank">toString</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink" target="_blank">wait</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink" target="_blank">wait</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink" target="_blank">wait</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.com.ibm.java.diagnostics.utils.commands.ICommand">
<!-- -->
</a>
<h3>Methods declared in interface&nbsp;com.ibm.java.diagnostics.utils.commands.<a href="../../../../../../openj9.dtfj/com/ibm/java/diagnostics/utils/commands/ICommand.html" title="interface in com.ibm.java.diagnostics.utils.commands">ICommand</a></h3>
<code><a href="../../../../../../openj9.dtfj/com/ibm/java/diagnostics/utils/commands/ICommand.html#getCommandDescriptions()">getCommandDescriptions</a>, <a href="../../../../../../openj9.dtfj/com/ibm/java/diagnostics/utils/commands/ICommand.html#getCommandNames()">getCommandNames</a>, <a href="../../../../../../openj9.dtfj/com/ibm/java/diagnostics/utils/commands/ICommand.html#getConfig()">getConfig</a>, <a href="../../../../../../openj9.dtfj/com/ibm/java/diagnostics/utils/commands/ICommand.html#recognises(java.lang.String,com.ibm.java.diagnostics.utils.IContext)">recognises</a>, <a href="../../../../../../openj9.dtfj/com/ibm/java/diagnostics/utils/commands/ICommand.html#run(java.lang.String,java.lang.String%5B%5D,com.ibm.java.diagnostics.utils.IContext,java.io.PrintStream)">run</a></code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a id="out">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>out</h4>
<pre>protected&nbsp;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/PrintStream.html?is-external=true" title="class or interface in java.io" class="externalLink" target="_blank">PrintStream</a> out</pre>
</li>
</ul>
<a id="ctx">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ctx</h4>
<pre>protected&nbsp;<a href="../../../../../../openj9.dtfj/com/ibm/java/diagnostics/utils/IDTFJContext.html" title="interface in com.ibm.java.diagnostics.utils">IDTFJContext</a> ctx</pre>
</li>
</ul>
<a id="logger">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>logger</h4>
<pre>protected&nbsp;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.logging/java/util/logging/Logger.html?is-external=true" title="class or interface in java.util.logging" class="externalLink" target="_blank">Logger</a> logger</pre>
</li>
</ul>
<a id="hexfmt">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>hexfmt</h4>
<pre>protected&nbsp;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a> hexfmt</pre>
</li>
</ul>
</li>
</ul>
</section>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a id="&lt;init&gt;()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>BaseJdmpviewCommand</h4>
<pre>public&nbsp;BaseJdmpviewCommand()</pre>
</li>
</ul>
</li>
</ul>
</section>
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="printDetailedHelp(java.io.PrintStream)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>printDetailedHelp</h4>
<pre class="methodSignature">public abstract&nbsp;void&nbsp;printDetailedHelp&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/PrintStream.html?is-external=true" title="class or interface in java.io" class="externalLink" target="_blank">PrintStream</a>&nbsp;out)</pre>
<div class="block">Print detailed help for a given command</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>out</code> - stream to write the output to</dd>
</dl>
</li>
</ul>
<a id="initCommand(java.lang.String,java.lang.String[],com.ibm.java.diagnostics.utils.IContext,java.io.PrintStream)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>initCommand</h4>
<pre class="methodSignature">public final&nbsp;boolean&nbsp;initCommand&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a>&nbsp;command,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a>[]&nbsp;args,
<a href="../../../../../../openj9.dtfj/com/ibm/java/diagnostics/utils/IContext.html" title="interface in com.ibm.java.diagnostics.utils">IContext</a>&nbsp;context,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/PrintStream.html?is-external=true" title="class or interface in java.io" class="externalLink" target="_blank">PrintStream</a>&nbsp;out)
throws <a href="../../../../../../openj9.dtfj/com/ibm/java/diagnostics/utils/commands/CommandException.html" title="class in com.ibm.java.diagnostics.utils.commands">CommandException</a></pre>
<div class="block">Common processing to initialize the command and make the porting of
existing jdmpview commands easier.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>command</code> - the command being executed</dd>
<dd><code>args</code> - the supplied arguments</dd>
<dd><code>context</code> - the context within which it is operating</dd>
<dd><code>out</code> - where to write the output</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>returns true if this method has handled the output and the subclass should exit</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../../openj9.dtfj/com/ibm/java/diagnostics/utils/commands/CommandException.html" title="class in com.ibm.java.diagnostics.utils.commands">CommandException</a></code></dd>
</dl>
</li>
</ul>
<a id="toLong(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toLong</h4>
<pre class="methodSignature">public&nbsp;long&nbsp;toLong&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a>&nbsp;number)</pre>
<div class="block">Typically used when an extension takes a numeric argument, and wants to
accept a variety of formats. Currently it will support decimal or
hexadecimal formats.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>number</code> - String representation of the number to parse</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the numeric value</dd>
</dl>
</li>
</ul>
<a id="getArtifactType()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getArtifactType</h4>
<pre class="methodSignature">protected&nbsp;<a href="BaseJdmpviewCommand.ArtifactType.html" title="enum in com.ibm.jvm.dtfjview.commands">BaseJdmpviewCommand.ArtifactType</a>&nbsp;getArtifactType()</pre>
<div class="block">Determine the type of artifact currently being operated on.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>artifact type</dd>
</dl>
</li>
</ul>
<a id="toHexStringAddr(long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toHexStringAddr</h4>
<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a>&nbsp;toHexStringAddr&#8203;(long&nbsp;num)</pre>
<div class="block">Format an address as hex padded with zeros according to the size of the process.
e.g. 17 would be formatted as 0x00000011 for 32 bit and 0x0000000000000011 for 64 bit</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>num</code> - the number to format</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>formatted number</dd>
</dl>
</li>
</ul>
<a id="handleException(java.lang.Throwable)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>handleException</h4>
<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a>&nbsp;handleException&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">Throwable</a>&nbsp;cause)</pre>
<div class="block">Lots of DTFJ methods will throw a standard set of exceptions such as corrupt data
or data unavailable. This method provides a central point for handling these exceptions
and attempts to provide more context as to whether or not this is an expected occurrence
for the artifact type under analysis.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>cause</code> - the exception returned from a call to the DTFJ API</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>formatted string for displaying to the user</dd>
</dl>
</li>
</ul>
<a id="decodeThreadState(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>decodeThreadState</h4>
<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a>&nbsp;decodeThreadState&#8203;(int&nbsp;state)</pre>
<div class="block">Textual description of a thread state.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>state</code> - state to convert</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>cumulative description of the states</dd>
</dl>
</li>
</ul>
<a id="toHexString(long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toHexString</h4>
<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a>&nbsp;toHexString&#8203;(long&nbsp;num)</pre>
<div class="block">Format a number with the correct number of zeros as padding according
to the data type passed in.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>num</code> - the number to format</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>formatted number</dd>
</dl>
</li>
</ul>
<a id="toHexString(short)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toHexString</h4>
<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a>&nbsp;toHexString&#8203;(short&nbsp;num)</pre>
<div class="block">Format a number with the correct number of zeros as padding according
to the data type passed in.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>num</code> - the number to format</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>formatted number</dd>
</dl>
</li>
</ul>
<a id="toHexString(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toHexString</h4>
<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a>&nbsp;toHexString&#8203;(int&nbsp;num)</pre>
<div class="block">Format a number with the correct number of zeros as padding according
to the data type passed in.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>num</code> - the number to format</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>formatted number</dd>
</dl>
</li>
</ul>
<a id="toHexString(byte)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toHexString</h4>
<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a>&nbsp;toHexString&#8203;(byte&nbsp;num)</pre>
<div class="block">Format a number with the correct number of zeros as padding according
to the data type passed in.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>num</code> - the number to format</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>formatted number</dd>
</dl>
</li>
</ul>
<a id="toString(float)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toString</h4>
<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a>&nbsp;toString&#8203;(float&nbsp;num)</pre>
<div class="block">Convenience method to convert a number into a String to display.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>num</code> - the number to format</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>formatted number</dd>
</dl>
</li>
</ul>
<a id="toString(double)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>toString</h4>
<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a>&nbsp;toString&#8203;(double&nbsp;num)</pre>
<div class="block">Convenience method to convert a number into a String to display.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>num</code> - the number to format</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>formatted number</dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" 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="navBarCell1Rev">Class</li>
<li><a href="class-use/BaseJdmpviewCommand.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 class="aboutLanguage"><div style="margin-top: 9px;"><strong>OpenJ9 JDK 11</strong></div></div>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><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/issues" target="_blank">Eclipse Openj9 issue.</a><br> Copyright &copy; 1998, 2021, IBM Corp. and others.</small></p>
</footer>
</body>
</html>