blob: 24d6ea09737d5d3d0e9ccb71b8dc2698d7c3e749 [file] [log] [blame]
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>ObserverContextImpl (Apache HBase 4.0.0-alpha-1-SNAPSHOT API)</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: package: org.apache.hadoop.hbase.coprocessor, class: ObserverContextImpl">
<meta name="generator" content="javadoc/ClassWriterImpl">
<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.6.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>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="class-use/ObserverContextImpl.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-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html#class">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><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="sub-nav-list">
<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>
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" 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="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">org.apache.hadoop.hbase.coprocessor</a></div>
<h1 title="Class ObserverContextImpl" class="title">Class ObserverContextImpl&lt;E extends <a href="../CoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase">CoprocessorEnvironment</a>&gt;</h1>
</div>
<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
<div class="inheritance">org.apache.hadoop.hbase.coprocessor.ObserverContextImpl&lt;E&gt;</div>
</div>
<section class="class-description" id="class-description">
<dl class="notes">
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;E&gt;</code></dd>
</dl>
<dl class="notes">
<dt>Direct Known Subclasses:</dt>
<dd><code><a href="CoprocessorHost.ObserverOperation.html" title="class in org.apache.hadoop.hbase.coprocessor">CoprocessorHost.ObserverOperation</a></code></dd>
</dl>
<hr>
<div class="type-signature"><span class="annotations">@Private
</span><span class="modifiers">public class </span><span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/ObserverContextImpl.html#line-30">ObserverContextImpl</a>&lt;E extends <a href="../CoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase">CoprocessorEnvironment</a>&gt;</span>
<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>
implements <a href="ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;E&gt;</span></div>
<div class="block">This is the only implementation of <a href="ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor"><code>ObserverContext</code></a>, which serves as the interface for
third-party Coprocessor developers.</div>
</section>
<section class="summary">
<ul class="summary-list">
<!-- =========== FIELD SUMMARY =========== -->
<li>
<section class="field-summary" id="field-summary">
<h2>Field Summary</h2>
<div class="caption"><span>Fields</span></div>
<div class="summary-table three-column-summary">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Field</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><code>private boolean</code></div>
<div class="col-second even-row-color"><code><a href="#bypass" class="member-name-link">bypass</a></code></div>
<div class="col-last even-row-color">&nbsp;</div>
<div class="col-first odd-row-color"><code>private final boolean</code></div>
<div class="col-second odd-row-color"><code><a href="#bypassable" class="member-name-link">bypassable</a></code></div>
<div class="col-last odd-row-color">
<div class="block">Is this operation bypassable?</div>
</div>
<div class="col-first even-row-color"><code>private final <a href="../security/User.html" title="class in org.apache.hadoop.hbase.security">User</a></code></div>
<div class="col-second even-row-color"><code><a href="#caller" class="member-name-link">caller</a></code></div>
<div class="col-last even-row-color">&nbsp;</div>
<div class="col-first odd-row-color"><code>private <a href="ObserverContextImpl.html" title="type parameter in ObserverContextImpl">E</a></code></div>
<div class="col-second odd-row-color"><code><a href="#env" class="member-name-link">env</a></code></div>
<div class="col-last odd-row-color">&nbsp;</div>
</div>
</section>
</li>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<li>
<section class="constructor-summary" id="constructor-summary">
<h2>Constructor Summary</h2>
<div class="caption"><span>Constructors</span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Constructor</div>
<div class="table-header col-last">Description</div>
<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E(org.apache.hadoop.hbase.security.User)" class="member-name-link">ObserverContextImpl</a><wbr>(<a href="../security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>&nbsp;caller)</code></div>
<div class="col-last even-row-color">&nbsp;</div>
<div class="col-constructor-name odd-row-color"><code><a href="#%3Cinit%3E(org.apache.hadoop.hbase.security.User,boolean)" class="member-name-link">ObserverContextImpl</a><wbr>(<a href="../security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>&nbsp;caller,
boolean&nbsp;bypassable)</code></div>
<div class="col-last odd-row-color">&nbsp;</div>
</div>
</section>
</li>
<!-- ========== 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-tab1" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab1', 3)" class="table-tab">Static 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-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button><button id="method-summary-table-tab6" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab6', 3)" class="table-tab">Deprecated 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 method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#bypass()" class="member-name-link">bypass</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Call to indicate that the current coprocessor's return value (or parameter -- depends on the
call-type) should be used in place of the value that would be obtained via normal processing;
i.e.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4 method-summary-table-tab6"><code>static &lt;E extends <a href="../CoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase">CoprocessorEnvironment</a>&gt;<br><a href="ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;E&gt;</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4 method-summary-table-tab6"><code><a href="#createAndPrepare(E)" class="member-name-link">createAndPrepare</a><wbr>(E&nbsp;env)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4 method-summary-table-tab6">
<div class="block"><span class="deprecated-label">Deprecated.</span></div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Optional.html" title="class or interface in java.util" class="external-link">Optional</a>&lt;<a href="../security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>&gt;</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getCaller()" class="member-name-link">getCaller</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns the active user for the coprocessor call.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="ObserverContextImpl.html" title="type parameter in ObserverContextImpl">E</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getEnvironment()" class="member-name-link">getEnvironment</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#isBypassable()" class="member-name-link">isBypassable</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#prepare(E)" class="member-name-link">prepare</a><wbr>(<a href="ObserverContextImpl.html" title="type parameter in ObserverContextImpl">E</a>&nbsp;env)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#shouldBypass()" class="member-name-link">shouldBypass</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
</div>
</div>
</div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
<code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ============ FIELD DETAIL =========== -->
<li>
<section class="field-details" id="field-detail">
<h2>Field Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="env">
<h3>env</h3>
<div class="member-signature"><span class="modifiers">private</span>&nbsp;<span class="return-type"><a href="ObserverContextImpl.html" title="type parameter in ObserverContextImpl">E</a> extends <a href="../CoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase">CoprocessorEnvironment</a></span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/ObserverContextImpl.html#line-32">env</a></span></div>
</section>
</li>
<li>
<section class="detail" id="bypass">
<h3>bypass</h3>
<div class="member-signature"><span class="modifiers">private</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/ObserverContextImpl.html#line-33">bypass</a></span></div>
</section>
</li>
<li>
<section class="detail" id="bypassable">
<h3>bypassable</h3>
<div class="member-signature"><span class="modifiers">private final</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/ObserverContextImpl.html#line-37">bypassable</a></span></div>
<div class="block">Is this operation bypassable?</div>
</section>
</li>
<li>
<section class="detail" id="caller">
<h3>caller</h3>
<div class="member-signature"><span class="modifiers">private final</span>&nbsp;<span class="return-type"><a href="../security/User.html" title="class in org.apache.hadoop.hbase.security">User</a></span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/ObserverContextImpl.html#line-38">caller</a></span></div>
</section>
</li>
</ul>
</section>
</li>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<li>
<section class="constructor-details" id="constructor-detail">
<h2>Constructor Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="&lt;init&gt;(org.apache.hadoop.hbase.security.User)">
<h3>ObserverContextImpl</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/ObserverContextImpl.html#line-40">ObserverContextImpl</a></span><wbr><span class="parameters">(<a href="../security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>&nbsp;caller)</span></div>
</section>
</li>
<li>
<section class="detail" id="&lt;init&gt;(org.apache.hadoop.hbase.security.User,boolean)">
<h3>ObserverContextImpl</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/ObserverContextImpl.html#line-44">ObserverContextImpl</a></span><wbr><span class="parameters">(<a href="../security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>&nbsp;caller,
boolean&nbsp;bypassable)</span></div>
</section>
</li>
</ul>
</section>
</li>
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method-detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="getEnvironment()">
<h3>getEnvironment</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="ObserverContextImpl.html" title="type parameter in ObserverContextImpl">E</a></span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/ObserverContextImpl.html#line-49">getEnvironment</a></span>()</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="ObserverContext.html#getEnvironment()">getEnvironment</a></code>&nbsp;in interface&nbsp;<code><a href="ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="ObserverContextImpl.html" title="type parameter in ObserverContextImpl">E</a> extends <a href="../CoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase">CoprocessorEnvironment</a>&gt;</code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="prepare(E)">
<h3 id="prepare(org.apache.hadoop.hbase.CoprocessorEnvironment)">prepare</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/ObserverContextImpl.html#line-54">prepare</a></span><wbr><span class="parameters">(<a href="ObserverContextImpl.html" title="type parameter in ObserverContextImpl">E</a>&nbsp;env)</span></div>
</section>
</li>
<li>
<section class="detail" id="isBypassable()">
<h3>isBypassable</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/ObserverContextImpl.html#line-58">isBypassable</a></span>()</div>
</section>
</li>
<li>
<section class="detail" id="bypass()">
<h3>bypass</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/ObserverContextImpl.html#line-62">bypass</a></span>()</div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="ObserverContext.html#bypass()">ObserverContext</a></code></span></div>
<div class="block">Call to indicate that the current coprocessor's return value (or parameter -- depends on the
call-type) should be used in place of the value that would be obtained via normal processing;
i.e. bypass the core call and return the Coprocessor's result instead. DOES NOT work for all
Coprocessor invocations, only on a small subset of methods, mostly preXXX calls in
RegionObserver. Check javadoc on the pertinent Coprocessor Observer to see if
<code>bypass</code> is supported.
<p>
This behavior of honoring only a subset of methods is new since hbase-2.0.0.
<p>
Where bypass is supported what is being bypassed is all of the core code implementing the
remainder of the operation. In order to understand what calling bypass() will skip, a
coprocessor implementer should read and understand all of the remaining code and its nuances.
Although this is good practice for coprocessor developers in general, it demands a lot. What is
skipped is extremely version dependent. The core code will vary, perhaps significantly, even
between point releases. We do not provide the promise of consistent behavior even between point
releases for the bypass semantic. To achieve that we could not change any code between hook
points. Therefore the coprocessor implementer becomes an HBase core developer in practice as
soon as they rely on bypass(). Every release of HBase may break the assumption that the
replacement for the bypassed code takes care of all necessary skipped concerns. Because those
concerns can change at any point, such an assumption is never safe.
</p>
<p>
As of hbase2, when bypass has been set, we will NOT call any Coprocessors follow the bypassing
Coprocessor; we cut short the processing and return the bypassing Coprocessors response (this
used be a separate 'complete' option that has been folded into the 'bypass' in hbase2.
</p></div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="ObserverContext.html#bypass()">bypass</a></code>&nbsp;in interface&nbsp;<code><a href="ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="ObserverContextImpl.html" title="type parameter in ObserverContextImpl">E</a> extends <a href="../CoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase">CoprocessorEnvironment</a>&gt;</code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="shouldBypass()">
<h3>shouldBypass</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/ObserverContextImpl.html#line-74">shouldBypass</a></span>()</div>
<dl class="notes">
<dt>Returns:</dt>
<dd><code>true</code>, if <a href="ObserverContext.html#bypass()"><code>ObserverContext.bypass()</code></a> was called by one of the loaded
coprocessors, <code>false</code> otherwise.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getCaller()">
<h3>getCaller</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Optional.html" title="class or interface in java.util" class="external-link">Optional</a>&lt;<a href="../security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>&gt;</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/ObserverContextImpl.html#line-85">getCaller</a></span>()</div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="ObserverContext.html#getCaller()">ObserverContext</a></code></span></div>
<div class="block">Returns the active user for the coprocessor call. If an explicit <code>User</code> instance was
provided to the constructor, that will be returned, otherwise if we are in the context of an
RPC call, the remote user is used. May not be present if the execution is outside of an RPC
context.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="ObserverContext.html#getCaller()">getCaller</a></code>&nbsp;in interface&nbsp;<code><a href="ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="ObserverContextImpl.html" title="type parameter in ObserverContextImpl">E</a> extends <a href="../CoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase">CoprocessorEnvironment</a>&gt;</code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="createAndPrepare(E)">
<h3 id="createAndPrepare(org.apache.hadoop.hbase.CoprocessorEnvironment)">createAndPrepare</h3>
<div class="member-signature"><span class="annotations"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Deprecated.html" title="class or interface in java.lang" class="external-link">@Deprecated</a>
</span><span class="modifiers">public static</span>&nbsp;<span class="type-parameters">&lt;E extends <a href="../CoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase">CoprocessorEnvironment</a>&gt;</span>
<span class="return-type"><a href="ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;E&gt;</span>&nbsp;<span class="element-name"><a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/ObserverContextImpl.html#line-98">createAndPrepare</a></span><wbr><span class="parameters">(E&nbsp;env)</span></div>
<div class="deprecation-block"><span class="deprecated-label">Deprecated.</span></div>
<div class="block">Instantiates a new ObserverContext instance if the passed reference is <code>null</code> and
sets the environment in the new or existing instance. This allows deferring the instantiation
of a ObserverContext until it is actually needed.</div>
<dl class="notes">
<dt>Type Parameters:</dt>
<dd><code>E</code> - The environment type for the context</dd>
<dt>Parameters:</dt>
<dd><code>env</code> - The coprocessor environment to set</dd>
<dt>Returns:</dt>
<dd>An instance of <code>ObserverContext</code> with the environment set</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small>Copyright &#169; 2007&#x2013;2020 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>