blob: a7c89b32c9ce6a18f2249a4fd8feb3f1b0b3a928 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>ObserverContextImpl (Apache HBase 3.0.0-alpha-2-SNAPSHOT API)</title>
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="ObserverContextImpl (Apache HBase 3.0.0-alpha-2-SNAPSHOT API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":41,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">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">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/hadoop/hbase/coprocessor/ReadOnlyConfiguration.html" title="class in org.apache.hadoop.hbase.coprocessor"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/hadoop/hbase/coprocessor/ObserverContextImpl.html" target="_top">Frames</a></li>
<li><a href="ObserverContextImpl.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></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>
</div>
<div>
<ul class="subNavList">
<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="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 name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.hadoop.hbase.coprocessor</div>
<h2 title="Class ObserverContextImpl" class="title">Class ObserverContextImpl&lt;E extends <a href="../../../../../org/apache/hadoop/hbase/CoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase">CoprocessorEnvironment</a>&gt;</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>org.apache.hadoop.hbase.coprocessor.ObserverContextImpl&lt;E&gt;</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;E&gt;</dd>
</dl>
<dl>
<dt>Direct Known Subclasses:</dt>
<dd><a href="../../../../../org/apache/hadoop/hbase/coprocessor/CoprocessorHost.ObserverOperation.html" title="class in org.apache.hadoop.hbase.coprocessor">CoprocessorHost.ObserverOperation</a></dd>
</dl>
<hr>
<br>
<pre>@InterfaceAudience.Private
public class <a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/ObserverContextImpl.html#line.31">ObserverContextImpl</a>&lt;E extends <a href="../../../../../org/apache/hadoop/hbase/CoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase">CoprocessorEnvironment</a>&gt;
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;E&gt;</pre>
<div class="block">This is the only implementation of <a href="../../../../../org/apache/hadoop/hbase/coprocessor/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>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContextImpl.html#bypass">bypass</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContextImpl.html#bypassable">bypassable</a></span></code>
<div class="block">Is this operation bypassable?</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContextImpl.html#caller">caller</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContextImpl.html" title="type parameter in ObserverContextImpl">E</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContextImpl.html#env">env</a></span></code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContextImpl.html#ObserverContextImpl-org.apache.hadoop.hbase.security.User-">ObserverContextImpl</a></span>(<a href="../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>&nbsp;caller)</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContextImpl.html#ObserverContextImpl-org.apache.hadoop.hbase.security.User-boolean-">ObserverContextImpl</a></span>(<a href="../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>&nbsp;caller,
boolean&nbsp;bypassable)</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></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="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContextImpl.html#bypass--">bypass</a></span>()</code>
<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>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>static &lt;E extends <a href="../../../../../org/apache/hadoop/hbase/CoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase">CoprocessorEnvironment</a>&gt;<br><a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;E&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContextImpl.html#createAndPrepare-E-">createAndPrepare</a></span>(E&nbsp;env)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContextImpl.html#getCaller--">getCaller</a></span>()</code>
<div class="block">Returns the active user for the coprocessor call.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContextImpl.html" title="type parameter in ObserverContextImpl">E</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContextImpl.html#getEnvironment--">getEnvironment</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContextImpl.html#isBypassable--">isBypassable</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContextImpl.html#prepare-E-">prepare</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContextImpl.html" title="type parameter in ObserverContextImpl">E</a>&nbsp;env)</code>&nbsp;</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContextImpl.html#shouldBypass--">shouldBypass</a></span>()</code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a name="env">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>env</h4>
<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContextImpl.html" title="type parameter in ObserverContextImpl">E</a> extends <a href="../../../../../org/apache/hadoop/hbase/CoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase">CoprocessorEnvironment</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/ObserverContextImpl.html#line.32">env</a></pre>
</li>
</ul>
<a name="bypass">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>bypass</h4>
<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/ObserverContextImpl.html#line.33">bypass</a></pre>
</li>
</ul>
<a name="bypassable">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>bypassable</h4>
<pre>private final&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/ObserverContextImpl.html#line.37">bypassable</a></pre>
<div class="block">Is this operation bypassable?</div>
</li>
</ul>
<a name="caller">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>caller</h4>
<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/ObserverContextImpl.html#line.38">caller</a></pre>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="ObserverContextImpl-org.apache.hadoop.hbase.security.User-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ObserverContextImpl</h4>
<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/ObserverContextImpl.html#line.40">ObserverContextImpl</a>(<a href="../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>&nbsp;caller)</pre>
</li>
</ul>
<a name="ObserverContextImpl-org.apache.hadoop.hbase.security.User-boolean-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>ObserverContextImpl</h4>
<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/ObserverContextImpl.html#line.44">ObserverContextImpl</a>(<a href="../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>&nbsp;caller,
boolean&nbsp;bypassable)</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="getEnvironment--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getEnvironment</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContextImpl.html" title="type parameter in ObserverContextImpl">E</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/ObserverContextImpl.html#line.50">getEnvironment</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html#getEnvironment--">getEnvironment</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContextImpl.html" title="type parameter in ObserverContextImpl">E</a> extends <a href="../../../../../org/apache/hadoop/hbase/CoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase">CoprocessorEnvironment</a>&gt;</code></dd>
</dl>
</li>
</ul>
<a name="prepare-org.apache.hadoop.hbase.CoprocessorEnvironment-">
<!-- -->
</a><a name="prepare-E-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>prepare</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/ObserverContextImpl.html#line.54">prepare</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContextImpl.html" title="type parameter in ObserverContextImpl">E</a>&nbsp;env)</pre>
</li>
</ul>
<a name="isBypassable--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isBypassable</h4>
<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/ObserverContextImpl.html#line.58">isBypassable</a>()</pre>
</li>
</ul>
<a name="bypass--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>bypass</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/ObserverContextImpl.html#line.63">bypass</a>()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/coprocessor/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>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html#bypass--">bypass</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContextImpl.html" title="type parameter in ObserverContextImpl">E</a> extends <a href="../../../../../org/apache/hadoop/hbase/CoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase">CoprocessorEnvironment</a>&gt;</code></dd>
</dl>
</li>
</ul>
<a name="shouldBypass--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>shouldBypass</h4>
<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/ObserverContextImpl.html#line.74">shouldBypass</a>()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code>, if <a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html#bypass--"><code>ObserverContext.bypass()</code></a> was called by one of the loaded
coprocessors, <code>false</code> otherwise.</dd>
</dl>
</li>
</ul>
<a name="getCaller--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCaller</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/ObserverContextImpl.html#line.86">getCaller</a>()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/coprocessor/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>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html#getCaller--">getCaller</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContextImpl.html" title="type parameter in ObserverContextImpl">E</a> extends <a href="../../../../../org/apache/hadoop/hbase/CoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase">CoprocessorEnvironment</a>&gt;</code></dd>
</dl>
</li>
</ul>
<a name="createAndPrepare-org.apache.hadoop.hbase.CoprocessorEnvironment-">
<!-- -->
</a><a name="createAndPrepare-E-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>createAndPrepare</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
public static&nbsp;&lt;E extends <a href="../../../../../org/apache/hadoop/hbase/CoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase">CoprocessorEnvironment</a>&gt;&nbsp;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;E&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/ObserverContextImpl.html#line.100">createAndPrepare</a>(E&nbsp;env)</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</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>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>E</code> - The environment type for the context</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>env</code> - The coprocessor environment to set</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>An instance of <code>ObserverContext</code> with the environment set</dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">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">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/hadoop/hbase/coprocessor/ReadOnlyConfiguration.html" title="class in org.apache.hadoop.hbase.coprocessor"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/hadoop/hbase/coprocessor/ObserverContextImpl.html" target="_top">Frames</a></li>
<li><a href="ObserverContextImpl.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.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>
</div>
<div>
<ul class="subNavList">
<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="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 name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2021 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>