<!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 (1.8.0_272) on Thu Nov 12 16:27:23 PST 2020 -->
<title>Region (Apache Geode 1.13.1)</title>
<meta name="date" content="2020-11-12">
<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="Region (Apache Geode 1.13.1)";
        }
    }
    catch(err) {
    }
//-->
var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":38,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":38,"i19":6,"i20":6,"i21":6,"i22":6,"i23":6,"i24":6,"i25":38,"i26":6,"i27":6,"i28":6,"i29":6,"i30":6,"i31":6,"i32":6,"i33":6,"i34":6,"i35":6,"i36":6,"i37":6,"i38":6,"i39":6,"i40":6,"i41":6,"i42":6,"i43":6,"i44":6,"i45":6,"i46":6,"i47":6,"i48":6,"i49":38,"i50":6,"i51":6,"i52":6,"i53":6,"i54":6,"i55":6,"i56":6,"i57":6,"i58":6,"i59":6,"i60":6,"i61":6,"i62":6,"i63":6,"i64":6,"i65":6,"i66":6,"i67":6,"i68":6,"i69":6,"i70":6,"i71":18,"i72":18,"i73":18,"i74":18,"i75":18,"i76":18,"i77":18,"i78":18,"i79":6,"i80":6,"i81":6,"i82":6,"i83":6,"i84":6,"i85":6,"i86":6,"i87":6,"i88":6,"i89":6,"i90":6,"i91":38,"i92":6,"i93":6,"i94":6,"i95":6,"i96":6,"i97":6,"i98":6,"i99":6,"i100":38};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],16:["t5","Default 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="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/geode/cache/PartitionResolver.html" title="interface in org.apache.geode.cache"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/apache/geode/cache/Region.Entry.html" title="interface in org.apache.geode.cache"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/geode/cache/Region.html" target="_top">Frames</a></li>
<li><a href="Region.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><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li>Constr&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>Constr&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.geode.cache</div>
<h2 title="Interface Region" class="title">Interface Region&lt;K,V&gt;</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Superinterfaces:</dt>
<dd><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentMap</a>&lt;K,V&gt;, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;K,V&gt;</dd>
</dl>
<hr>
<br>
<pre>public interface <span class="typeNameLabel">Region&lt;K,V&gt;</span>
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentMap</a>&lt;K,V&gt;</pre>
<div class="block">Manages subregions and cached data. Each region can contain multiple subregions and entries for
 data. Regions provide a hierarchical name space within the cache. Also, a region can be used to
 group cached objects for management purposes.
 <p>

 The Region interface basically contains two set of APIs: Region management APIs; and
 (potentially) distributed operations on entries. Non-distributed operations on entries are
 provided by the inner interface, <a href="../../../../org/apache/geode/cache/Region.Entry.html" title="interface in org.apache.geode.cache"><code>Region.Entry</code></a>.
 <p>

 Each <a href="../../../../org/apache/geode/cache/Cache.html" title="interface in org.apache.geode.cache"><code>Cache</code></a> defines a single top region called the root region.
 User applications can use the root region to create subregions for isolated name space and object
 grouping.
 <p>

 A region's name can be any String except that it should not contain the region name separator, a
 forward slash (/).

 <code>Region</code>s can be referenced by a relative path name from any region higher in the
 hierarchy in <a href="../../../../org/apache/geode/cache/Region.html#getSubregion-java.lang.String-"><code>getSubregion(java.lang.String)</code></a>. You can get the relative path from the root region with
 <a href="../../../../org/apache/geode/cache/Region.html#getFullPath--"><code>getFullPath()</code></a>. The name separator is used to concatenate all the region names together
 from the root, starting with the root's subregions.
 <p>
 Relative region names can provide a convenient method to locate a subregion directly from some
 higher region. For example, a region structure is as follows: a region named
 <i>3rd_level_region</i> has parent region <i>2nd_level_region</i>; region <i>2nd_level_region</i>
 in turn has parent region <i>1st_level_region</i>; and region <i>1st_level_region</i> is a child
 of the root region. Then,the user can get the region <i>3rd_level_region</i> from the root region
 by issuing:

 <pre>
  <code>
  region3 = root.getSubregion("1st_level_region/2nd_level_region/3rd_level_region");
  </code>
 </pre>

 or the user can get the region <i>3rd_level_region</i> from region <i>1st_level_region</i> by
 issuing

 <pre>
  <code>
  region3 = region1.getSubregion("2nd_level_region/3rd_level_region");
  </code>
 </pre>
 <p>
 Region entries are identified by their key. Any Object can be used as a key as long as the key
 Object is region-wide unique and implements both the equals and hashCode methods. For regions
 with distributed scope, the key must also be Serializable.
 <p>
 Regions and their entries can be locked. The <code>Lock</code> obtained from
 <a href="../../../../org/apache/geode/cache/Region.html#getRegionDistributedLock--"><code>getRegionDistributedLock()</code></a> is a distributed lock on the entire Region, and the
 <code>Lock</code> obtained from <a href="../../../../org/apache/geode/cache/Region.html#getDistributedLock-java.lang.Object-"><code>getDistributedLock(java.lang.Object)</code></a> is a distributed lock on the
 individual entry.

 <p>
 If the scope is <code>Scope.GLOBAL</code>, the methods that modify, destroy, or invalidate the
 entries in this region will also get a distributed lock. See the documentations for
 <a href="../../../../org/apache/geode/cache/Region.html#getDistributedLock-java.lang.Object-"><code>getDistributedLock(java.lang.Object)</code></a> and <a href="../../../../org/apache/geode/cache/Region.html#getRegionDistributedLock--"><code>getRegionDistributedLock()</code></a> for details on the implicit
 locking that occurs for regions with <code>Scope.GLOBAL</code>.
 <p>
 Unless otherwise specified, all of these methods throw a <code>CacheClosedException</code> if the
 Cache is closed at the time of invocation, or a <code>RegionDestroyedException</code> if this
 region has been destroyed. Serializability Requirements for arguments: Several methods in the
 region API take parameters such as key, value and callback parameters.All of these parameters are
 typed as objects. For distributed regions, keys, values and callback parameters have to be
 serializable Failure to meet these serialization requirements causes API methods to throw
 IllegalArgumentException.
 <p>
 Implementation of the java.util.concurrent.ConcurrentMap interface was added in version 6.5.
 These methods give various levels of concurrency guarantees based on the scope and data policy of
 the region. They are implemented in the peer cache and client/server cache but are disallowed in
 peer Regions having NORMAL or EMPTY data policies.
 <p>
 The semantics of the ConcurrentMap methods on a Partitioned Region are consistent with those
 expected on a ConcurrentMap. In particular multiple writers in different JVMs of the same key in
 the same Partitioned Region will be done atomically.
 <p>
 The same is true for a region with GLOBAL scope. All operations will be done atomically since a
 distributed lock will be held while the operation is done.
 <p>
 The same is true for a region with LOCAL scope. All ops will be done atomically since the
 underlying map is a concurrent hash map and no distribution is involved.
 <p>
 For peer REPLICATE and PRELOADED regions atomicity is limited to threads in the JVM the operation
 starts in. There is no coordination with other members of the system unless the operation is
 performed in a transaction.
 <p>
 For client server regions the atomicity is determined by the scope and data policy of the server
 region as described above. The operation is actually performed on the server as described above.
 Clients will always send the ConcurrentMap operation to the server and the result returned by the
 ConcurrentMap method in client will reflect what was done on the server. Same goes for any
 CacheListener called on the client. Any local state on the client will be updated to be
 consistent with the state change made on the server.
 <p></div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>GemFire 2.0</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/geode/cache/RegionAttributes.html" title="interface in org.apache.geode.cache"><code>RegionAttributes</code></a>, 
<a href="../../../../org/apache/geode/cache/AttributesFactory.html" title="class in org.apache.geode.cache"><code>AttributesFactory</code></a>, 
<a href="../../../../org/apache/geode/cache/AttributesMutator.html" title="interface in org.apache.geode.cache"><code>AttributesMutator</code></a>, 
<a href="../../../../org/apache/geode/cache/Region.Entry.html" title="interface in org.apache.geode.cache"><code>Region.Entry</code></a></dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested.class.summary">
<!--   -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Interface and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static interface&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.Entry.html" title="interface in org.apache.geode.cache">Region.Entry</a>&lt;<a href="../../../../org/apache/geode/cache/Region.Entry.html" title="type parameter in Region.Entry">K</a>,<a href="../../../../org/apache/geode/cache/Region.Entry.html" title="type parameter in Region.Entry">V</a>&gt;</span></code>
<div class="block">A key-value pair containing the cached data in a region.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- =========== 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>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#SEPARATOR">SEPARATOR</a></span></code>
<div class="block">The region name separator character, represented as a string for convenience.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static char</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#SEPARATOR_CHAR">SEPARATOR_CHAR</a></span></code>
<div class="block">The region name separator character.</div>
</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="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="t5" class="tableTab"><span><a href="javascript:show(16);">Default 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/geode/cache/Region.html#becomeLockGrantor--">becomeLockGrantor</a></span>()</code>
<div class="block">Specifies this member to become the grantor for this region's lock service.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#clear--">clear</a></span>()</code>
<div class="block">Removes all entries from this region.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#close--">close</a></span>()</code>
<div class="block">Does a localDestroyRegion, but leaves behind the disk files if this is a region with
 persistBackup set to true.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#containsKey-java.lang.Object-">containsKey</a></span>(<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>&nbsp;key)</code>
<div class="block">Returns whether the specified key currently exists in this region.</div>
</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/geode/cache/Region.html#containsKeyOnServer-java.lang.Object-">containsKeyOnServer</a></span>(<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>&nbsp;key)</code>
<div class="block">Returns whether the specified key currently exists in this region on the server.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#containsValue-java.lang.Object-">containsValue</a></span>(<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>&nbsp;value)</code>
<div class="block">Returns true if this region maps one or more keys to the specified value.</div>
</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/geode/cache/Region.html#containsValueForKey-java.lang.Object-">containsValueForKey</a></span>(<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>&nbsp;key)</code>
<div class="block">Returns whether there is a valid (non-null) value present for the specified key.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#create-K-V-">create</a></span>(<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>&nbsp;key,
      <a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a>&nbsp;value)</code>
<div class="block">Creates a new entry in this region with the specified key and value if and only if an entry
 does not already exist for the specified key.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#create-K-V-java.lang.Object-">create</a></span>(<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>&nbsp;key,
      <a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a>&nbsp;value,
      <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>&nbsp;aCallbackArgument)</code>
<div class="block">Creates a new entry in this region with the specified key and value, providing a user-defined
 parameter object to any <code>CacheWriter</code> invoked in the process.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>&lt;SK,SV&gt;&nbsp;<a href="../../../../org/apache/geode/cache/Region.html" title="interface in org.apache.geode.cache">Region</a>&lt;SK,SV&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#createSubregion-java.lang.String-org.apache.geode.cache.RegionAttributes-">createSubregion</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;subregionName,
               <a href="../../../../org/apache/geode/cache/RegionAttributes.html" title="interface in org.apache.geode.cache">RegionAttributes</a>&lt;SK,SV&gt;&nbsp;aRegionAttributes)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">as of 7.0 use <a href="../../../../org/apache/geode/cache/RegionFactory.html#createSubregion-org.apache.geode.cache.Region-java.lang.String-"><code>RegionFactory.createSubregion(Region, String)</code></a> or
             <a href="../../../../org/apache/geode/cache/client/ClientRegionFactory.html#createSubregion-org.apache.geode.cache.Region-java.lang.String-"><code>ClientRegionFactory.createSubregion(Region, String)</code></a>.</span></div>
</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code><a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#destroy-java.lang.Object-">destroy</a></span>(<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>&nbsp;key)</code>
<div class="block">Destroys the entry with the specified key.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#destroy-java.lang.Object-java.lang.Object-">destroy</a></span>(<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>&nbsp;key,
       <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>&nbsp;aCallbackArgument)</code>
<div class="block">Destroys the entry with the specified key, and provides a user-defined parameter object to any
 <code>CacheWriter</code> invoked in the process.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#destroyRegion--">destroyRegion</a></span>()</code>
<div class="block">Destroys the whole region.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#destroyRegion-java.lang.Object-">destroyRegion</a></span>(<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>&nbsp;aCallbackArgument)</code>
<div class="block">Destroys the whole region and provides a user-defined parameter object to any
 <code>CacheWriter</code> invoked in the process.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.Entry.html?is-external=true" title="class or interface in java.util">Map.Entry</a>&lt;<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>,<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a>&gt;&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#entrySet--">entrySet</a></span>()</code>
<div class="block">Returns the <code>Set</code> of <code>Region.Entry</code> objects in this region.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../org/apache/geode/cache/Region.Entry.html" title="interface in org.apache.geode.cache">Region.Entry</a>&lt;?,?&gt;&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#entrySet-boolean-">entrySet</a></span>(boolean&nbsp;recursive)</code>
<div class="block">Returns the <code>Set</code> of <code>Region.Entry</code> objects in this region.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#equals-java.lang.Object-">equals</a></span>(<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>&nbsp;other)</code>
<div class="block">Compares the specified object with this region for equality.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#existsValue-java.lang.String-">existsValue</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;queryPredicate)</code>
<div class="block">Determines whether there is a value in this <code>Region</code> that matches the given
 <code>queryPredicate</code>.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#forceRolling--">forceRolling</a></span>()</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">use <a href="../../../../org/apache/geode/cache/DiskStore.html#forceRoll--"><code>DiskStore.forceRoll()</code></a> instead.</span></div>
</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#get-java.lang.Object-">get</a></span>(<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>&nbsp;key)</code>
<div class="block">Returns the value associated with the specified key.</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code><a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#get-java.lang.Object-java.lang.Object-">get</a></span>(<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>&nbsp;key,
   <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>&nbsp;aCallbackArgument)</code>
<div class="block">Returns the value associated with the specified key, passing the callback argument to any cache
 loaders or cache writers that are invoked in the operation.</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>,<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#getAll-java.util.Collection-">getAll</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;?&gt;&nbsp;keys)</code>
<div class="block">Gets values for all the keys in the input Collection.</div>
</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>&lt;T extends <a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>&gt;<br><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;T,<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#getAll-java.util.Collection-java.lang.Object-">getAll</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;T&gt;&nbsp;keys,
      <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>&nbsp;aCallbackArgument)</code>
<div class="block">Gets and returns values for all the keys in the input Collection.</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/apache/geode/cache/RegionAttributes.html" title="interface in org.apache.geode.cache">RegionAttributes</a>&lt;<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>,<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#getAttributes--">getAttributes</a></span>()</code>
<div class="block">Returns the <code>RegionAttributes</code> for this region.</div>
</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code><a href="../../../../org/apache/geode/cache/AttributesMutator.html" title="interface in org.apache.geode.cache">AttributesMutator</a>&lt;<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>,<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#getAttributesMutator--">getAttributesMutator</a></span>()</code>
<div class="block">Returns a mutator object used for modifying this region's attributes after region creation.</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/apache/geode/cache/Cache.html" title="interface in org.apache.geode.cache">Cache</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#getCache--">getCache</a></span>()</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">as of 6.5 use <a href="../../../../org/apache/geode/cache/Region.html#getRegionService--"><code>getRegionService()</code></a> instead.</span></div>
</div>
</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/Lock.html?is-external=true" title="class or interface in java.util.concurrent.locks">Lock</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#getDistributedLock-java.lang.Object-">getDistributedLock</a></span>(<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>&nbsp;key)</code>
<div class="block">For <a href="../../../../org/apache/geode/cache/Scope.html#GLOBAL"><code>Scope.GLOBAL</code></a> regions, gets a <em>distributed</em> lock on the entry with the
 specified key.</div>
</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/apache/geode/cache/Region.Entry.html" title="interface in org.apache.geode.cache">Region.Entry</a>&lt;<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>,<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#getEntry-java.lang.Object-">getEntry</a></span>(<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>&nbsp;key)</code>
<div class="block">Returns the <code>Region.Entry</code> for the specified key, or null if it doesn't exist.</div>
</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#getFullPath--">getFullPath</a></span>()</code>
<div class="block">Returns the full path of this region starting with a forward slash, followed by the root,
 including every subregion in the path to this region.</div>
</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#getInterestList--">getInterestList</a></span>()</code>
<div class="block">Returns the list of keys on which this client is interested and will be notified of changes.</div>
</td>
</tr>
<tr id="i30" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#getInterestListRegex--">getInterestListRegex</a></span>()</code>
<div class="block">Returns the list of regular expresssions on which this client is interested and will be
 notified of changes.</div>
</td>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#getName--">getName</a></span>()</code>
<div class="block">Returns the name of this region.</div>
</td>
</tr>
<tr id="i32" class="altColor">
<td class="colFirst"><code>&lt;PK,PV&gt;&nbsp;<a href="../../../../org/apache/geode/cache/Region.html" title="interface in org.apache.geode.cache">Region</a>&lt;PK,PV&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#getParentRegion--">getParentRegion</a></span>()</code>
<div class="block">Gets the parent region of this region.</div>
</td>
</tr>
<tr id="i33" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/Lock.html?is-external=true" title="class or interface in java.util.concurrent.locks">Lock</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#getRegionDistributedLock--">getRegionDistributedLock</a></span>()</code>
<div class="block">For <a href="../../../../org/apache/geode/cache/Scope.html#GLOBAL"><code>Scope.GLOBAL</code></a> regions, gets a <em>distributed</em> lock on this whole region.</div>
</td>
</tr>
<tr id="i34" class="altColor">
<td class="colFirst"><code><a href="../../../../org/apache/geode/cache/RegionService.html" title="interface in org.apache.geode.cache">RegionService</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#getRegionService--">getRegionService</a></span>()</code>
<div class="block">Returns the <code>cache</code> associated with this region.</div>
</td>
</tr>
<tr id="i35" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/apache/geode/cache/snapshot/RegionSnapshotService.html" title="interface in org.apache.geode.cache.snapshot">RegionSnapshotService</a>&lt;<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>,<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#getSnapshotService--">getSnapshotService</a></span>()</code>
<div class="block">Obtains the snapshot service to allow the cache data to be imported or exported.</div>
</td>
</tr>
<tr id="i36" class="altColor">
<td class="colFirst"><code><a href="../../../../org/apache/geode/cache/CacheStatistics.html" title="interface in org.apache.geode.cache">CacheStatistics</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#getStatistics--">getStatistics</a></span>()</code>
<div class="block">Returns the <code>CacheStatistics</code> for this region.</div>
</td>
</tr>
<tr id="i37" class="rowColor">
<td class="colFirst"><code>&lt;SK,SV&gt;&nbsp;<a href="../../../../org/apache/geode/cache/Region.html" title="interface in org.apache.geode.cache">Region</a>&lt;SK,SV&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#getSubregion-java.lang.String-">getSubregion</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path)</code>
<div class="block">Returns a subregion with the specified name or null if doesn't exist.</div>
</td>
</tr>
<tr id="i38" class="altColor">
<td class="colFirst"><code><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></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#getUserAttribute--">getUserAttribute</a></span>()</code>
<div class="block">Returns the application-defined object associated with this region.</div>
</td>
</tr>
<tr id="i39" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#hashCode--">hashCode</a></span>()</code>
<div class="block">Returns the hash code value for this region.</div>
</td>
</tr>
<tr id="i40" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#invalidate-java.lang.Object-">invalidate</a></span>(<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>&nbsp;key)</code>
<div class="block">Invalidates the entry with the specified key.</div>
</td>
</tr>
<tr id="i41" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#invalidate-java.lang.Object-java.lang.Object-">invalidate</a></span>(<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>&nbsp;key,
          <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>&nbsp;aCallbackArgument)</code>
<div class="block">Invalidates the entry with the specified key, and provides a user-defined argument to the
 <code>CacheListener</code>.</div>
</td>
</tr>
<tr id="i42" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#invalidateRegion--">invalidateRegion</a></span>()</code>
<div class="block">Invalidates this region.</div>
</td>
</tr>
<tr id="i43" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#invalidateRegion-java.lang.Object-">invalidateRegion</a></span>(<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>&nbsp;aCallbackArgument)</code>
<div class="block">Invalidates this region.</div>
</td>
</tr>
<tr id="i44" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#isDestroyed--">isDestroyed</a></span>()</code>
<div class="block">Returns whether this region has been destroyed.</div>
</td>
</tr>
<tr id="i45" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#isEmpty--">isEmpty</a></span>()</code>
<div class="block">Returns true if this region contains no entries.</div>
</td>
</tr>
<tr id="i46" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#isEmptyOnServer--">isEmptyOnServer</a></span>()</code>
<div class="block">Returns true if this region contains no entries on the server.</div>
</td>
</tr>
<tr id="i47" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#keySet--">keySet</a></span>()</code>
<div class="block">Returns a set of keys in the region.</div>
</td>
</tr>
<tr id="i48" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#keySetOnServer--">keySetOnServer</a></span>()</code>
<div class="block">Returns a set of keys in the region on the server.</div>
</td>
</tr>
<tr id="i49" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#loadSnapshot-java.io.InputStream-">loadSnapshot</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io">InputStream</a>&nbsp;inputStream)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">as of 7.0 use <a href="../../../../org/apache/geode/cache/Region.html#getSnapshotService--"><code>getSnapshotService()</code></a></span></div>
</div>
</td>
</tr>
<tr id="i50" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#localClear--">localClear</a></span>()</code>
<div class="block">Removes all local entries from this region.</div>
</td>
</tr>
<tr id="i51" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#localDestroy-java.lang.Object-">localDestroy</a></span>(<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>&nbsp;key)</code>
<div class="block">Destroys the value with the specified key in the local cache only, No <code>CacheWriter</code>
 is invoked.</div>
</td>
</tr>
<tr id="i52" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#localDestroy-java.lang.Object-java.lang.Object-">localDestroy</a></span>(<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>&nbsp;key,
            <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>&nbsp;aCallbackArgument)</code>
<div class="block">Destroys the value with the specified key in the local cache only, and provides a user-defined
 parameter object to the <code>CacheListener</code>, if any.</div>
</td>
</tr>
<tr id="i53" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#localDestroyRegion--">localDestroyRegion</a></span>()</code>
<div class="block">Destroys the whole region in the local cache only.</div>
</td>
</tr>
<tr id="i54" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#localDestroyRegion-java.lang.Object-">localDestroyRegion</a></span>(<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>&nbsp;aCallbackArgument)</code>
<div class="block">Destroys the whole region in the local cache only, and provides a user-defined argument to a
 <code>CacheListener</code> if any.</div>
</td>
</tr>
<tr id="i55" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#localInvalidate-java.lang.Object-">localInvalidate</a></span>(<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>&nbsp;key)</code>
<div class="block">Invalidates the value with the specified key in the local cache only.</div>
</td>
</tr>
<tr id="i56" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#localInvalidate-java.lang.Object-java.lang.Object-">localInvalidate</a></span>(<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>&nbsp;key,
               <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>&nbsp;aCallbackArgument)</code>
<div class="block">Invalidates the value with the specified key in the local cache only, and provides a
 user-defined argument to the <code>CacheListener</code>.</div>
</td>
</tr>
<tr id="i57" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#localInvalidateRegion--">localInvalidateRegion</a></span>()</code>
<div class="block">Invalidates this region in the local cache only.</div>
</td>
</tr>
<tr id="i58" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#localInvalidateRegion-java.lang.Object-">localInvalidateRegion</a></span>(<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>&nbsp;aCallbackArgument)</code>
<div class="block">Invalidates this region in the local cache only, and provides a user-defined argument to the
 <code>CacheListener</code>.</div>
</td>
</tr>
<tr id="i59" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#put-K-V-">put</a></span>(<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>&nbsp;key,
   <a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a>&nbsp;value)</code>
<div class="block">Places a new value into an entry in this region with the specified key.</div>
</td>
</tr>
<tr id="i60" class="altColor">
<td class="colFirst"><code><a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#put-K-V-java.lang.Object-">put</a></span>(<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>&nbsp;key,
   <a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a>&nbsp;value,
   <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>&nbsp;aCallbackArgument)</code>
<div class="block">Places a new value into an entry in this region with the specified key, providing a
 user-defined parameter object to any <code>CacheWriter</code> invoked in the process.</div>
</td>
</tr>
<tr id="i61" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#putAll-java.util.Map-">putAll</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;? extends <a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>,? extends <a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a>&gt;&nbsp;map)</code>
<div class="block">Copies all of the entries from the specified map to this region.</div>
</td>
</tr>
<tr id="i62" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#putAll-java.util.Map-java.lang.Object-">putAll</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;? extends <a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>,? extends <a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a>&gt;&nbsp;map,
      <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>&nbsp;aCallbackArgument)</code>
<div class="block">Copies all of the entries from the specified map to this region.</div>
</td>
</tr>
<tr id="i63" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#putIfAbsent-K-V-">putIfAbsent</a></span>(<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>&nbsp;key,
           <a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a>&nbsp;value)</code>
<div class="block">If the specified key is not already associated with a value, associate it with the given value.</div>
</td>
</tr>
<tr id="i64" class="altColor">
<td class="colFirst"><code>&lt;E&gt;&nbsp;<a href="../../../../org/apache/geode/cache/query/SelectResults.html" title="interface in org.apache.geode.cache.query">SelectResults</a>&lt;E&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#query-java.lang.String-">query</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;queryPredicate)</code>
<div class="block">Filters the values of this region using the <code>queryPredicate</code>.</div>
</td>
</tr>
<tr id="i65" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#registerInterest-K-">registerInterest</a></span>(<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>&nbsp;key)</code>
<div class="block">Sends a request to the CacheServer to register interest in a key for this client.</div>
</td>
</tr>
<tr id="i66" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#registerInterest-K-boolean-">registerInterest</a></span>(<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>&nbsp;key,
                boolean&nbsp;isDurable)</code>
<div class="block">Sends a request to the CacheServer to register interest in a key for this client.</div>
</td>
</tr>
<tr id="i67" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#registerInterest-K-boolean-boolean-">registerInterest</a></span>(<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>&nbsp;key,
                boolean&nbsp;isDurable,
                boolean&nbsp;receiveValues)</code>
<div class="block">Sends a request to the CacheServer to register interest in a key for this client.</div>
</td>
</tr>
<tr id="i68" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#registerInterest-K-org.apache.geode.cache.InterestResultPolicy-">registerInterest</a></span>(<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>&nbsp;key,
                <a href="../../../../org/apache/geode/cache/InterestResultPolicy.html" title="class in org.apache.geode.cache">InterestResultPolicy</a>&nbsp;policy)</code>
<div class="block">Sends a request to the CacheServer to register interest in a key for this client.</div>
</td>
</tr>
<tr id="i69" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#registerInterest-K-org.apache.geode.cache.InterestResultPolicy-boolean-">registerInterest</a></span>(<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>&nbsp;key,
                <a href="../../../../org/apache/geode/cache/InterestResultPolicy.html" title="class in org.apache.geode.cache">InterestResultPolicy</a>&nbsp;policy,
                boolean&nbsp;isDurable)</code>
<div class="block">Sends a request to the CacheServer to register interest in a key for this client.</div>
</td>
</tr>
<tr id="i70" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#registerInterest-K-org.apache.geode.cache.InterestResultPolicy-boolean-boolean-">registerInterest</a></span>(<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>&nbsp;key,
                <a href="../../../../org/apache/geode/cache/InterestResultPolicy.html" title="class in org.apache.geode.cache">InterestResultPolicy</a>&nbsp;policy,
                boolean&nbsp;isDurable,
                boolean&nbsp;receiveValues)</code>
<div class="block">Sends a request to the CacheServer to register interest in a key for this client.</div>
</td>
</tr>
<tr id="i71" class="rowColor">
<td class="colFirst"><code>default void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#registerInterestForAllKeys--">registerInterestForAllKeys</a></span>()</code>
<div class="block">Sends a request to the CacheServer to register interest in all keys for this client.</div>
</td>
</tr>
<tr id="i72" class="altColor">
<td class="colFirst"><code>default void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#registerInterestForAllKeys-org.apache.geode.cache.InterestResultPolicy-">registerInterestForAllKeys</a></span>(<a href="../../../../org/apache/geode/cache/InterestResultPolicy.html" title="class in org.apache.geode.cache">InterestResultPolicy</a>&nbsp;policy)</code>
<div class="block">Sends a request to the CacheServer to register interest in for all keys for this client.</div>
</td>
</tr>
<tr id="i73" class="rowColor">
<td class="colFirst"><code>default void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#registerInterestForAllKeys-org.apache.geode.cache.InterestResultPolicy-boolean-">registerInterestForAllKeys</a></span>(<a href="../../../../org/apache/geode/cache/InterestResultPolicy.html" title="class in org.apache.geode.cache">InterestResultPolicy</a>&nbsp;policy,
                          boolean&nbsp;isDurable)</code>
<div class="block">Sends a request to the CacheServer to register interest in all keys for this client.</div>
</td>
</tr>
<tr id="i74" class="altColor">
<td class="colFirst"><code>default void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#registerInterestForAllKeys-org.apache.geode.cache.InterestResultPolicy-boolean-boolean-">registerInterestForAllKeys</a></span>(<a href="../../../../org/apache/geode/cache/InterestResultPolicy.html" title="class in org.apache.geode.cache">InterestResultPolicy</a>&nbsp;policy,
                          boolean&nbsp;isDurable,
                          boolean&nbsp;receiveValues)</code>
<div class="block">Sends a request to the CacheServer to register interest in all keys for this client.</div>
</td>
</tr>
<tr id="i75" class="rowColor">
<td class="colFirst"><code>default void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#registerInterestForKeys-java.lang.Iterable-">registerInterestForKeys</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a>&lt;<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>&gt;&nbsp;iterable)</code>
<div class="block">Sends a request to the CacheServer to register interest for all key in the iterable for this
 client.</div>
</td>
</tr>
<tr id="i76" class="altColor">
<td class="colFirst"><code>default void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#registerInterestForKeys-java.lang.Iterable-org.apache.geode.cache.InterestResultPolicy-">registerInterestForKeys</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a>&lt;<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>&gt;&nbsp;iterable,
                       <a href="../../../../org/apache/geode/cache/InterestResultPolicy.html" title="class in org.apache.geode.cache">InterestResultPolicy</a>&nbsp;policy)</code>
<div class="block">Sends a request to the CacheServer to register interest for all key in the iterable for this
 client.</div>
</td>
</tr>
<tr id="i77" class="rowColor">
<td class="colFirst"><code>default void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#registerInterestForKeys-java.lang.Iterable-org.apache.geode.cache.InterestResultPolicy-boolean-">registerInterestForKeys</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a>&lt;<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>&gt;&nbsp;iterable,
                       <a href="../../../../org/apache/geode/cache/InterestResultPolicy.html" title="class in org.apache.geode.cache">InterestResultPolicy</a>&nbsp;policy,
                       boolean&nbsp;isDurable)</code>
<div class="block">Sends a request to the CacheServer to register interest for all key in the iterable for this
 client.</div>
</td>
</tr>
<tr id="i78" class="altColor">
<td class="colFirst"><code>default void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#registerInterestForKeys-java.lang.Iterable-org.apache.geode.cache.InterestResultPolicy-boolean-boolean-">registerInterestForKeys</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a>&lt;<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>&gt;&nbsp;iterable,
                       <a href="../../../../org/apache/geode/cache/InterestResultPolicy.html" title="class in org.apache.geode.cache">InterestResultPolicy</a>&nbsp;policy,
                       boolean&nbsp;isDurable,
                       boolean&nbsp;receiveValues)</code>
<div class="block">Sends a request to the CacheServer to register interest for all key in the iterable for this
 client.</div>
</td>
</tr>
<tr id="i79" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#registerInterestRegex-java.lang.String-">registerInterestRegex</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regex)</code>
<div class="block">Sends a request to the CacheServer to register interest in a regular expression pattern for
 this client.</div>
</td>
</tr>
<tr id="i80" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#registerInterestRegex-java.lang.String-boolean-">registerInterestRegex</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regex,
                     boolean&nbsp;isDurable)</code>
<div class="block">Sends a request to the CacheServer to register interest in a regular expression pattern for
 this client.</div>
</td>
</tr>
<tr id="i81" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#registerInterestRegex-java.lang.String-boolean-boolean-">registerInterestRegex</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regex,
                     boolean&nbsp;isDurable,
                     boolean&nbsp;receiveValues)</code>
<div class="block">Sends a request to the CacheServer to register interest in a regular expression pattern for
 this client.</div>
</td>
</tr>
<tr id="i82" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#registerInterestRegex-java.lang.String-org.apache.geode.cache.InterestResultPolicy-">registerInterestRegex</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regex,
                     <a href="../../../../org/apache/geode/cache/InterestResultPolicy.html" title="class in org.apache.geode.cache">InterestResultPolicy</a>&nbsp;policy)</code>
<div class="block">Sends a request to the CacheServer to register interest in a regular expression pattern for
 this client.</div>
</td>
</tr>
<tr id="i83" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#registerInterestRegex-java.lang.String-org.apache.geode.cache.InterestResultPolicy-boolean-">registerInterestRegex</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regex,
                     <a href="../../../../org/apache/geode/cache/InterestResultPolicy.html" title="class in org.apache.geode.cache">InterestResultPolicy</a>&nbsp;policy,
                     boolean&nbsp;isDurable)</code>
<div class="block">Sends a request to the CacheServer to register interest in a regular expression pattern for
 this client.</div>
</td>
</tr>
<tr id="i84" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#registerInterestRegex-java.lang.String-org.apache.geode.cache.InterestResultPolicy-boolean-boolean-">registerInterestRegex</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regex,
                     <a href="../../../../org/apache/geode/cache/InterestResultPolicy.html" title="class in org.apache.geode.cache">InterestResultPolicy</a>&nbsp;policy,
                     boolean&nbsp;isDurable,
                     boolean&nbsp;receiveValues)</code>
<div class="block">Sends a request to the CacheServer to register interest in a regular expression pattern for
 this client.</div>
</td>
</tr>
<tr id="i85" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#remove-java.lang.Object-">remove</a></span>(<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>&nbsp;key)</code>
<div class="block">Removes the entry with the specified key.</div>
</td>
</tr>
<tr id="i86" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#remove-java.lang.Object-java.lang.Object-">remove</a></span>(<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>&nbsp;key,
      <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>&nbsp;value)</code>
<div class="block">Removes the entry for a key only if currently mapped to a given value.</div>
</td>
</tr>
<tr id="i87" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#removeAll-java.util.Collection-">removeAll</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;? extends <a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>&gt;&nbsp;keys)</code>
<div class="block">Removes all of the entries for the specified keys from this region.</div>
</td>
</tr>
<tr id="i88" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#removeAll-java.util.Collection-java.lang.Object-">removeAll</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;? extends <a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>&gt;&nbsp;keys,
         <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>&nbsp;aCallbackArgument)</code>
<div class="block">Removes all of the entries for the specified keys from this region.</div>
</td>
</tr>
<tr id="i89" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#replace-K-V-">replace</a></span>(<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>&nbsp;key,
       <a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a>&nbsp;value)</code>
<div class="block">Replaces the entry for a key only if currently mapped to some value.</div>
</td>
</tr>
<tr id="i90" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#replace-K-V-V-">replace</a></span>(<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>&nbsp;key,
       <a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a>&nbsp;oldValue,
       <a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a>&nbsp;newValue)</code>
<div class="block">Replaces the entry for a key only if currently mapped to a given value.</div>
</td>
</tr>
<tr id="i91" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#saveSnapshot-java.io.OutputStream-">saveSnapshot</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io">OutputStream</a>&nbsp;outputStream)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">as of 7.0 use <a href="../../../../org/apache/geode/cache/Region.html#getSnapshotService--"><code>getSnapshotService()</code></a></span></div>
</div>
</td>
</tr>
<tr id="i92" class="altColor">
<td class="colFirst"><code><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></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#selectValue-java.lang.String-">selectValue</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;queryPredicate)</code>
<div class="block">Selects the single value in this <code>Region</code> that matches the given query
 <code>predicate</code>.</div>
</td>
</tr>
<tr id="i93" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#setUserAttribute-java.lang.Object-">setUserAttribute</a></span>(<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>&nbsp;value)</code>
<div class="block">Sets the application-defined object associated with this region.</div>
</td>
</tr>
<tr id="i94" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#size--">size</a></span>()</code>
<div class="block">Returns the number of entries present in this region.</div>
</td>
</tr>
<tr id="i95" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#sizeOnServer--">sizeOnServer</a></span>()</code>
<div class="block">Returns the number of entries present in this region on the server.</div>
</td>
</tr>
<tr id="i96" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../org/apache/geode/cache/Region.html" title="interface in org.apache.geode.cache">Region</a>&lt;?,?&gt;&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#subregions-boolean-">subregions</a></span>(boolean&nbsp;recursive)</code>
<div class="block">Returns a Set of all subregions.</div>
</td>
</tr>
<tr id="i97" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#unregisterInterest-K-">unregisterInterest</a></span>(<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>&nbsp;key)</code>
<div class="block">Sends a request to the CacheServer to unregister interest in a key for this client.</div>
</td>
</tr>
<tr id="i98" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#unregisterInterestRegex-java.lang.String-">unregisterInterestRegex</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regex)</code>
<div class="block">Sends a request to the CacheServer to unregister interest in a regular expression pattern for
 this client.</div>
</td>
</tr>
<tr id="i99" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#values--">values</a></span>()</code>
<div class="block">Returns a Collection of values in this region.</div>
</td>
</tr>
<tr id="i100" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/geode/cache/Region.html#writeToDisk--">writeToDisk</a></span>()</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">use <a href="../../../../org/apache/geode/cache/DiskStore.html#flush--"><code>DiskStore.flush()</code></a> instead.</span></div>
</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.util.concurrent.ConcurrentMap">
<!--   -->
</a>
<h3>Methods inherited from interface&nbsp;java.util.concurrent.<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentMap</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true#compute-K-java.util.function.BiFunction-" title="class or interface in java.util.concurrent">compute</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true#computeIfAbsent-K-java.util.function.Function-" title="class or interface in java.util.concurrent">computeIfAbsent</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true#computeIfPresent-K-java.util.function.BiFunction-" title="class or interface in java.util.concurrent">computeIfPresent</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true#forEach-java.util.function.BiConsumer-" title="class or interface in java.util.concurrent">forEach</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true#getOrDefault-java.lang.Object-V-" title="class or interface in java.util.concurrent">getOrDefault</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true#merge-K-V-java.util.function.BiFunction-" title="class or interface in java.util.concurrent">merge</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true#replaceAll-java.util.function.BiFunction-" title="class or interface in java.util.concurrent">replaceAll</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="SEPARATOR_CHAR">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>SEPARATOR_CHAR</h4>
<pre>static final&nbsp;char SEPARATOR_CHAR</pre>
<div class="block">The region name separator character.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#org.apache.geode.cache.Region.SEPARATOR_CHAR">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="SEPARATOR">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>SEPARATOR</h4>
<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> SEPARATOR</pre>
<div class="block">The region name separator character, represented as a string for convenience.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#org.apache.geode.cache.Region.SEPARATOR">Constant Field Values</a></dd>
</dl>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="getName--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getName</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getName()</pre>
<div class="block">Returns the name of this region. A region's name can be any non-empty String providing it does
 not contain the name separator, a forward slash (/). If this is the root region, returns
 "root".
 <p>
 Does not throw a <code>CacheClosedException</code> or a <code>RegionDestroyedException</code>.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the name of this region</dd>
</dl>
</li>
</ul>
<a name="getFullPath--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getFullPath</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getFullPath()</pre>
<div class="block">Returns the full path of this region starting with a forward slash, followed by the root,
 including every subregion in the path to this region. The path separator is a forward slash.
 <p>
 Does not throw a <code>CacheClosedException</code> or a <code>RegionDestroyedException</code>.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the full path of this region</dd>
</dl>
</li>
</ul>
<a name="getParentRegion--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getParentRegion</h4>
<pre>&lt;PK,PV&gt;&nbsp;<a href="../../../../org/apache/geode/cache/Region.html" title="interface in org.apache.geode.cache">Region</a>&lt;PK,PV&gt;&nbsp;getParentRegion()</pre>
<div class="block">Gets the parent region of this region. If this region is a root region (i.e. has no parents),
 returns null.
 <p>
 Does not throw a <code>CacheClosedException</code> or a <code>RegionDestroyedException</code>.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the parent region which contains this region; null, if this region is the root region</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/geode/cache/Region.html#createSubregion-java.lang.String-org.apache.geode.cache.RegionAttributes-"><code>createSubregion</code></a></dd>
</dl>
</li>
</ul>
<a name="getAttributes--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAttributes</h4>
<pre><a href="../../../../org/apache/geode/cache/RegionAttributes.html" title="interface in org.apache.geode.cache">RegionAttributes</a>&lt;<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>,<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a>&gt;&nbsp;getAttributes()</pre>
<div class="block">Returns the <code>RegionAttributes</code> for this region. This object is backed by this
 region, so if attributes are modified using this region's <code>AttributesMutator</code>, this
 <code>RegionAttributes</code> object will immediately reflect the change.
 <p>
 Does not throw a <code>CacheClosedException</code> or a <code>RegionDestroyedException</code>.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the <code>RegionAttributes</code> of this region</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/geode/cache/Region.html#createSubregion-java.lang.String-org.apache.geode.cache.RegionAttributes-"><code>createSubregion(String, RegionAttributes)</code></a>, 
<a href="../../../../org/apache/geode/cache/AttributesMutator.html" title="interface in org.apache.geode.cache"><code>AttributesMutator</code></a>, 
<a href="../../../../org/apache/geode/cache/AttributesFactory.html" title="class in org.apache.geode.cache"><code>AttributesFactory</code></a>, 
<a href="../../../../org/apache/geode/cache/Region.html#getAttributesMutator--"><code>getAttributesMutator()</code></a></dd>
</dl>
</li>
</ul>
<a name="getAttributesMutator--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAttributesMutator</h4>
<pre><a href="../../../../org/apache/geode/cache/AttributesMutator.html" title="interface in org.apache.geode.cache">AttributesMutator</a>&lt;<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>,<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a>&gt;&nbsp;getAttributesMutator()</pre>
<div class="block">Returns a mutator object used for modifying this region's attributes after region creation.
 Note that some attributes are immutable after region creation.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the <code>AttributesMutator</code> object</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/geode/cache/Region.html#getAttributes--"><code>getAttributes()</code></a></dd>
</dl>
</li>
</ul>
<a name="getStatistics--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getStatistics</h4>
<pre><a href="../../../../org/apache/geode/cache/CacheStatistics.html" title="interface in org.apache.geode.cache">CacheStatistics</a>&nbsp;getStatistics()
                       throws <a href="../../../../org/apache/geode/cache/StatisticsDisabledException.html" title="class in org.apache.geode.cache">StatisticsDisabledException</a></pre>
<div class="block">Returns the <code>CacheStatistics</code> for this region. If the region is a partitioned proxy
 region then the values for all the statistics will be 0.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the <code>CacheStatistics</code> of this region</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../org/apache/geode/cache/StatisticsDisabledException.html" title="class in org.apache.geode.cache">StatisticsDisabledException</a></code> - if statistics have been disabled for this region</dd>
</dl>
</li>
</ul>
<a name="invalidateRegion--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>invalidateRegion</h4>
<pre>void&nbsp;invalidateRegion()
               throws <a href="../../../../org/apache/geode/cache/TimeoutException.html" title="class in org.apache.geode.cache">TimeoutException</a></pre>
<div class="block">Invalidates this region. Invalidation cascades to all entries and subregions. After the
 <code>invalidateRegion</code>, this region and the entries in it still exist. To remove all the
 entries and this region, <code>destroyRegion</code> should be used. The region invalidate will
 be distributed to other caches if the scope is not <code>Scope.LOCAL</code>.
 <p>
 Does not update any <code>CacheStatistics</code>.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../org/apache/geode/distributed/LeaseExpiredException.html" title="class in org.apache.geode.distributed">LeaseExpiredException</a></code> - if lease expired on distributed lock
         for Scope.GLOBAL</dd>
<dd><code><a href="../../../../org/apache/geode/cache/TimeoutException.html" title="class in org.apache.geode.cache">TimeoutException</a></code> - if timed out getting distributed lock for <code>Scope.GLOBAL</code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/geode/cache/CacheListener.html#afterRegionInvalidate-org.apache.geode.cache.RegionEvent-"><code>CacheListener.afterRegionInvalidate(org.apache.geode.cache.RegionEvent&lt;K, V&gt;)</code></a></dd>
</dl>
</li>
</ul>
<a name="invalidateRegion-java.lang.Object-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>invalidateRegion</h4>
<pre>void&nbsp;invalidateRegion(<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>&nbsp;aCallbackArgument)
               throws <a href="../../../../org/apache/geode/cache/TimeoutException.html" title="class in org.apache.geode.cache">TimeoutException</a></pre>
<div class="block">Invalidates this region. The invalidation will cascade to all the subregions and cached
 entries. After the <code>invalidateRegion</code>, the region and the entries in it still exist.
 In order to remove all the entries and the region, <code>destroyRegion</code> should be used.
 The region invalidate will be distributed to other caches if the scope is not
 <code>Scope.LOCAL</code>.
 <p>
 Does not update any <code>CacheStatistics</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>aCallbackArgument</code> - a user-defined parameter to pass to callback events triggered by this
        method. Can be null. Should be serializable.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../org/apache/geode/distributed/LeaseExpiredException.html" title="class in org.apache.geode.distributed">LeaseExpiredException</a></code> - if lease expired on distributed lock
         for <code>Scope.GLOBAL</code></dd>
<dd><code><a href="../../../../org/apache/geode/cache/TimeoutException.html" title="class in org.apache.geode.cache">TimeoutException</a></code> - if timed out getting distributed lock for <code>Scope.GLOBAL</code></dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if aCallbackArgument is not serializable</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/geode/cache/CacheListener.html#afterRegionInvalidate-org.apache.geode.cache.RegionEvent-"><code>CacheListener.afterRegionInvalidate(org.apache.geode.cache.RegionEvent&lt;K, V&gt;)</code></a></dd>
</dl>
</li>
</ul>
<a name="localInvalidateRegion--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>localInvalidateRegion</h4>
<pre>void&nbsp;localInvalidateRegion()</pre>
<div class="block">Invalidates this region in the local cache only. Invalidation cascades to all entries and
 subregions. After the <code>invalidateRegion</code>, this region and the entries in it still
 exist. To remove all the entries and this region, destroyRegion should be used.

 Does not update any <code>CacheStatistics</code>.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</a></code> - if this region is distributed and
         <a href="../../../../org/apache/geode/cache/DataPolicy.html#withReplication--"><code>replicated</code></a></dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - If the region is a partitioned region</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/geode/cache/CacheListener.html#afterRegionInvalidate-org.apache.geode.cache.RegionEvent-"><code>CacheListener.afterRegionInvalidate(org.apache.geode.cache.RegionEvent&lt;K, V&gt;)</code></a></dd>
</dl>
</li>
</ul>
<a name="localInvalidateRegion-java.lang.Object-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>localInvalidateRegion</h4>
<pre>void&nbsp;localInvalidateRegion(<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>&nbsp;aCallbackArgument)</pre>
<div class="block">Invalidates this region in the local cache only, and provides a user-defined argument to the
 <code>CacheListener</code>. The invalidation will cascade to all the subregions and cached
 entries. After the <code>invalidateRegion</code>, the region and the entries in it still exist.
 In order to remove all the entries and the region, destroyRegion should be used.

 Does not update any <code>CacheStatistics</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>aCallbackArgument</code> - a user-defined parameter to pass to callback events triggered by this
        method. Can be null.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</a></code> - if the region is distributed and
         <a href="../../../../org/apache/geode/cache/DataPolicy.html#withReplication--"><code>replicated</code></a></dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - If the region is a partitioned region</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/geode/cache/CacheListener.html#afterRegionInvalidate-org.apache.geode.cache.RegionEvent-"><code>CacheListener.afterRegionInvalidate(org.apache.geode.cache.RegionEvent&lt;K, V&gt;)</code></a></dd>
</dl>
</li>
</ul>
<a name="destroyRegion--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>destroyRegion</h4>
<pre>void&nbsp;destroyRegion()
            throws <a href="../../../../org/apache/geode/cache/CacheWriterException.html" title="class in org.apache.geode.cache">CacheWriterException</a>,
                   <a href="../../../../org/apache/geode/cache/TimeoutException.html" title="class in org.apache.geode.cache">TimeoutException</a></pre>
<div class="block">Destroys the whole region. Destroy cascades to all entries and subregions. After the destroy,
 this region object can not be used any more and any attempt to use this region object will get
 <code>RegionDestroyedException</code>. The region destroy will be distributed to other caches
 if the scope is not <code>Scope.LOCAL</code>.
 <p>
 Does not update any <code>CacheStatistics</code>.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../org/apache/geode/cache/CacheWriterException.html" title="class in org.apache.geode.cache">CacheWriterException</a></code> - if a CacheWriter aborts the operation; if this occurs some
         subregions may have already been successfully destroyed.</dd>
<dd><code><a href="../../../../org/apache/geode/distributed/LeaseExpiredException.html" title="class in org.apache.geode.distributed">LeaseExpiredException</a></code> - if lease expired on distributed lock
         for Scope.GLOBAL</dd>
<dd><code><a href="../../../../org/apache/geode/cache/TimeoutException.html" title="class in org.apache.geode.cache">TimeoutException</a></code> - if timed out getting distributed lock for Scope.GLOBAL</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/geode/cache/CacheListener.html#afterRegionDestroy-org.apache.geode.cache.RegionEvent-"><code>CacheListener.afterRegionDestroy(org.apache.geode.cache.RegionEvent&lt;K, V&gt;)</code></a>, 
<a href="../../../../org/apache/geode/cache/CacheWriter.html#beforeRegionDestroy-org.apache.geode.cache.RegionEvent-"><code>CacheWriter.beforeRegionDestroy(org.apache.geode.cache.RegionEvent&lt;K, V&gt;)</code></a></dd>
</dl>
</li>
</ul>
<a name="destroyRegion-java.lang.Object-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>destroyRegion</h4>
<pre>void&nbsp;destroyRegion(<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>&nbsp;aCallbackArgument)
            throws <a href="../../../../org/apache/geode/cache/CacheWriterException.html" title="class in org.apache.geode.cache">CacheWriterException</a>,
                   <a href="../../../../org/apache/geode/cache/TimeoutException.html" title="class in org.apache.geode.cache">TimeoutException</a></pre>
<div class="block">Destroys the whole region and provides a user-defined parameter object to any
 <code>CacheWriter</code> invoked in the process. Destroy cascades to all entries and
 subregions. After the destroy, this region object can not be used any more. Any attempt to use
 this region object will get a <code>RegionDestroyedException</code> exception. The region
 destroy is distributed to other caches if the scope is not <code>Scope.LOCAL</code>.
 <p>
 Does not update any <code>CacheStatistics</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>aCallbackArgument</code> - a user-defined parameter to pass to callback events triggered by this
        method. Can be null. Should be serializable.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../org/apache/geode/cache/CacheWriterException.html" title="class in org.apache.geode.cache">CacheWriterException</a></code> - if a CacheWriter aborts the operation; if this occurs some
         subregions may have already been successfully destroyed.</dd>
<dd><code><a href="../../../../org/apache/geode/distributed/LeaseExpiredException.html" title="class in org.apache.geode.distributed">LeaseExpiredException</a></code> - if lease expired on distributed lock
         for Scope.GLOBAL</dd>
<dd><code><a href="../../../../org/apache/geode/cache/TimeoutException.html" title="class in org.apache.geode.cache">TimeoutException</a></code> - if timed out getting distributed lock for Scope.GLOBAL</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if aCallbackArgument is not serializable</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/geode/cache/CacheListener.html#afterRegionDestroy-org.apache.geode.cache.RegionEvent-"><code>CacheListener.afterRegionDestroy(org.apache.geode.cache.RegionEvent&lt;K, V&gt;)</code></a>, 
<a href="../../../../org/apache/geode/cache/CacheWriter.html#beforeRegionDestroy-org.apache.geode.cache.RegionEvent-"><code>CacheWriter.beforeRegionDestroy(org.apache.geode.cache.RegionEvent&lt;K, V&gt;)</code></a></dd>
</dl>
</li>
</ul>
<a name="localDestroyRegion--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>localDestroyRegion</h4>
<pre>void&nbsp;localDestroyRegion()</pre>
<div class="block">Destroys the whole region in the local cache only. No <code>CacheWriter</code> is invoked.
 Destroy cascades to all entries and subregions. After the destroy, this region object can not
 be used any more and any attempt to use this region object will get
 <a href="../../../../org/apache/geode/cache/RegionDestroyedException.html" title="class in org.apache.geode.cache"><code>RegionDestroyedException</code></a> exception. This operation is not distributed to any other
 cache.
 <p>
 Does not update any <code>CacheStatistics</code>.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/geode/cache/CacheListener.html#afterRegionDestroy-org.apache.geode.cache.RegionEvent-"><code>CacheListener.afterRegionDestroy(org.apache.geode.cache.RegionEvent&lt;K, V&gt;)</code></a></dd>
</dl>
</li>
</ul>
<a name="localDestroyRegion-java.lang.Object-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>localDestroyRegion</h4>
<pre>void&nbsp;localDestroyRegion(<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>&nbsp;aCallbackArgument)</pre>
<div class="block">Destroys the whole region in the local cache only, and provides a user-defined argument to a
 <code>CacheListener</code> if any.

 No <code>CacheWriter</code> is invoked. Destroy will cascade to all the entries and subregions.
 After the destroy, this region object can not be used any more. Any attempt to use this region
 object will get <a href="../../../../org/apache/geode/cache/RegionDestroyedException.html" title="class in org.apache.geode.cache"><code>RegionDestroyedException</code></a> exception.
 <p>
 Does not update any <code>CacheStatistics</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>aCallbackArgument</code> - a user-defined parameter to pass to callback events triggered by this
        call. Can be null.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/geode/cache/CacheListener.html#afterRegionDestroy-org.apache.geode.cache.RegionEvent-"><code>CacheListener.afterRegionDestroy(org.apache.geode.cache.RegionEvent&lt;K, V&gt;)</code></a></dd>
</dl>
</li>
</ul>
<a name="close--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>close</h4>
<pre>void&nbsp;close()</pre>
<div class="block">Does a localDestroyRegion, but leaves behind the disk files if this is a region with
 persistBackup set to true. Calls <a href="../../../../org/apache/geode/cache/CacheListener.html#afterRegionDestroy-org.apache.geode.cache.RegionEvent-"><code>CacheListener.afterRegionDestroy(org.apache.geode.cache.RegionEvent&lt;K, V&gt;)</code></a> on each cache
 listener on the closed region(s). Also calls <a href="../../../../org/apache/geode/cache/CacheCallback.html#close--"><code>CacheCallback.close()</code></a> on each callback on
 the closed region(s).
 <p>
 Does not update any <code>CacheStatistics</code>.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/geode/cache/Region.html#localDestroyRegion--"><code>localDestroyRegion()</code></a>, 
<a href="../../../../org/apache/geode/cache/CacheListener.html#afterRegionDestroy-org.apache.geode.cache.RegionEvent-"><code>CacheListener.afterRegionDestroy(org.apache.geode.cache.RegionEvent&lt;K, V&gt;)</code></a></dd>
</dl>
</li>
</ul>
<a name="getSnapshotService--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSnapshotService</h4>
<pre><a href="../../../../org/apache/geode/cache/snapshot/RegionSnapshotService.html" title="interface in org.apache.geode.cache.snapshot">RegionSnapshotService</a>&lt;<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>,<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a>&gt;&nbsp;getSnapshotService()</pre>
<div class="block">Obtains the snapshot service to allow the cache data to be imported or exported.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the snapshot service for the region</dd>
</dl>
</li>
</ul>
<a name="saveSnapshot-java.io.OutputStream-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>saveSnapshot</h4>
<pre>void&nbsp;saveSnapshot(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io">OutputStream</a>&nbsp;outputStream)
           throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">as of 7.0 use <a href="../../../../org/apache/geode/cache/Region.html#getSnapshotService--"><code>getSnapshotService()</code></a></span></div>
<div class="block">Saves the data in this region in a snapshot file. The data is a "concurrent" snapshot in that
 modifications to the region while the snapshot is being written are not guaranteed to be
 included or excluded from the snapshot. In other words, if there are concurrent modifications
 to the region while the snapshot is being written, the snapshot may not reflect a consistent
 state of the entire region at any moment in time.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>outputStream</code> - the output stream to write to</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - if encountered while writing the file</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - If the region is a partitioned region</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/geode/cache/Region.html#loadSnapshot-java.io.InputStream-"><code>loadSnapshot(java.io.InputStream)</code></a></dd>
</dl>
</li>
</ul>
<a name="loadSnapshot-java.io.InputStream-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>loadSnapshot</h4>
<pre>void&nbsp;loadSnapshot(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io">InputStream</a>&nbsp;inputStream)
           throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
                  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassNotFoundException.html?is-external=true" title="class or interface in java.lang">ClassNotFoundException</a>,
                  <a href="../../../../org/apache/geode/cache/CacheWriterException.html" title="class in org.apache.geode.cache">CacheWriterException</a>,
                  <a href="../../../../org/apache/geode/cache/TimeoutException.html" title="class in org.apache.geode.cache">TimeoutException</a></pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">as of 7.0 use <a href="../../../../org/apache/geode/cache/Region.html#getSnapshotService--"><code>getSnapshotService()</code></a></span></div>
<div class="block">Loads data from a file that was previously created with the saveSnapshot method. This method
 essentially destroys the region and automatically recreates it with the data in the snapshot.
 Any current data in the region is lost, replaced with the data in the snapshot file. Causes
 this region and all other regions with the same name in remote caches in this distributed
 system to be reinitialized: remote regions are cleared of all data and distributed
 <a href="../../../../org/apache/geode/cache/DataPolicy.html#withReplication--"><code>replicated</code></a> remote regions will do a new getInitialImage
 operation to get the data from this snapshot. Any existing references to this region or any
 region that is reinitialized in this manner become unusable in that any subsequent methods
 invoked on those references will throw a RegionReinitializedException (which is a subclass of
 RegionDestroyedException).
 <p>

 In order to continue working with this region, a new reference needs to be acquired using
 Cache#getRegion or Region#getSubregion (which will block until reinitialization is complete).
 <p>

 NOTE: SUBREGIONS ARE DESTROYED. Since loading a snapshot effectively destroys the region and
 recreates it, all subregions of this region in this cache as well as other remote caches in the
 same distributed system are destroyed.
 <p>

 If any error occurs while loading the snapshot, this region is destroyed and threads in remote
 caches that are attempting to get a reference to this region will get null instead of a region
 reference.

 The only callbacks that are invoked are called for the destroyRegion operation, i.e. the
 CacheWriter and the close methods on callbacks. CacheListeners and other callback objects have
 their close() methods called when the region is destroyed, and then those same callback objects
 will be reinstalled on the new region. Therefore, the callback objects should be able to handle
 a close() followed by events associated with the newly created region.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>inputStream</code> - the inputStream to load the snapshot from</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassNotFoundException.html?is-external=true" title="class or interface in java.lang">ClassNotFoundException</a></code> - if a class cannot be found while loading data</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - if error encountered while reading file.</dd>
<dd><code><a href="../../../../org/apache/geode/cache/CacheWriterException.html" title="class in org.apache.geode.cache">CacheWriterException</a></code> - if a CacheWriter aborts the destroyRegion operation; if this
         occurs some subregions may have already been successfully destroyed.</dd>
<dd><code><a href="../../../../org/apache/geode/distributed/LeaseExpiredException.html" title="class in org.apache.geode.distributed">LeaseExpiredException</a></code> - if lease expired on distributed lock
         for Scope.GLOBAL</dd>
<dd><code><a href="../../../../org/apache/geode/cache/TimeoutException.html" title="class in org.apache.geode.cache">TimeoutException</a></code> - if timed out getting distributed lock for Scope.GLOBAL</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - If the region is a partitioned region</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/geode/cache/RegionReinitializedException.html" title="class in org.apache.geode.cache"><code>RegionReinitializedException</code></a></dd>
</dl>
</li>
</ul>
<a name="getSubregion-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSubregion</h4>
<pre>&lt;SK,SV&gt;&nbsp;<a href="../../../../org/apache/geode/cache/Region.html" title="interface in org.apache.geode.cache">Region</a>&lt;SK,SV&gt;&nbsp;getSubregion(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;path)</pre>
<div class="block">Returns a subregion with the specified name or null if doesn't exist. The name is relative from
 this region, so it can be either a simple region name or a relative region path. If
 <code>regionName</code> is the empty string, then this region itself is returned.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>path</code> - the path to the subregion</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a subregion with the specified relative path from this region, or null if it doesn't
         exist</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if path starts with a forward slash or</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/geode/cache/Region.html" title="interface in org.apache.geode.cache"><code>Region</code></a>, 
<a href="../../../../org/apache/geode/cache/Region.html#getFullPath--"><code>getFullPath()</code></a></dd>
</dl>
</li>
</ul>
<a name="createSubregion-java.lang.String-org.apache.geode.cache.RegionAttributes-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createSubregion</h4>
<pre>&lt;SK,SV&gt;&nbsp;<a href="../../../../org/apache/geode/cache/Region.html" title="interface in org.apache.geode.cache">Region</a>&lt;SK,SV&gt;&nbsp;createSubregion(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;subregionName,
                                      <a href="../../../../org/apache/geode/cache/RegionAttributes.html" title="interface in org.apache.geode.cache">RegionAttributes</a>&lt;SK,SV&gt;&nbsp;aRegionAttributes)
                               throws <a href="../../../../org/apache/geode/cache/RegionExistsException.html" title="class in org.apache.geode.cache">RegionExistsException</a>,
                                      <a href="../../../../org/apache/geode/cache/TimeoutException.html" title="class in org.apache.geode.cache">TimeoutException</a></pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">as of 7.0 use <a href="../../../../org/apache/geode/cache/RegionFactory.html#createSubregion-org.apache.geode.cache.Region-java.lang.String-"><code>RegionFactory.createSubregion(Region, String)</code></a> or
             <a href="../../../../org/apache/geode/cache/client/ClientRegionFactory.html#createSubregion-org.apache.geode.cache.Region-java.lang.String-"><code>ClientRegionFactory.createSubregion(Region, String)</code></a>.</span></div>
<div class="block">Creates a subregion with the specified name and <code>RegionAttributes</code>. The name must
 not contain a region name separator. If the subregion is a distributed
 <a href="../../../../org/apache/geode/cache/DataPolicy.html#withReplication--"><code>replicated</code></a> region, it will be initialized with data from all
 other caches in this distributed system that have the same region.

 <p>
 Updates the <a href="../../../../org/apache/geode/cache/CacheStatistics.html#getLastAccessedTime--"><code>CacheStatistics.getLastAccessedTime()</code></a> and
 <a href="../../../../org/apache/geode/cache/CacheStatistics.html#getLastModifiedTime--"><code>CacheStatistics.getLastModifiedTime()</code></a> for this region.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>subregionName</code> - the subregion name</dd>
<dd><code>aRegionAttributes</code> - the RegionAttributes to be used for the subregion</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a subregion with the specified name</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if aRegionAttributes is null or if regionName is null, the
         empty string, or contains a '/'</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</a></code> - If the supplied RegionAttributes violate the
         <a href="AttributesFactory.html#creationConstraints">region creation constraints</a>
         with a region of the same name in another cache in the distributed system or with this
         (parent) region.</dd>
<dd><code><a href="../../../../org/apache/geode/distributed/LeaseExpiredException.html" title="class in org.apache.geode.distributed">LeaseExpiredException</a></code> - if lease expired on distributed lock
         for Scope.GLOBAL</dd>
<dd><code><a href="../../../../org/apache/geode/cache/TimeoutException.html" title="class in org.apache.geode.cache">TimeoutException</a></code> - if timed out getting distributed lock for Scope.GLOBAL</dd>
<dd><code><a href="../../../../org/apache/geode/cache/RegionExistsException.html" title="class in org.apache.geode.cache">RegionExistsException</a></code> - if a subregion by the specified name already exists</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - If the region is a partitioned region</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/geode/cache/AttributesFactory.html" title="class in org.apache.geode.cache"><code>AttributesFactory</code></a>, 
<a href="../../../../org/apache/geode/cache/Region.html#getFullPath--"><code>getFullPath()</code></a></dd>
</dl>
</li>
</ul>
<a name="subregions-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>subregions</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../org/apache/geode/cache/Region.html" title="interface in org.apache.geode.cache">Region</a>&lt;?,?&gt;&gt;&nbsp;subregions(boolean&nbsp;recursive)</pre>
<div class="block">Returns a Set of all subregions. If the recursive parameter is set to true, this call will
 recursively collect all subregions contained in this region. Otherwise, this call will only
 return the Set of direct subregions.

 <p>
 This <code>Set</code> is unmodifiable. It is backed by this region. Synchronization is not
 necessary to access or iterate over this set. No <code>ConcurrentModificationException</code>s
 will be thrown, but subregions may be added or removed while a thread is iterating. Iterators
 are intended to be used by one thread at a time. If a stable "snapshot" view of the set is
 required, then call one of the toArray methods on the set and iterate over the array.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>recursive</code> - if false, collects direct subregions only; if true, collects all subregions
        recursively</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a Set of subregions</dd>
</dl>
</li>
</ul>
<a name="getEntry-java.lang.Object-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getEntry</h4>
<pre><a href="../../../../org/apache/geode/cache/Region.Entry.html" title="interface in org.apache.geode.cache">Region.Entry</a>&lt;<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>,<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a>&gt;&nbsp;getEntry(<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>&nbsp;key)</pre>
<div class="block">Returns the <code>Region.Entry</code> for the specified key, or null if it doesn't exist.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - the key corresponding to the Entry to return</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the Region.Entry for the specified key or null if not found in this region</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if key is null</dd>
</dl>
</li>
</ul>
<a name="get-java.lang.Object-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>get</h4>
<pre><a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a>&nbsp;get(<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>&nbsp;key)
throws <a href="../../../../org/apache/geode/cache/CacheLoaderException.html" title="class in org.apache.geode.cache">CacheLoaderException</a>,
      <a href="../../../../org/apache/geode/cache/TimeoutException.html" title="class in org.apache.geode.cache">TimeoutException</a></pre>
<div class="block">Returns the value associated with the specified key. If the value is not present locally for
 this entry, a netSearch and/or a CacheLoader may be invoked to get the value, depending on the
 scope of this region. A netSearch looks for a value in every node of the system that defines
 this region. A netLoad invokes remote loaders one at a time until one returns a value or throws
 an exception. If any of these methods successfully retrieves a value than the value is
 immediately returned.
 <p>
 For local scope, a local CacheLoader will be invoked if there is one. For global scope, the
 order is netSearch, localLoad, netLoad. For any other distributed scope, the order is
 localLoad, netSearch, netLoad.
 <p>
 netSearch and netLoad are never performed more than once, so if a loader attempts to do a
 netSearch and one was already done, then another one will not be done.
 <p>
 The value returned by get is not copied, so multi-threaded applications should not modify the
 value directly, but should use the update methods.
 <p>
 Updates the <a href="../../../../org/apache/geode/cache/CacheStatistics.html#getLastAccessedTime--"><code>CacheStatistics.getLastAccessedTime()</code></a>, <a href="../../../../org/apache/geode/cache/CacheStatistics.html#getHitCount--"><code>CacheStatistics.getHitCount()</code></a>,
 <a href="../../../../org/apache/geode/cache/CacheStatistics.html#getMissCount--"><code>CacheStatistics.getMissCount()</code></a>, and <a href="../../../../org/apache/geode/cache/CacheStatistics.html#getLastModifiedTime--"><code>CacheStatistics.getLastModifiedTime()</code></a> (if a new
 value is loaded) for this region and the entry.
 <p>

 If the <code>CacheWriter</code> throws a <code>CacheWriterException</code> when a new value is
 retrieved from a loader, the value will not be put into the cache (a new entry will not be
 created) but the get will return the value and not propagate the exception.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#get-java.lang.Object-" title="class or interface in java.util">get</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>,<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a>&gt;</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - whose associated value is to be returned. The key Object must implement the equals
        and hashCode methods. Note that even though key is typed as "Object" if a CacheLoader is
        used then make sure you only pass instances of "K" in this parameter.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the value with specified key, or null if the value is not found and can't be loaded</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the key is null</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if the key does not meet the serializability requirements</dd>
<dd><code><a href="../../../../org/apache/geode/distributed/LeaseExpiredException.html" title="class in org.apache.geode.distributed">LeaseExpiredException</a></code> - if lease expired on distributed lock
         for Scope.GLOBAL</dd>
<dd><code><a href="../../../../org/apache/geode/cache/TimeoutException.html" title="class in org.apache.geode.cache">TimeoutException</a></code> - if timed out doing a <a href="../../../../org/apache/geode/cache/Cache.html#getSearchTimeout--"><code>search</code></a> for
         distributed or getting a distributed lock for Scope.GLOBAL</dd>
<dd><code><a href="../../../../org/apache/geode/cache/CacheLoaderException.html" title="class in org.apache.geode.cache">CacheLoaderException</a></code> - if a cache loader throws an exception, or if the cache loader
         returns an object that is not serializable and this is a distributed region</dd>
<dd><code><a href="../../../../org/apache/geode/cache/PartitionedRegionStorageException.html" title="class in org.apache.geode.cache">PartitionedRegionStorageException</a></code> - for a partitioned region fails to invoke a
         <a href="../../../../org/apache/geode/cache/CacheLoader.html" title="interface in org.apache.geode.cache"><code>CacheLoader</code></a></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/geode/cache/CacheLoader.html#load-org.apache.geode.cache.LoaderHelper-"><code>CacheLoader.load(org.apache.geode.cache.LoaderHelper&lt;K, V&gt;)</code></a>, 
<a href="../../../../org/apache/geode/cache/CacheListener.html#afterCreate-org.apache.geode.cache.EntryEvent-"><code>CacheListener.afterCreate(org.apache.geode.cache.EntryEvent&lt;K, V&gt;)</code></a>, 
<a href="../../../../org/apache/geode/cache/CacheListener.html#afterUpdate-org.apache.geode.cache.EntryEvent-"><code>CacheListener.afterUpdate(org.apache.geode.cache.EntryEvent&lt;K, V&gt;)</code></a>, 
<a href="../../../../org/apache/geode/cache/CacheWriter.html#beforeCreate-org.apache.geode.cache.EntryEvent-"><code>CacheWriter.beforeCreate(org.apache.geode.cache.EntryEvent&lt;K, V&gt;)</code></a>, 
<a href="../../../../org/apache/geode/cache/CacheWriter.html#beforeUpdate-org.apache.geode.cache.EntryEvent-"><code>CacheWriter.beforeUpdate(org.apache.geode.cache.EntryEvent&lt;K, V&gt;)</code></a></dd>
</dl>
</li>
</ul>
<a name="get-java.lang.Object-java.lang.Object-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>get</h4>
<pre><a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a>&nbsp;get(<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>&nbsp;key,
      <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>&nbsp;aCallbackArgument)
throws <a href="../../../../org/apache/geode/cache/TimeoutException.html" title="class in org.apache.geode.cache">TimeoutException</a>,
      <a href="../../../../org/apache/geode/cache/CacheLoaderException.html" title="class in org.apache.geode.cache">CacheLoaderException</a></pre>
<div class="block">Returns the value associated with the specified key, passing the callback argument to any cache
 loaders or cache writers that are invoked in the operation. If the value is not present locally
 for this entry, a netSearch and/or a CacheLoader may be invoked to get the value, depending on
 the scope of this region. A netSearch looks for a value in every node of the system that
 defines this region. A netLoad invokes remote loaders one at a time until one returns a value
 or throws an exception. If any of these methods successfully retrieves a value than the value
 is immediately returned.
 <p>
 For local scope, a local CacheLoader will be invoked if there is one. For global scope, the
 order is netSearch, localLoad, netLoad. For any other distributed scope, the order is
 localLoad, netSearch, netLoad.
 <p>
 netSearch and netLoad are never performed more than once, so if a loader attempts to do a
 netSearch and one was already done, then another one will not be done.
 <p>
 The value returned by get is not copied, so multi-threaded applications should not modify the
 value directly, but should use the update methods.
 <p>
 Updates the <a href="../../../../org/apache/geode/cache/CacheStatistics.html#getLastAccessedTime--"><code>CacheStatistics.getLastAccessedTime()</code></a>, <a href="../../../../org/apache/geode/cache/CacheStatistics.html#getHitCount--"><code>CacheStatistics.getHitCount()</code></a>,
 <a href="../../../../org/apache/geode/cache/CacheStatistics.html#getMissCount--"><code>CacheStatistics.getMissCount()</code></a>, and <a href="../../../../org/apache/geode/cache/CacheStatistics.html#getLastModifiedTime--"><code>CacheStatistics.getLastModifiedTime()</code></a> (if a new
 value is loaded) for this region and the entry.

 If the <code>CacheWriter</code> throws a <code>CacheWriterException</code> when a new value is
 retrieved from a loader, then the value will not be put into the cache (a new entry will not be
 created) but the get will return the value and not propagate the exception.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - whose associated value is to be returned. The key Object must implement the equals
        and hashCode methods. Note that even though key is typed as "Object" if a CacheLoader is
        used then make sure you only pass instances of "K" in this parameter.</dd>
<dd><code>aCallbackArgument</code> - an argument passed into the CacheLoader if loader is used. This same
        argument will also be subsequently passed to a CacheWriter if the loader returns a
        non-null value to be placed in the cache. Modifications to this argument made in the
        CacheLoader will be visible to the CacheWriter even if the loader and the writer are
        installed in different cache VMs. It will also be passed to any other callback events
        triggered by this method. May be null. Should be serializable.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the value with specified key, or null if the value is not found and can't be loaded</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if key is null</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if aCallbackArgument is not serializable</dd>
<dd><code><a href="../../../../org/apache/geode/distributed/LeaseExpiredException.html" title="class in org.apache.geode.distributed">LeaseExpiredException</a></code> - if lease expired on distributed lock
         for Scope.GLOBAL</dd>
<dd><code><a href="../../../../org/apache/geode/cache/TimeoutException.html" title="class in org.apache.geode.cache">TimeoutException</a></code> - if timed out doing a <a href="../../../../org/apache/geode/cache/Cache.html#getSearchTimeout--"><code>search</code></a> for
         distributed or getting a distributed lock for Scope.GLOBAL</dd>
<dd><code><a href="../../../../org/apache/geode/cache/CacheLoaderException.html" title="class in org.apache.geode.cache">CacheLoaderException</a></code> - if a cache loader throws an exception, or if the cache loader
         returns an object that is not serializable and this is a distributed region</dd>
<dd><code><a href="../../../../org/apache/geode/cache/PartitionedRegionStorageException.html" title="class in org.apache.geode.cache">PartitionedRegionStorageException</a></code> - for a partitioned region fails to invoke a
         <a href="../../../../org/apache/geode/cache/CacheLoader.html" title="interface in org.apache.geode.cache"><code>CacheLoader</code></a></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/geode/cache/RegionAttributes.html" title="interface in org.apache.geode.cache"><code>RegionAttributes</code></a>, 
<a href="../../../../org/apache/geode/cache/CacheLoader.html#load-org.apache.geode.cache.LoaderHelper-"><code>CacheLoader.load(org.apache.geode.cache.LoaderHelper&lt;K, V&gt;)</code></a>, 
<a href="../../../../org/apache/geode/cache/CacheListener.html#afterCreate-org.apache.geode.cache.EntryEvent-"><code>CacheListener.afterCreate(org.apache.geode.cache.EntryEvent&lt;K, V&gt;)</code></a>, 
<a href="../../../../org/apache/geode/cache/CacheListener.html#afterUpdate-org.apache.geode.cache.EntryEvent-"><code>CacheListener.afterUpdate(org.apache.geode.cache.EntryEvent&lt;K, V&gt;)</code></a>, 
<a href="../../../../org/apache/geode/cache/CacheWriter.html#beforeCreate-org.apache.geode.cache.EntryEvent-"><code>CacheWriter.beforeCreate(org.apache.geode.cache.EntryEvent&lt;K, V&gt;)</code></a>, 
<a href="../../../../org/apache/geode/cache/CacheWriter.html#beforeUpdate-org.apache.geode.cache.EntryEvent-"><code>CacheWriter.beforeUpdate(org.apache.geode.cache.EntryEvent&lt;K, V&gt;)</code></a></dd>
</dl>
</li>
</ul>
<a name="put-java.lang.Object-java.lang.Object-">
<!--   -->
</a><a name="put-K-V-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>put</h4>
<pre><a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a>&nbsp;put(<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>&nbsp;key,
      <a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a>&nbsp;value)
throws <a href="../../../../org/apache/geode/cache/TimeoutException.html" title="class in org.apache.geode.cache">TimeoutException</a>,
      <a href="../../../../org/apache/geode/cache/CacheWriterException.html" title="class in org.apache.geode.cache">CacheWriterException</a></pre>
<div class="block">Places a new value into an entry in this region with the specified key. If there is already an
 entry associated with the specified key in this region, the entry's previous value is
 overwritten.

 <p>
 Updates the <a href="../../../../org/apache/geode/cache/CacheStatistics.html#getLastAccessedTime--"><code>CacheStatistics.getLastAccessedTime()</code></a> and
 <a href="../../../../org/apache/geode/cache/CacheStatistics.html#getLastModifiedTime--"><code>CacheStatistics.getLastModifiedTime()</code></a> for this region and the entry.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#put-K-V-" title="class or interface in java.util">put</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>,<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a>&gt;</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - a key associated with the value to be put into this region. The key object must
        implement the equals and hashCode methods.</dd>
<dd><code>value</code> - the value to be put into the cache</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the previous value stored locally for the key. If the entry did not exist then
         <code>null</code> is returned. If the entry was "invalid" then <code>null</code> is
         returned. In some cases <code>null</code> may be returned even if a previous value
         exists. If the region is a client proxy then <code>null</code> is returned. If the
         region is partitioned and the put is done on a non-primary then <code>null</code> is
         returned. If the value is not currently stored in memory but is on disk and if the
         region does not have cqs then <code>null</code> is returned.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if key is null or if value is null (use invalidate instead), or if
         the key or value do not meet serializability requirements</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassCastException.html?is-external=true" title="class or interface in java.lang">ClassCastException</a></code> - if key does not satisfy the keyConstraint</dd>
<dd><code><a href="../../../../org/apache/geode/distributed/LeaseExpiredException.html" title="class in org.apache.geode.distributed">LeaseExpiredException</a></code> - if lease expired on distributed lock
         for Scope.GLOBAL</dd>
<dd><code><a href="../../../../org/apache/geode/cache/TimeoutException.html" title="class in org.apache.geode.cache">TimeoutException</a></code> - if timed out getting distributed lock for Scope.GLOBAL</dd>
<dd><code><a href="../../../../org/apache/geode/cache/CacheWriterException.html" title="class in org.apache.geode.cache">CacheWriterException</a></code> - if a CacheWriter aborts the operation</dd>
<dd><code><a href="../../../../org/apache/geode/cache/PartitionedRegionStorageException.html" title="class in org.apache.geode.cache">PartitionedRegionStorageException</a></code> - if the operation could not be completed on a
         partitioned region.</dd>
<dd><code><a href="../../../../org/apache/geode/cache/LowMemoryException.html" title="class in org.apache.geode.cache">LowMemoryException</a></code> - if a low memory condition is detected.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/geode/cache/Region.html#invalidate-java.lang.Object-"><code>invalidate(Object)</code></a>, 
<a href="../../../../org/apache/geode/cache/CacheLoader.html#load-org.apache.geode.cache.LoaderHelper-"><code>CacheLoader.load(org.apache.geode.cache.LoaderHelper&lt;K, V&gt;)</code></a>, 
<a href="../../../../org/apache/geode/cache/CacheListener.html#afterCreate-org.apache.geode.cache.EntryEvent-"><code>CacheListener.afterCreate(org.apache.geode.cache.EntryEvent&lt;K, V&gt;)</code></a>, 
<a href="../../../../org/apache/geode/cache/CacheListener.html#afterUpdate-org.apache.geode.cache.EntryEvent-"><code>CacheListener.afterUpdate(org.apache.geode.cache.EntryEvent&lt;K, V&gt;)</code></a>, 
<a href="../../../../org/apache/geode/cache/CacheWriter.html#beforeCreate-org.apache.geode.cache.EntryEvent-"><code>CacheWriter.beforeCreate(org.apache.geode.cache.EntryEvent&lt;K, V&gt;)</code></a>, 
<a href="../../../../org/apache/geode/cache/CacheWriter.html#beforeUpdate-org.apache.geode.cache.EntryEvent-"><code>CacheWriter.beforeUpdate(org.apache.geode.cache.EntryEvent&lt;K, V&gt;)</code></a></dd>
</dl>
</li>
</ul>
<a name="put-java.lang.Object-java.lang.Object-java.lang.Object-">
<!--   -->
</a><a name="put-K-V-java.lang.Object-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>put</h4>
<pre><a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a>&nbsp;put(<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>&nbsp;key,
      <a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a>&nbsp;value,
      <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>&nbsp;aCallbackArgument)
throws <a href="../../../../org/apache/geode/cache/TimeoutException.html" title="class in org.apache.geode.cache">TimeoutException</a>,
      <a href="../../../../org/apache/geode/cache/CacheWriterException.html" title="class in org.apache.geode.cache">CacheWriterException</a></pre>
<div class="block">Places a new value into an entry in this region with the specified key, providing a
 user-defined parameter object to any <code>CacheWriter</code> invoked in the process. If there
 is already an entry associated with the specified key in this region, the entry's previous
 value is overwritten.

 <p>
 Updates the <a href="../../../../org/apache/geode/cache/CacheStatistics.html#getLastAccessedTime--"><code>CacheStatistics.getLastAccessedTime()</code></a> and
 <a href="../../../../org/apache/geode/cache/CacheStatistics.html#getLastModifiedTime--"><code>CacheStatistics.getLastModifiedTime()</code></a> for this region and the entry.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - a key associated with the value to be put into this region. The key object must
        implement the equals and hashCode methods.</dd>
<dd><code>value</code> - the value to be put into the cache</dd>
<dd><code>aCallbackArgument</code> - a user-defined parameter to pass to callback events triggered by this
        method. Can be null. Should be serializable.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the previous value stored locally for the key. If the entry did not exist then
         <code>null</code> is returned. If the entry was "invalid" then <code>null</code> is
         returned. In some cases <code>null</code> may be returned even if a previous value
         exists. If the region is a client proxy then <code>null</code> is returned. If the
         region is off-heap and the old value was stored in off-heap memory then
         <code>null</code> is returned. If the region is partitioned and the put is done on a
         non-primary then <code>null</code> is returned. If the value is not currently stored in
         memory but is on disk and if the region does not have cqs then <code>null</code> is
         returned.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if key is null</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if key, value, or aCallbackArgument do not meet
         serializability requirements</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassCastException.html?is-external=true" title="class or interface in java.lang">ClassCastException</a></code> - if key does not satisfy the keyConstraint</dd>
<dd><code><a href="../../../../org/apache/geode/distributed/LeaseExpiredException.html" title="class in org.apache.geode.distributed">LeaseExpiredException</a></code> - if lease expired on distributed lock
         for Scope.GLOBAL</dd>
<dd><code><a href="../../../../org/apache/geode/cache/TimeoutException.html" title="class in org.apache.geode.cache">TimeoutException</a></code> - if timed out getting distributed lock for Scope.GLOBAL</dd>
<dd><code><a href="../../../../org/apache/geode/cache/CacheWriterException.html" title="class in org.apache.geode.cache">CacheWriterException</a></code> - if a CacheWriter aborts the operation</dd>
<dd><code><a href="../../../../org/apache/geode/cache/PartitionedRegionStorageException.html" title="class in org.apache.geode.cache">PartitionedRegionStorageException</a></code> - if the operation could not be completed on a
         partitioned region.</dd>
<dd><code><a href="../../../../org/apache/geode/cache/LowMemoryException.html" title="class in org.apache.geode.cache">LowMemoryException</a></code> - if a low memory condition is detected.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/geode/cache/Region.html#invalidate-java.lang.Object-"><code>invalidate(Object)</code></a>, 
<a href="../../../../org/apache/geode/cache/CacheLoader.html#load-org.apache.geode.cache.LoaderHelper-"><code>CacheLoader.load(org.apache.geode.cache.LoaderHelper&lt;K, V&gt;)</code></a>, 
<a href="../../../../org/apache/geode/cache/CacheListener.html#afterCreate-org.apache.geode.cache.EntryEvent-"><code>CacheListener.afterCreate(org.apache.geode.cache.EntryEvent&lt;K, V&gt;)</code></a>, 
<a href="../../../../org/apache/geode/cache/CacheListener.html#afterUpdate-org.apache.geode.cache.EntryEvent-"><code>CacheListener.afterUpdate(org.apache.geode.cache.EntryEvent&lt;K, V&gt;)</code></a>, 
<a href="../../../../org/apache/geode/cache/CacheWriter.html#beforeCreate-org.apache.geode.cache.EntryEvent-"><code>CacheWriter.beforeCreate(org.apache.geode.cache.EntryEvent&lt;K, V&gt;)</code></a>, 
<a href="../../../../org/apache/geode/cache/CacheWriter.html#beforeUpdate-org.apache.geode.cache.EntryEvent-"><code>CacheWriter.beforeUpdate(org.apache.geode.cache.EntryEvent&lt;K, V&gt;)</code></a></dd>
</dl>
</li>
</ul>
<a name="create-java.lang.Object-java.lang.Object-">
<!--   -->
</a><a name="create-K-V-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>create</h4>
<pre>void&nbsp;create(<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>&nbsp;key,
            <a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a>&nbsp;value)
     throws <a href="../../../../org/apache/geode/cache/TimeoutException.html" title="class in org.apache.geode.cache">TimeoutException</a>,
            <a href="../../../../org/apache/geode/cache/EntryExistsException.html" title="class in org.apache.geode.cache">EntryExistsException</a>,
            <a href="../../../../org/apache/geode/cache/CacheWriterException.html" title="class in org.apache.geode.cache">CacheWriterException</a></pre>
<div class="block">Creates a new entry in this region with the specified key and value if and only if an entry
 does not already exist for the specified key. If an entry already exists for the specified
 key, throws <a href="../../../../org/apache/geode/cache/EntryExistsException.html" title="class in org.apache.geode.cache"><code>EntryExistsException</code></a>.

 <p>
 Updates the <a href="../../../../org/apache/geode/cache/CacheStatistics.html#getLastAccessedTime--"><code>CacheStatistics.getLastAccessedTime()</code></a> and
 <a href="../../../../org/apache/geode/cache/CacheStatistics.html#getLastModifiedTime--"><code>CacheStatistics.getLastModifiedTime()</code></a> for this region and the entry.
 <p>
 If this region has a distributed scope, this operation may cause update events in caches that
 already have this region with this entry, and it will cause create events in other caches that
 have <a href="../../../../org/apache/geode/cache/InterestPolicy.html#ALL"><code>all events</code></a> configured.
 <p>
 This operation gets a distributed lock on the entry if the scope is <code>Scope.GLOBAL</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - the key for which to create the entry in this region</dd>
<dd><code>value</code> - the value for the new entry, which may be null meaning the new entry starts as if
        it had been locally invalidated</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if key is null</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if the key or value is not serializable and this is a
         distributed region</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassCastException.html?is-external=true" title="class or interface in java.lang">ClassCastException</a></code> - if key does not satisfy the keyConstraint</dd>
<dd><code><a href="../../../../org/apache/geode/distributed/LeaseExpiredException.html" title="class in org.apache.geode.distributed">LeaseExpiredException</a></code> - if lease expired on distributed lock
         for Scope.GLOBAL</dd>
<dd><code><a href="../../../../org/apache/geode/cache/TimeoutException.html" title="class in org.apache.geode.cache">TimeoutException</a></code> - if timed out getting distributed lock for <code>Scope.GLOBAL</code></dd>
<dd><code><a href="../../../../org/apache/geode/cache/EntryExistsException.html" title="class in org.apache.geode.cache">EntryExistsException</a></code> - if an entry with this key already exists</dd>
<dd><code><a href="../../../../org/apache/geode/cache/CacheWriterException.html" title="class in org.apache.geode.cache">CacheWriterException</a></code> - if a CacheWriter aborts the operation</dd>
<dd><code><a href="../../../../org/apache/geode/cache/PartitionedRegionStorageException.html" title="class in org.apache.geode.cache">PartitionedRegionStorageException</a></code> - if the operation could not be completed on a
         partitioned region.</dd>
<dd><code><a href="../../../../org/apache/geode/cache/LowMemoryException.html" title="class in org.apache.geode.cache">LowMemoryException</a></code> - if a low memory condition is detected.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/geode/cache/CacheListener.html#afterCreate-org.apache.geode.cache.EntryEvent-"><code>CacheListener.afterCreate(org.apache.geode.cache.EntryEvent&lt;K, V&gt;)</code></a>, 
<a href="../../../../org/apache/geode/cache/CacheListener.html#afterUpdate-org.apache.geode.cache.EntryEvent-"><code>CacheListener.afterUpdate(org.apache.geode.cache.EntryEvent&lt;K, V&gt;)</code></a>, 
<a href="../../../../org/apache/geode/cache/CacheWriter.html#beforeCreate-org.apache.geode.cache.EntryEvent-"><code>CacheWriter.beforeCreate(org.apache.geode.cache.EntryEvent&lt;K, V&gt;)</code></a>, 
<a href="../../../../org/apache/geode/cache/CacheWriter.html#beforeUpdate-org.apache.geode.cache.EntryEvent-"><code>CacheWriter.beforeUpdate(org.apache.geode.cache.EntryEvent&lt;K, V&gt;)</code></a></dd>
</dl>
</li>
</ul>
<a name="create-java.lang.Object-java.lang.Object-java.lang.Object-">
<!--   -->
</a><a name="create-K-V-java.lang.Object-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>create</h4>
<pre>void&nbsp;create(<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>&nbsp;key,
            <a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a>&nbsp;value,
            <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>&nbsp;aCallbackArgument)
     throws <a href="../../../../org/apache/geode/cache/TimeoutException.html" title="class in org.apache.geode.cache">TimeoutException</a>,
            <a href="../../../../org/apache/geode/cache/EntryExistsException.html" title="class in org.apache.geode.cache">EntryExistsException</a>,
            <a href="../../../../org/apache/geode/cache/CacheWriterException.html" title="class in org.apache.geode.cache">CacheWriterException</a></pre>
<div class="block">Creates a new entry in this region with the specified key and value, providing a user-defined
 parameter object to any <code>CacheWriter</code> invoked in the process. If this region has a
 distributed scope, then the value may be updated subsequently if other caches update the value.

 <p>
 Updates the <a href="../../../../org/apache/geode/cache/CacheStatistics.html#getLastAccessedTime--"><code>CacheStatistics.getLastAccessedTime()</code></a> and
 <a href="../../../../org/apache/geode/cache/CacheStatistics.html#getLastModifiedTime--"><code>CacheStatistics.getLastModifiedTime()</code></a> for this region and the entry.
 <p>
 If this region has a distributed scope, this operation may cause update events in caches that
 already have this region with this entry, and it will cause create events in other caches that
 have <a href="../../../../org/apache/geode/cache/InterestPolicy.html#ALL"><code>all events</code></a> configured.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - the key for which to create the entry in this region</dd>
<dd><code>value</code> - the value for the new entry, which may be null meaning the new entry starts as if
        it had been locally invalidated.</dd>
<dd><code>aCallbackArgument</code> - a user-defined parameter to pass to callback events triggered by this
        method. Can be null. Should be serializable.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if key is null</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if the key, value, or aCallbackArgument do not meet
         serializability requirements</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassCastException.html?is-external=true" title="class or interface in java.lang">ClassCastException</a></code> - if key does not satisfy the keyConstraint</dd>
<dd><code><a href="../../../../org/apache/geode/distributed/LeaseExpiredException.html" title="class in org.apache.geode.distributed">LeaseExpiredException</a></code> - if lease expired on distributed lock
         for Scope.GLOBAL</dd>
<dd><code><a href="../../../../org/apache/geode/cache/TimeoutException.html" title="class in org.apache.geode.cache">TimeoutException</a></code> - if timed out getting distributed lock for <code>Scope.GLOBAL</code></dd>
<dd><code><a href="../../../../org/apache/geode/cache/EntryExistsException.html" title="class in org.apache.geode.cache">EntryExistsException</a></code> - if an entry with this key already exists</dd>
<dd><code><a href="../../../../org/apache/geode/cache/CacheWriterException.html" title="class in org.apache.geode.cache">CacheWriterException</a></code> - if a CacheWriter aborts the operation</dd>
<dd><code><a href="../../../../org/apache/geode/cache/PartitionedRegionStorageException.html" title="class in org.apache.geode.cache">PartitionedRegionStorageException</a></code> - if the operation could not be completed on a
         partitioned region.</dd>
<dd><code><a href="../../../../org/apache/geode/cache/LowMemoryException.html" title="class in org.apache.geode.cache">LowMemoryException</a></code> - if a low memory condition is detected.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/geode/cache/CacheListener.html#afterCreate-org.apache.geode.cache.EntryEvent-"><code>CacheListener.afterCreate(org.apache.geode.cache.EntryEvent&lt;K, V&gt;)</code></a>, 
<a href="../../../../org/apache/geode/cache/CacheListener.html#afterUpdate-org.apache.geode.cache.EntryEvent-"><code>CacheListener.afterUpdate(org.apache.geode.cache.EntryEvent&lt;K, V&gt;)</code></a>, 
<a href="../../../../org/apache/geode/cache/CacheWriter.html#beforeCreate-org.apache.geode.cache.EntryEvent-"><code>CacheWriter.beforeCreate(org.apache.geode.cache.EntryEvent&lt;K, V&gt;)</code></a>, 
<a href="../../../../org/apache/geode/cache/CacheWriter.html#beforeUpdate-org.apache.geode.cache.EntryEvent-"><code>CacheWriter.beforeUpdate(org.apache.geode.cache.EntryEvent&lt;K, V&gt;)</code></a></dd>
</dl>
</li>
</ul>
<a name="invalidate-java.lang.Object-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>invalidate</h4>
<pre>void&nbsp;invalidate(<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>&nbsp;key)
         throws <a href="../../../../org/apache/geode/cache/TimeoutException.html" title="class in org.apache.geode.cache">TimeoutException</a>,
                <a href="../../../../org/apache/geode/cache/EntryNotFoundException.html" title="class in org.apache.geode.cache">EntryNotFoundException</a></pre>
<div class="block">Invalidates the entry with the specified key. Invalidate only removes the value from the entry,
 the key is kept intact. To completely remove the entry, destroy should be used. The invalidate
 will be distributed to other caches if the scope is not Scope.LOCAL.

 <p>
 Does not update any <code>CacheStatistics</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - the key of the value to be invalidated</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if key is null</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if the key does not meet serializability requirements</dd>
<dd><code><a href="../../../../org/apache/geode/distributed/LeaseExpiredException.html" title="class in org.apache.geode.distributed">LeaseExpiredException</a></code> - if lease expired on distributed lock
         for Scope.GLOBAL</dd>
<dd><code><a href="../../../../org/apache/geode/cache/TimeoutException.html" title="class in org.apache.geode.cache">TimeoutException</a></code> - if timed out getting distributed lock for <code>Scope.GLOBAL</code></dd>
<dd><code><a href="../../../../org/apache/geode/cache/EntryNotFoundException.html" title="class in org.apache.geode.cache">EntryNotFoundException</a></code> - if the entry does not exist in this region</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/geode/cache/CacheListener.html#afterInvalidate-org.apache.geode.cache.EntryEvent-"><code>CacheListener.afterInvalidate(org.apache.geode.cache.EntryEvent&lt;K, V&gt;)</code></a></dd>
</dl>
</li>
</ul>
<a name="invalidate-java.lang.Object-java.lang.Object-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>invalidate</h4>
<pre>void&nbsp;invalidate(<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>&nbsp;key,
                <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>&nbsp;aCallbackArgument)
         throws <a href="../../../../org/apache/geode/cache/TimeoutException.html" title="class in org.apache.geode.cache">TimeoutException</a>,
                <a href="../../../../org/apache/geode/cache/EntryNotFoundException.html" title="class in org.apache.geode.cache">EntryNotFoundException</a></pre>
<div class="block">Invalidates the entry with the specified key, and provides a user-defined argument to the
 <code>CacheListener</code>. Invalidate only removes the value from the entry, the key is kept
 intact. To completely remove the entry, destroy should be used.

 <p>
 Does not update any <code>CacheStatistics</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - the key of the value to be invalidated</dd>
<dd><code>aCallbackArgument</code> - a user-defined parameter to pass to callback events triggered by this
        method. Can be null. Should be serializable.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if key is null</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if the key or the aCallbackArgument do not meet
         serializability requirements</dd>
<dd><code><a href="../../../../org/apache/geode/distributed/LeaseExpiredException.html" title="class in org.apache.geode.distributed">LeaseExpiredException</a></code> - if lease expired on distributed lock
         for <code>Scope.GLOBAL</code></dd>
<dd><code><a href="../../../../org/apache/geode/cache/TimeoutException.html" title="class in org.apache.geode.cache">TimeoutException</a></code> - if timed out getting distributed lock for <code>Scope.GLOBAL</code></dd>
<dd><code><a href="../../../../org/apache/geode/cache/EntryNotFoundException.html" title="class in org.apache.geode.cache">EntryNotFoundException</a></code> - if this entry does not exist in this region</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/geode/cache/CacheListener.html#afterInvalidate-org.apache.geode.cache.EntryEvent-"><code>CacheListener.afterInvalidate(org.apache.geode.cache.EntryEvent&lt;K, V&gt;)</code></a></dd>
</dl>
</li>
</ul>
<a name="localInvalidate-java.lang.Object-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>localInvalidate</h4>
<pre>void&nbsp;localInvalidate(<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>&nbsp;key)
              throws <a href="../../../../org/apache/geode/cache/EntryNotFoundException.html" title="class in org.apache.geode.cache">EntryNotFoundException</a></pre>
<div class="block">Invalidates the value with the specified key in the local cache only. Invalidate will only
 remove the value from the entry, the key will be kept intact. In order to completely remove the
 key, entry and value, destroy should be called.

 <p>
 Does not update any <code>CacheStatistics</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - the key of the value to be invalidated</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if key is null</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if the key does not meet serializability requirements</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</a></code> - if this region is distributed and
         <a href="../../../../org/apache/geode/cache/DataPolicy.html#withReplication--"><code>replicated</code></a></dd>
<dd><code><a href="../../../../org/apache/geode/cache/EntryNotFoundException.html" title="class in org.apache.geode.cache">EntryNotFoundException</a></code> - if the entry does not exist in this region locally</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - If the region is a partitioned region</dd>
<dd><code><a href="../../../../org/apache/geode/cache/UnsupportedOperationInTransactionException.html" title="class in org.apache.geode.cache">UnsupportedOperationInTransactionException</a></code> - If called in a transactional context</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/geode/cache/CacheListener.html#afterInvalidate-org.apache.geode.cache.EntryEvent-"><code>CacheListener.afterInvalidate(org.apache.geode.cache.EntryEvent&lt;K, V&gt;)</code></a></dd>
</dl>
</li>
</ul>
<a name="localInvalidate-java.lang.Object-java.lang.Object-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>localInvalidate</h4>
<pre>void&nbsp;localInvalidate(<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>&nbsp;key,
                     <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>&nbsp;aCallbackArgument)
              throws <a href="../../../../org/apache/geode/cache/EntryNotFoundException.html" title="class in org.apache.geode.cache">EntryNotFoundException</a></pre>
<div class="block">Invalidates the value with the specified key in the local cache only, and provides a
 user-defined argument to the <code>CacheListener</code>. Invalidate will only remove the value
 from the entry, the key will be kept intact. In order to completely remove the key, entry and
 value, destroy should be called.

 <p>
 Does not update any <code>CacheStatistics</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - the key of the value to be invalidated</dd>
<dd><code>aCallbackArgument</code> - a user-defined parameter to pass to callback events triggered by this
        method. Can be null.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if key is null</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</a></code> - if this region is distributed and
         <a href="../../../../org/apache/geode/cache/DataPolicy.html#withReplication--"><code>replicated</code></a></dd>
<dd><code><a href="../../../../org/apache/geode/cache/EntryNotFoundException.html" title="class in org.apache.geode.cache">EntryNotFoundException</a></code> - if this entry does not exist in this region locally</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - If the region is a partitioned region</dd>
<dd><code><a href="../../../../org/apache/geode/cache/UnsupportedOperationInTransactionException.html" title="class in org.apache.geode.cache">UnsupportedOperationInTransactionException</a></code> - If called in a transactional context</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/geode/cache/CacheListener.html#afterInvalidate-org.apache.geode.cache.EntryEvent-"><code>CacheListener.afterInvalidate(org.apache.geode.cache.EntryEvent&lt;K, V&gt;)</code></a></dd>
</dl>
</li>
</ul>
<a name="destroy-java.lang.Object-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>destroy</h4>
<pre><a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a>&nbsp;destroy(<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>&nbsp;key)
   throws <a href="../../../../org/apache/geode/cache/TimeoutException.html" title="class in org.apache.geode.cache">TimeoutException</a>,
          <a href="../../../../org/apache/geode/cache/EntryNotFoundException.html" title="class in org.apache.geode.cache">EntryNotFoundException</a>,
          <a href="../../../../org/apache/geode/cache/CacheWriterException.html" title="class in org.apache.geode.cache">CacheWriterException</a></pre>
<div class="block">Destroys the entry with the specified key. Destroy removes not only the value but also the key
 and entry from this region. Destroy will be distributed to other caches if the scope is not
 <code>Scope.LOCAL</code>.
 <p>
 Does not update any <code>CacheStatistics</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - the key of the entry</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the previous value stored locally for the key. If the entry was "invalid" then
         <code>null</code> is returned. In some cases <code>null</code> may be returned even if
         a previous value exists. If the region is a client proxy then <code>null</code> is
         returned. If the region is off-heap and the old value was stored in off-heap memory
         then <code>null</code> is returned. If the region is partitioned and the destroy is
         done on a non-primary then <code>null</code> is returned. If the value is not currently
         stored in memory but is on disk and if the region does not have cqs then
         <code>null</code> is returned.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if key is null</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if key does not meet serializability requirements</dd>
<dd><code><a href="../../../../org/apache/geode/distributed/LeaseExpiredException.html" title="class in org.apache.geode.distributed">LeaseExpiredException</a></code> - if lease expired on distributed lock
         for Scope.GLOBAL</dd>
<dd><code><a href="../../../../org/apache/geode/cache/TimeoutException.html" title="class in org.apache.geode.cache">TimeoutException</a></code> - if timed out getting distributed lock for Scope.GLOBAL</dd>
<dd><code><a href="../../../../org/apache/geode/cache/EntryNotFoundException.html" title="class in org.apache.geode.cache">EntryNotFoundException</a></code> - if the entry does not exist in this region</dd>
<dd><code><a href="../../../../org/apache/geode/cache/CacheWriterException.html" title="class in org.apache.geode.cache">CacheWriterException</a></code> - if a CacheWriter aborts the operation</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/geode/cache/CacheListener.html#afterDestroy-org.apache.geode.cache.EntryEvent-"><code>CacheListener.afterDestroy(org.apache.geode.cache.EntryEvent&lt;K, V&gt;)</code></a>, 
<a href="../../../../org/apache/geode/cache/CacheWriter.html#beforeDestroy-org.apache.geode.cache.EntryEvent-"><code>CacheWriter.beforeDestroy(org.apache.geode.cache.EntryEvent&lt;K, V&gt;)</code></a></dd>
</dl>
</li>
</ul>
<a name="destroy-java.lang.Object-java.lang.Object-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>destroy</h4>
<pre><a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a>&nbsp;destroy(<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>&nbsp;key,
          <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>&nbsp;aCallbackArgument)
   throws <a href="../../../../org/apache/geode/cache/TimeoutException.html" title="class in org.apache.geode.cache">TimeoutException</a>,
          <a href="../../../../org/apache/geode/cache/EntryNotFoundException.html" title="class in org.apache.geode.cache">EntryNotFoundException</a>,
          <a href="../../../../org/apache/geode/cache/CacheWriterException.html" title="class in org.apache.geode.cache">CacheWriterException</a></pre>
<div class="block">Destroys the entry with the specified key, and provides a user-defined parameter object to any
 <code>CacheWriter</code> invoked in the process. Destroy removes not only the value but also
 the key and entry from this region. Destroy will be distributed to other caches if the scope is
 not <code>Scope.LOCAL</code>.
 <p>
 Does not update any <code>CacheStatistics</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - the key of the entry to destroy</dd>
<dd><code>aCallbackArgument</code> - a user-defined parameter to pass to callback events triggered by this
        method. Can be null. Should be serializable.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the previous value stored locally for the key. If the entry was "invalid" then
         <code>null</code> is returned. In some cases <code>null</code> may be returned even if
         a previous value exists. If the region is a client proxy then <code>null</code> is
         returned. If the region is off-heap and the old value was stored in off-heap memory
         then <code>null</code> is returned. If the region is partitioned and the destroy is
         done on a non-primary then <code>null</code> is returned. If the value is not currently
         stored in memory but is on disk and if the region does not have cqs then
         <code>null</code> is returned.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if key is null</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if the key or aCallbackArgument do not meet serializability
         requirements</dd>
<dd><code><a href="../../../../org/apache/geode/distributed/LeaseExpiredException.html" title="class in org.apache.geode.distributed">LeaseExpiredException</a></code> - if lease expired on distributed lock
         for Scope.GLOBAL</dd>
<dd><code><a href="../../../../org/apache/geode/cache/TimeoutException.html" title="class in org.apache.geode.cache">TimeoutException</a></code> - if timed out getting distributed lock for Scope.GLOBAL</dd>
<dd><code><a href="../../../../org/apache/geode/cache/EntryNotFoundException.html" title="class in org.apache.geode.cache">EntryNotFoundException</a></code> - if the entry does not exist in this region</dd>
<dd><code><a href="../../../../org/apache/geode/cache/CacheWriterException.html" title="class in org.apache.geode.cache">CacheWriterException</a></code> - if a CacheWriter aborts the operation</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/geode/cache/CacheListener.html#afterDestroy-org.apache.geode.cache.EntryEvent-"><code>CacheListener.afterDestroy(org.apache.geode.cache.EntryEvent&lt;K, V&gt;)</code></a>, 
<a href="../../../../org/apache/geode/cache/CacheWriter.html#beforeDestroy-org.apache.geode.cache.EntryEvent-"><code>CacheWriter.beforeDestroy(org.apache.geode.cache.EntryEvent&lt;K, V&gt;)</code></a></dd>
</dl>
</li>
</ul>
<a name="localDestroy-java.lang.Object-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>localDestroy</h4>
<pre>void&nbsp;localDestroy(<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>&nbsp;key)
           throws <a href="../../../../org/apache/geode/cache/EntryNotFoundException.html" title="class in org.apache.geode.cache">EntryNotFoundException</a></pre>
<div class="block">Destroys the value with the specified key in the local cache only, No <code>CacheWriter</code>
 is invoked. Destroy removes not only the value but also the key and entry from this region.
 <p>
 Does not update any <code>CacheStatistics</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - the key of the entry to destroy</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if key is null</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</a></code> - if this region is distributed and
         <a href="../../../../org/apache/geode/cache/DataPolicy.html#withReplication--"><code>replicated</code></a></dd>
<dd><code><a href="../../../../org/apache/geode/cache/EntryNotFoundException.html" title="class in org.apache.geode.cache">EntryNotFoundException</a></code> - if the entry does not exist in this region locally</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - If the region is a partitioned region</dd>
<dd><code><a href="../../../../org/apache/geode/cache/UnsupportedOperationInTransactionException.html" title="class in org.apache.geode.cache">UnsupportedOperationInTransactionException</a></code> - If called in a transactional context</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/geode/cache/CacheListener.html#afterDestroy-org.apache.geode.cache.EntryEvent-"><code>CacheListener.afterDestroy(org.apache.geode.cache.EntryEvent&lt;K, V&gt;)</code></a></dd>
</dl>
</li>
</ul>
<a name="localDestroy-java.lang.Object-java.lang.Object-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>localDestroy</h4>
<pre>void&nbsp;localDestroy(<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>&nbsp;key,
                  <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>&nbsp;aCallbackArgument)
           throws <a href="../../../../org/apache/geode/cache/EntryNotFoundException.html" title="class in org.apache.geode.cache">EntryNotFoundException</a></pre>
<div class="block">Destroys the value with the specified key in the local cache only, and provides a user-defined
 parameter object to the <code>CacheListener</code>, if any. No <code>CacheWriter</code> is
 invoked. Destroy removes not only the value but also the key and entry from this region.
 <p>
 Does not update any <code>CacheStatistics</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - the key of the entry to destroy</dd>
<dd><code>aCallbackArgument</code> - a user-defined parameter to pass to callback events triggered by this
        method. Can be null.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if key is null</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</a></code> - if this region is distributed and
         <a href="../../../../org/apache/geode/cache/DataPolicy.html#withReplication--"><code>replicated</code></a></dd>
<dd><code><a href="../../../../org/apache/geode/cache/EntryNotFoundException.html" title="class in org.apache.geode.cache">EntryNotFoundException</a></code> - if the entry does not exist in this region locally</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - If the region is a partitioned region</dd>
<dd><code><a href="../../../../org/apache/geode/cache/UnsupportedOperationInTransactionException.html" title="class in org.apache.geode.cache">UnsupportedOperationInTransactionException</a></code> - If called in a transactional context</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/geode/cache/CacheListener.html#afterDestroy-org.apache.geode.cache.EntryEvent-"><code>CacheListener.afterDestroy(org.apache.geode.cache.EntryEvent&lt;K, V&gt;)</code></a></dd>
</dl>
</li>
</ul>
<a name="keySet--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>keySet</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>&gt;&nbsp;keySet()</pre>
<div class="block">Returns a set of keys in the region.

 <p>
 This <code>Set</code> is unmodifiable. It is backed by this region. Synchronization is not
 necessary to access or iterate over this set. No <code>ConcurrentModificationException</code>s
 will be thrown, but keys may be added or removed to this set while a thread is iterating.
 Iterators are intended to be used by one thread at a time. If a stable "snapshot" view of the
 set is required, then call one of the toArray methods on the set and iterate over the array. If
 you need to lock down the region so this set is not modified while it is being accessed, use
 global scope with a distributed lock.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#keySet--" title="class or interface in java.util">keySet</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>,<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a>&gt;</code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a Set of all the keys</dd>
</dl>
</li>
</ul>
<a name="values--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>values</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a>&gt;&nbsp;values()</pre>
<div class="block">Returns a Collection of values in this region.

 <p>
 This <code>Collection</code> is unmodifiable. It is backed by this region. Synchronization is
 not necessary to access or iterate over this collection. No
 <code>ConcurrentModificationException</code>s will be thrown, but values may be added or
 removed to this collection while a thread is iterating. Iterators are intended to be used by
 one thread at a time. If a stable "snapshot" view of the collection is required, then call one
 of the toArray methods on the collection and iterate over the array. If you need to lock down
 the region so this set is not modified while it is being accessed, use global scope with a
 distributed lock on the region.

 <p>
 Null values are not included in the result collection.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#values--" title="class or interface in java.util">values</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>,<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a>&gt;</code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a Collection of all the objects cached in this region</dd>
</dl>
</li>
</ul>
<a name="entrySet-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>entrySet</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../org/apache/geode/cache/Region.Entry.html" title="interface in org.apache.geode.cache">Region.Entry</a>&lt;?,?&gt;&gt;&nbsp;entrySet(boolean&nbsp;recursive)</pre>
<div class="block">Returns the <code>Set</code> of <code>Region.Entry</code> objects in this region. If the
 recursive parameter is set to true, this call will recursively collect all the entries in this
 region and its subregions and return them in the Set; if false, it only returns entries
 directly contained in this region.

 <p>
 This <code>Set</code> is unmodifiable. It is backed by this region. Synchronization is not
 necessary to access or iterate over this set. No <code>ConcurrentModificationException</code>s
 will be thrown, but entries may be added or removed to this set while a thread is iterating.
 Iterators are intended to be used by one thread at a time. If a stable "snapshot" view of the
 set is required, then call one of the toArray methods on the set and iterate over the array. If
 you need to lock down the region so this set is not modified while it is being accessed, use
 global scope with a distributed lock.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>recursive</code> - if true, this call recursively collects all the entries in this region and its
        subregions; if false, it only returns the entries directly contained in this region</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a Set of all the cached objects</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/geode/cache/Region.Entry.html" title="interface in org.apache.geode.cache"><code>Region.Entry</code></a></dd>
</dl>
</li>
</ul>
<a name="getCache--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCache</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>
<a href="../../../../org/apache/geode/cache/Cache.html" title="interface in org.apache.geode.cache">Cache</a>&nbsp;getCache()</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">as of 6.5 use <a href="../../../../org/apache/geode/cache/Region.html#getRegionService--"><code>getRegionService()</code></a> instead.</span></div>
<div class="block">Returns the <code>Cache</code> associated with this region.
 <p>
 Does not throw a <code>CacheClosedException</code> if the Cache is closed.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the Cache</dd>
</dl>
</li>
</ul>
<a name="getRegionService--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRegionService</h4>
<pre><a href="../../../../org/apache/geode/cache/RegionService.html" title="interface in org.apache.geode.cache">RegionService</a>&nbsp;getRegionService()</pre>
<div class="block">Returns the <code>cache</code> associated with this region.
 <p>
 Does not throw a <code>CacheClosedException</code> if the cache is closed.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the cache</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>GemFire 6.5</dd>
</dl>
</li>
</ul>
<a name="getUserAttribute--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getUserAttribute</h4>
<pre><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>&nbsp;getUserAttribute()</pre>
<div class="block">Returns the application-defined object associated with this region. GemFire does not use this
 object for any purpose.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the user attribute object or null if it has not been set</dd>
</dl>
</li>
</ul>
<a name="setUserAttribute-java.lang.Object-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setUserAttribute</h4>
<pre>void&nbsp;setUserAttribute(<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>&nbsp;value)</pre>
<div class="block">Sets the application-defined object associated with this region. GemFire does not use this
 object for any purpose.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>value</code> - the application-defined object</dd>
</dl>
</li>
</ul>
<a name="isDestroyed--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isDestroyed</h4>
<pre>boolean&nbsp;isDestroyed()</pre>
<div class="block">Returns whether this region has been destroyed.

 <p>
 Does not throw a <code>RegionDestroyedException</code> if this region has been destroyed.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if this region has been destroyed</dd>
</dl>
</li>
</ul>
<a name="containsValueForKey-java.lang.Object-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>containsValueForKey</h4>
<pre>boolean&nbsp;containsValueForKey(<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>&nbsp;key)</pre>
<div class="block">Returns whether there is a valid (non-null) value present for the specified key. This method is
 equivalent to:

 <pre>
 Entry e = getEntry(key);
 return e != null && e.getValue() != null;
 </pre></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - the key to check for a valid value</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if there is an entry in this region for the specified key and it has a valid value</dd>
</dl>
</li>
</ul>
<a name="containsKey-java.lang.Object-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>containsKey</h4>
<pre>boolean&nbsp;containsKey(<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>&nbsp;key)</pre>
<div class="block">Returns whether the specified key currently exists in this region. This method is equivalent to
 <code>getEntry(key) != null</code>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#containsKey-java.lang.Object-" title="class or interface in java.util">containsKey</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>,<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a>&gt;</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - the key to check for an existing entry</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if there is an entry in this region for the specified key</dd>
</dl>
</li>
</ul>
<a name="getRegionDistributedLock--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRegionDistributedLock</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/Lock.html?is-external=true" title="class or interface in java.util.concurrent.locks">Lock</a>&nbsp;getRegionDistributedLock()
                       throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</a></pre>
<div class="block">For <a href="../../../../org/apache/geode/cache/Scope.html#GLOBAL"><code>Scope.GLOBAL</code></a> regions, gets a <em>distributed</em> lock on this whole region. This
 region lock cannot be acquired until all other caches release both region locks and any entry
 locks they hold in this region. Likewise, new entry locks cannot be acquired until outstanding
 region locks are released. The only place that a region distributed lock is acquired
 automatically is during region creation for distributed <a href="../../../../org/apache/geode/cache/DataPolicy.html#withReplication--"><code>replicated</code></a> regions when they acquire their initial data.
 <p>
 The operations invalidateRegion and destroyRegion do <em>not</em> automatically acquire a
 distributed lock at all, so it is possible for these operations to cause an entry to be
 invalidated or the region to be destroyed even if a distributed lock is held on an entry. If an
 application requires all entry level locks to be released when a region is destroyed or
 invalidated as a whole, then it can call this method explicitly to get a ock on the entire
 region before calling invalidateRegion or destroyRegion.
 <p>
 See <a href="../../../../org/apache/geode/cache/Region.html#getDistributedLock-java.lang.Object-"><code>getDistributedLock(java.lang.Object)</code></a> for the list of operations that automatically acquire
 distributed entry locks for regions with global scope.
 <p>
 Note that Region locks are potentially very expensive to acquire.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a <code>Lock</code> used for acquiring a distributed lock on the entire region</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</a></code> - if the scope of this region is not global</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - If the region is a partitioned region</dd>
</dl>
</li>
</ul>
<a name="getDistributedLock-java.lang.Object-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDistributedLock</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/Lock.html?is-external=true" title="class or interface in java.util.concurrent.locks">Lock</a>&nbsp;getDistributedLock(<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>&nbsp;key)
                 throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</a></pre>
<div class="block">For <a href="../../../../org/apache/geode/cache/Scope.html#GLOBAL"><code>Scope.GLOBAL</code></a> regions, gets a <em>distributed</em> lock on the entry with the
 specified key. Use of this <code>Lock</code> enables an application to synchronize operations
 on entries at a higher level than provided for by <a href="../../../../org/apache/geode/cache/Scope.html#GLOBAL"><code>Scope.GLOBAL</code></a>. This is the same lock
 that GemFire uses internally for operations that modify the cache with global scope, so this
 lock can be used for high-level synchronization with other caches that have this region with
 global scope. For example, if an application needs to get two values out of a region with
 global scope and guarantee that the first value is not modified before the second value is
 retrieved, it can use this lock in the following manner:

 <pre>
 Lock entry1Lock = myRegion.getDistributedLock(key1);
 Lock entry2Lock = myRegion.getDistributedLock(key2);
 entry1Lock.lock();
 entry2Lock.lock();
 try {
   Object val1 = myRegion.get(key1);
   Object val2 = myRegion.get(key2);
   // do something with val1 and val2
 } finally {
   entry2Lock.unlock();
   entry1Lock.unlock();
 }
 </pre>

 You can also get a lock on an entry that does not exist in the local cache. Doing so guarantees
 that no other cache with the same region using global scope or using the same lock will create
 or update that entry while you have the lock.

 When a region has global scope, the following operations automatically acquire a distributed
 lock on an entry: <code>create</code>, <code>put</code>, <code>destroy</code>,
 <code>invalidate</code>, and <code>get</code> that causes a loader to be invoked.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a <code>Lock</code> used for acquiring a distributed lock on an entry</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</a></code> - if the scope of this region is not global</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if key is null</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - If the region is a partitioned region</dd>
</dl>
</li>
</ul>
<a name="writeToDisk--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>writeToDisk</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>
void&nbsp;writeToDisk()</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">use <a href="../../../../org/apache/geode/cache/DiskStore.html#flush--"><code>DiskStore.flush()</code></a> instead.</span></div>
<div class="block">Initiates a flush to asynchronously write unwritten region entries to disk.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</a></code> - If this region is not configured to write to disk</dd>
<dd><code><a href="../../../../org/apache/geode/cache/DiskAccessException.html" title="class in org.apache.geode.cache">DiskAccessException</a></code> - If problems are encounter while writing to disk</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - If the region is a partitioned region</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>GemFire 3.2</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/geode/cache/AttributesFactory.html#setPersistBackup-boolean-"><code>AttributesFactory.setPersistBackup(boolean)</code></a></dd>
</dl>
</li>
</ul>
<a name="existsValue-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>existsValue</h4>
<pre>boolean&nbsp;existsValue(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;queryPredicate)
             throws <a href="../../../../org/apache/geode/cache/query/FunctionDomainException.html" title="class in org.apache.geode.cache.query">FunctionDomainException</a>,
                    <a href="../../../../org/apache/geode/cache/query/TypeMismatchException.html" title="class in org.apache.geode.cache.query">TypeMismatchException</a>,
                    <a href="../../../../org/apache/geode/cache/query/NameResolutionException.html" title="class in org.apache.geode.cache.query">NameResolutionException</a>,
                    <a href="../../../../org/apache/geode/cache/query/QueryInvocationTargetException.html" title="class in org.apache.geode.cache.query">QueryInvocationTargetException</a></pre>
<div class="block">Determines whether there is a value in this <code>Region</code> that matches the given
 <code>queryPredicate</code>. Filters the values of this region using the predicate given as a
 string with the syntax of the <code>WHERE</code> clause of the query language. The predefined
 variable <code>this</code> may be used inside the predicate to denote the current value being
 filtered.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>queryPredicate</code> - A query language boolean query predicate.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if there is a value in region that matches the predicate, otherwise
         <code>false</code>.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../org/apache/geode/cache/query/QueryInvalidException.html" title="class in org.apache.geode.cache.query">QueryInvalidException</a></code> - If predicate does not correspond to valid query language syntax.</dd>
<dd><code><a href="../../../../org/apache/geode/cache/query/FunctionDomainException.html" title="class in org.apache.geode.cache.query">FunctionDomainException</a></code></dd>
<dd><code><a href="../../../../org/apache/geode/cache/query/TypeMismatchException.html" title="class in org.apache.geode.cache.query">TypeMismatchException</a></code></dd>
<dd><code><a href="../../../../org/apache/geode/cache/query/NameResolutionException.html" title="class in org.apache.geode.cache.query">NameResolutionException</a></code></dd>
<dd><code><a href="../../../../org/apache/geode/cache/query/QueryInvocationTargetException.html" title="class in org.apache.geode.cache.query">QueryInvocationTargetException</a></code></dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>GemFire 4.0</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/geode/cache/query/QueryService.html" title="interface in org.apache.geode.cache.query"><code>QueryService</code></a></dd>
</dl>
</li>
</ul>
<a name="query-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>query</h4>
<pre>&lt;E&gt;&nbsp;<a href="../../../../org/apache/geode/cache/query/SelectResults.html" title="interface in org.apache.geode.cache.query">SelectResults</a>&lt;E&gt;&nbsp;query(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;queryPredicate)
                    throws <a href="../../../../org/apache/geode/cache/query/FunctionDomainException.html" title="class in org.apache.geode.cache.query">FunctionDomainException</a>,
                           <a href="../../../../org/apache/geode/cache/query/TypeMismatchException.html" title="class in org.apache.geode.cache.query">TypeMismatchException</a>,
                           <a href="../../../../org/apache/geode/cache/query/NameResolutionException.html" title="class in org.apache.geode.cache.query">NameResolutionException</a>,
                           <a href="../../../../org/apache/geode/cache/query/QueryInvocationTargetException.html" title="class in org.apache.geode.cache.query">QueryInvocationTargetException</a></pre>
<div class="block">Filters the values of this region using the <code>queryPredicate</code>. The queryPredicate
 should follow the syntax of query WHERE clause.

 When executed from a client, this method always runs on the server. However application should
 use QueryService to execute queries.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>queryPredicate</code> - A query language boolean query predicate.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A <code>SelectResults</code> containing the values of this <code>Region</code> that
         match the <code>predicate</code>.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../org/apache/geode/cache/query/QueryInvalidException.html" title="class in org.apache.geode.cache.query">QueryInvalidException</a></code> - If exception occurs during query compilation or processing.</dd>
<dd><code><a href="../../../../org/apache/geode/cache/query/FunctionDomainException.html" title="class in org.apache.geode.cache.query">FunctionDomainException</a></code></dd>
<dd><code><a href="../../../../org/apache/geode/cache/query/TypeMismatchException.html" title="class in org.apache.geode.cache.query">TypeMismatchException</a></code></dd>
<dd><code><a href="../../../../org/apache/geode/cache/query/NameResolutionException.html" title="class in org.apache.geode.cache.query">NameResolutionException</a></code></dd>
<dd><code><a href="../../../../org/apache/geode/cache/query/QueryInvocationTargetException.html" title="class in org.apache.geode.cache.query">QueryInvocationTargetException</a></code></dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>GemFire 4.0</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/geode/cache/client/Pool.html#getQueryService--"><code>Pool.getQueryService()</code></a>, 
<a href="../../../../org/apache/geode/cache/RegionService.html#getQueryService--"><code>RegionService.getQueryService()</code></a>, 
<a href="../../../../org/apache/geode/cache/query/QueryService.html" title="interface in org.apache.geode.cache.query"><code>QueryService</code></a></dd>
</dl>
</li>
</ul>
<a name="selectValue-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>selectValue</h4>
<pre><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>&nbsp;selectValue(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;queryPredicate)
            throws <a href="../../../../org/apache/geode/cache/query/FunctionDomainException.html" title="class in org.apache.geode.cache.query">FunctionDomainException</a>,
                   <a href="../../../../org/apache/geode/cache/query/TypeMismatchException.html" title="class in org.apache.geode.cache.query">TypeMismatchException</a>,
                   <a href="../../../../org/apache/geode/cache/query/NameResolutionException.html" title="class in org.apache.geode.cache.query">NameResolutionException</a>,
                   <a href="../../../../org/apache/geode/cache/query/QueryInvocationTargetException.html" title="class in org.apache.geode.cache.query">QueryInvocationTargetException</a></pre>
<div class="block">Selects the single value in this <code>Region</code> that matches the given query
 <code>predicate</code>. Filters the values of this region using the predicate given as a string
 with the syntax of the where clause of the query language. The predefined variable
 <code>this</code> may be used inside the predicate to denote the element currently being
 filtered.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>queryPredicate</code> - A query language boolean query predicate.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The single element that evaluates to true for the predicate. If no value in this
         <code>Region</code> matches the predicate, <code>null</code> is returned.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../org/apache/geode/cache/query/QueryInvalidException.html" title="class in org.apache.geode.cache.query">QueryInvalidException</a></code> - If predicate does not correspond to valid query language syntax.</dd>
<dd><code><a href="../../../../org/apache/geode/cache/query/FunctionDomainException.html" title="class in org.apache.geode.cache.query">FunctionDomainException</a></code> - If more than one element evaluates to true.</dd>
<dd><code><a href="../../../../org/apache/geode/cache/query/TypeMismatchException.html" title="class in org.apache.geode.cache.query">TypeMismatchException</a></code></dd>
<dd><code><a href="../../../../org/apache/geode/cache/query/NameResolutionException.html" title="class in org.apache.geode.cache.query">NameResolutionException</a></code></dd>
<dd><code><a href="../../../../org/apache/geode/cache/query/QueryInvocationTargetException.html" title="class in org.apache.geode.cache.query">QueryInvocationTargetException</a></code></dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>GemFire 4.0</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/geode/cache/query/QueryService.html" title="interface in org.apache.geode.cache.query"><code>QueryService</code></a></dd>
</dl>
</li>
</ul>
<a name="forceRolling--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>forceRolling</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>
void&nbsp;forceRolling()</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">use <a href="../../../../org/apache/geode/cache/DiskStore.html#forceRoll--"><code>DiskStore.forceRoll()</code></a> instead.</span></div>
<div class="block">Asks the region to start writing to a new oplog (if persistence/overflow is turned on). The old
 one will be asynchronously compressed if compaction is set to true. If the region is not
 persistent/overflow no change in the region will be reflected. The new log will be created in
 the next available directory with free space. If there is no directory with free space
 available and compaction is set to false, then a <code>DiskAccessException</code> saying that
 the disk is full will be thrown. If compaction is true, the application will wait for the other
 oplogs to be compressed and more space to be created.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>GemFire 5.1</dd>
</dl>
</li>
</ul>
<a name="becomeLockGrantor--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>becomeLockGrantor</h4>
<pre>void&nbsp;becomeLockGrantor()</pre>
<div class="block">Specifies this member to become the grantor for this region's lock service. The grantor will be
 the lock authority which is responsible for handling all lock requests for this service. Other
 members will request locks from this member. Locking for this member will be optimal as it will
 not require messaging to acquire a given lock.
 <p>
 Calls to this method will block until grantor authority has been transferred to this member.
 <p>
 If another member later calls <code>becomeLockGrantor</code>, that member will transfer grantor
 authority from this member to itself. Multiple calls to this operation will have no effect
 unless another member has transferred grantor authority, in which case, this member will
 transfer grantor authority back to itself.
 <p>
 This region's scope must be <code>Scope.GLOBAL</code> to become a lock grantor.
 <p>
 This operation should not be invoked repeatedly in an application. It is possible to create a
 lock service and have two or more members endlessly calling becomeLockGrantor to transfer
 grantorship back and forth.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</a></code> - if scope is not GLOBAL</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - If the region is a partitioned region</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>GemFire 4.0</dd>
</dl>
</li>
</ul>
<a name="localClear--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>localClear</h4>
<pre>void&nbsp;localClear()</pre>
<div class="block">Removes all local entries from this region. This is not a distributed operation. This operation
 is not allowed on replicated regions.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - If the region is a replicated region</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - If the region is a partitioned region</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>GemFire 5.0</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/geode/cache/CacheListener.html#afterRegionClear-org.apache.geode.cache.RegionEvent-"><code>CacheListener.afterRegionClear(org.apache.geode.cache.RegionEvent&lt;K, V&gt;)</code></a></dd>
</dl>
</li>
</ul>
<a name="clear--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>clear</h4>
<pre>void&nbsp;clear()</pre>
<div class="block">Removes all entries from this region. Clear will be distributed to other caches if the scope is
 not <code>Scope.LOCAL</code>.
 <p></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#clear--" title="class or interface in java.util">clear</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>,<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a>&gt;</code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - If the region is a partitioned region</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>GemFire 5.0</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#clear--" title="class or interface in java.util"><code>Map.clear()</code></a>, 
<a href="../../../../org/apache/geode/cache/CacheListener.html#afterRegionClear-org.apache.geode.cache.RegionEvent-"><code>CacheListener.afterRegionClear(org.apache.geode.cache.RegionEvent&lt;K, V&gt;)</code></a>, 
<a href="../../../../org/apache/geode/cache/CacheWriter.html#beforeRegionClear-org.apache.geode.cache.RegionEvent-"><code>CacheWriter.beforeRegionClear(org.apache.geode.cache.RegionEvent&lt;K, V&gt;)</code></a></dd>
</dl>
</li>
</ul>
<a name="containsValue-java.lang.Object-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>containsValue</h4>
<pre>boolean&nbsp;containsValue(<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>&nbsp;value)</pre>
<div class="block">Returns true if this region maps one or more keys to the specified value. More formally,
 returns true if and only if this region contains at least one entry to a value v such that
 (value==null ? v==null : value.equals(v)). This operation is not distributed and only the
 current region will be checked for this value.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#containsValue-java.lang.Object-" title="class or interface in java.util">containsValue</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>,<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a>&gt;</code></dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>GemFire 5.0</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#containsValue-java.lang.Object-" title="class or interface in java.util"><code>Map.containsValue(Object)</code></a></dd>
</dl>
</li>
</ul>
<a name="entrySet--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>entrySet</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.Entry.html?is-external=true" title="class or interface in java.util">Map.Entry</a>&lt;<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>,<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a>&gt;&gt;&nbsp;entrySet()</pre>
<div class="block">Returns the <code>Set</code> of <code>Region.Entry</code> objects in this region.

 <p>
 This <code>Set</code> is unmodifiable. It is backed by this region. Synchronization is not
 necessary to access or iterate over this set. No <code>ConcurrentModificationException</code>s
 will be thrown, but entries may be added or removed to this set while a thread is iterating.
 Iterators are intended to be used by one thread at a time. If a stable "snapshot" view of the
 set is required, then call one of the toArray methods on the set and iterate over the array. If
 you need to lock down the region so this set is not modified while it is being accessed, use
 global scope with a distributed lock.

 A remove called on an entry via the iterator will result in an UnsupportedOperationException

 The Region.Entry obtained via the iterator is backed by the region. If a setValue on that entry
 is called, it will be similar in effect as calling a put on that key.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#entrySet--" title="class or interface in java.util">entrySet</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>,<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a>&gt;</code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a Set of all the Region.Entry instances in this region locally</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>GemFire 5.0</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#entrySet--" title="class or interface in java.util"><code>Map.entrySet()</code></a></dd>
</dl>
</li>
</ul>
<a name="isEmpty--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isEmpty</h4>
<pre>boolean&nbsp;isEmpty()</pre>
<div class="block">Returns true if this region contains no entries.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#isEmpty--" title="class or interface in java.util">isEmpty</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>,<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a>&gt;</code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if this region contains no entries.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>GemFire 5.0</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#isEmpty--" title="class or interface in java.util"><code>Map.isEmpty()</code></a></dd>
</dl>
</li>
</ul>
<a name="putAll-java.util.Map-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>putAll</h4>
<pre>void&nbsp;putAll(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;? extends <a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>,? extends <a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a>&gt;&nbsp;map)</pre>
<div class="block">Copies all of the entries from the specified map to this region. The effect of this call is
 equivalent to that of calling <a href="../../../../org/apache/geode/cache/Region.html#put-K-V-"><code>put(Object, Object)</code></a> on this region once for each entry
 in the specified map. This operation will be distributed to other caches if the scope is not
 <code>Scope.LOCAL</code>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#putAll-java.util.Map-" title="class or interface in java.util">putAll</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>,<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a>&gt;</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>map</code> - the key/value pairs to put in this region.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../org/apache/geode/cache/LowMemoryException.html" title="class in org.apache.geode.cache">LowMemoryException</a></code> - if a low memory condition is detected.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>GemFire 5.0</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#putAll-java.util.Map-" title="class or interface in java.util"><code>Map.putAll(Map map)</code></a></dd>
</dl>
</li>
</ul>
<a name="putAll-java.util.Map-java.lang.Object-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>putAll</h4>
<pre>void&nbsp;putAll(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;? extends <a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>,? extends <a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a>&gt;&nbsp;map,
            <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>&nbsp;aCallbackArgument)</pre>
<div class="block">Copies all of the entries from the specified map to this region. The effect of this call is
 equivalent to that of calling <a href="../../../../org/apache/geode/cache/Region.html#put-K-V-java.lang.Object-"><code>put(Object, Object, Object)</code></a> on this region once for each
 entry in the specified map. This operation will be distributed to other caches if the scope is
 not <code>Scope.LOCAL</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>map</code> - the key/value pairs to put in this region.</dd>
<dd><code>aCallbackArgument</code> - a user-defined parameter to pass to callback events triggered by this
        method. May be null. Must be serializable if this operation is distributed.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../org/apache/geode/cache/LowMemoryException.html" title="class in org.apache.geode.cache">LowMemoryException</a></code> - if a low memory condition is detected.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>GemFire 8.1</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#putAll-java.util.Map-" title="class or interface in java.util"><code>Map.putAll(Map map)</code></a></dd>
</dl>
</li>
</ul>
<a name="removeAll-java.util.Collection-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>removeAll</h4>
<pre>void&nbsp;removeAll(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;? extends <a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>&gt;&nbsp;keys)</pre>
<div class="block">Removes all of the entries for the specified keys from this region. The effect of this call is
 equivalent to that of calling <a href="../../../../org/apache/geode/cache/Region.html#destroy-java.lang.Object-"><code>destroy(Object)</code></a> on this region once for each key in the
 specified collection. If an entry does not exist that key is skipped; EntryNotFoundException is
 not thrown. This operation will be distributed to other caches if the scope is not
 <code>Scope.LOCAL</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>keys</code> - the keys to remove from this region.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>GemFire 8.1</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/geode/cache/Region.html#destroy-java.lang.Object-"><code>destroy(Object)</code></a></dd>
</dl>
</li>
</ul>
<a name="removeAll-java.util.Collection-java.lang.Object-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>removeAll</h4>
<pre>void&nbsp;removeAll(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;? extends <a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>&gt;&nbsp;keys,
               <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>&nbsp;aCallbackArgument)</pre>
<div class="block">Removes all of the entries for the specified keys from this region. The effect of this call is
 equivalent to that of calling <a href="../../../../org/apache/geode/cache/Region.html#destroy-java.lang.Object-java.lang.Object-"><code>destroy(Object, Object)</code></a> on this region once for each key
 in the specified collection. If an entry does not exist that key is skipped;
 EntryNotFoundException is not thrown. This operation will be distributed to other caches if the
 scope is not <code>Scope.LOCAL</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>keys</code> - the keys to remove from this region.</dd>
<dd><code>aCallbackArgument</code> - a user-defined parameter to pass to callback events triggered by this
        method. May be null. Must be serializable if this operation is distributed.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>GemFire 8.1</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/geode/cache/Region.html#destroy-java.lang.Object-java.lang.Object-"><code>destroy(Object, Object)</code></a></dd>
</dl>
</li>
</ul>
<a name="getAll-java.util.Collection-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAll</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>,<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a>&gt;&nbsp;getAll(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;?&gt;&nbsp;keys)</pre>
<div class="block">Gets values for all the keys in the input Collection. If a given key does not exist in the
 region then that key's value in the returned map will be <code>null</code>.
 <p>
 Note that the keys collection should extend K since a load may be done and the key in that case
 will be stored in the region. The keys parameter was not changed to extend K for backwards
 compatibility.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>keys</code> - A Collection of keys</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A Map of values for the input keys</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>GemFire 5.7</dd>
</dl>
</li>
</ul>
<a name="getAll-java.util.Collection-java.lang.Object-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAll</h4>
<pre>&lt;T extends <a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;T,<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a>&gt;&nbsp;getAll(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;T&gt;&nbsp;keys,
                              <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>&nbsp;aCallbackArgument)</pre>
<div class="block">Gets and returns values for all the keys in the input Collection. If a given key does not exist
 in the region then that key's value in the returned map will be <code>null</code>.</div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>T</code> - the type of the keys passed to getAll</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>keys</code> - A Collection of keys</dd>
<dd><code>aCallbackArgument</code> - an argument passed into the CacheLoader if a loader is used. This same
        argument will also be subsequently passed to a CacheWriter if the loader returns a
        non-null value to be placed in the cache. Modifications to this argument made in the
        CacheLoader will be visible to the CacheWriter even if the loader and the writer are
        installed in different cache VMs. It will also be passed to any other callback events
        triggered by this method. May be null. Must be serializable if this operation is
        distributed.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A Map of values for the input keys</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>GemFire 8.1</dd>
</dl>
</li>
</ul>
<a name="remove-java.lang.Object-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>remove</h4>
<pre><a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a>&nbsp;remove(<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>&nbsp;key)</pre>
<div class="block">Removes the entry with the specified key. The operation removes not only the value but also the
 key and entry from this region. Remove will be distributed to other caches if the scope is not
 <code>Scope.LOCAL</code>.
 <p>
 Does not update any <code>CacheStatistics</code>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#remove-java.lang.Object-" title="class or interface in java.util">remove</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>,<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a>&gt;</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - the key of the entry</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>null</code> is returned if an entry for key does not exist otherwise the value
         that was stored locally for the removed entry is returned. If the entry was "invalid"
         then <code>null</code> is returned. In some cases <code>null</code> may be returned
         even if a previous value exists. If the region is a client proxy then <code>null</code>
         is returned. If the region is off-heap and the old value was stored in off-heap memory
         then <code>null</code> is returned. If the region is partitioned and the remove is done
         on a non-primary then <code>null</code> is returned. If the value is not currently
         stored in memory but is on disk and if the region does not have cqs then
         <code>null</code> is returned.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if key is null</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if key does not meet serializability requirements</dd>
<dd><code><a href="../../../../org/apache/geode/distributed/LeaseExpiredException.html" title="class in org.apache.geode.distributed">LeaseExpiredException</a></code> - if lease expired on distributed lock
         for Scope.GLOBAL</dd>
<dd><code><a href="../../../../org/apache/geode/cache/TimeoutException.html" title="class in org.apache.geode.cache">TimeoutException</a></code> - if timed out getting distributed lock for Scope.GLOBAL</dd>
<dd><code><a href="../../../../org/apache/geode/cache/CacheWriterException.html" title="class in org.apache.geode.cache">CacheWriterException</a></code> - if a CacheWriter aborts the operation</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>GemFire 5.0</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/geode/cache/Region.html#destroy-java.lang.Object-"><code>destroy(Object)</code></a>, 
<a href="../../../../org/apache/geode/cache/CacheListener.html#afterDestroy-org.apache.geode.cache.EntryEvent-"><code>CacheListener.afterDestroy(org.apache.geode.cache.EntryEvent&lt;K, V&gt;)</code></a>, 
<a href="../../../../org/apache/geode/cache/CacheWriter.html#beforeDestroy-org.apache.geode.cache.EntryEvent-"><code>CacheWriter.beforeDestroy(org.apache.geode.cache.EntryEvent&lt;K, V&gt;)</code></a>, 
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#remove-java.lang.Object-" title="class or interface in java.util"><code>Map.remove(Object)</code></a></dd>
</dl>
</li>
</ul>
<a name="size--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>size</h4>
<pre>int&nbsp;size()</pre>
<div class="block">Returns the number of entries present in this region.

 For <a href="../../../../org/apache/geode/cache/DataPolicy.html#PARTITION"><code>DataPolicy.PARTITION</code></a>, this is a distributed operation that returns the number of
 entries present in entire region.

 For all other types of regions, it returns the number of entries present locally, and it is not
 a distributed operation.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#size--" title="class or interface in java.util">size</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>,<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a>&gt;</code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the number of entries present in this region</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>GemFire 5.0</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#size--" title="class or interface in java.util"><code>Map.size()</code></a></dd>
</dl>
</li>
</ul>
<a name="equals-java.lang.Object-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>equals</h4>
<pre>boolean&nbsp;equals(<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>&nbsp;other)</pre>
<div class="block">Compares the specified object with this region for equality. Regions are only equal to
 themselves (identity based) so <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"><code>Object.equals(java.lang.Object)</code></a> is used. Note that some other class that
 implements <code>Map</code> may say that it is equal to an instance of Region (since Region
 implements Map) even though Region will never say that it is equal to that instance.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.util">equals</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>,<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><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></code>&nbsp;in class&nbsp;<code><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></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>other</code> - Object object to be compared against the this</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><tt>true</tt> if the specified object is equal to this region.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><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"><code>Object.equals(java.lang.Object)</code></a></dd>
</dl>
</li>
</ul>
<a name="hashCode--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hashCode</h4>
<pre>int&nbsp;hashCode()</pre>
<div class="block">Returns the hash code value for this region. The hash code of a region is based on identity and
 uses <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"><code>Object.hashCode()</code></a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#hashCode--" title="class or interface in java.util">hashCode</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>,<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><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></code>&nbsp;in class&nbsp;<code><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></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the hash code value for this region.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><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"><code>Object.hashCode()</code></a></dd>
</dl>
</li>
</ul>
<a name="registerInterest-java.lang.Object-">
<!--   -->
</a><a name="registerInterest-K-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>registerInterest</h4>
<pre>void&nbsp;registerInterest(<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>&nbsp;key)</pre>
<div class="block">Sends a request to the CacheServer to register interest in a key for this client. Updates to
 this key by other clients will be pushed to this client by the CacheServer. This method is
 currently supported only on clients in a client server topology. This key is first locally
 cleared from the client and current value for this key is inserted into the local cache before
 this call returns.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - The key on which to register interest.

        <p>
        ###Deprecated behavior###
        </p>
        <p>
        The following <code>List</code> and
        'ALL_KEYS' behavior is now deprecated. As an alternative, please use
        </p>
        <p>
        <a href="../../../../org/apache/geode/cache/Region.html#registerInterestForKeys-java.lang.Iterable-org.apache.geode.cache.InterestResultPolicy-"><code>registerInterestForKeys(Iterable, InterestResultPolicy)</code></a>
        </p>
        <p>
        <a href="../../../../org/apache/geode/cache/Region.html#registerInterestForAllKeys-org.apache.geode.cache.InterestResultPolicy-"><code>registerInterestForAllKeys(InterestResultPolicy)</code></a>
        </p>

        <p>
        If the key is a <code>List</code>, then all the keys in the
        <code>List</code> will be registered. The key can also be the special token 'ALL_KEYS',
        which will register interest in all keys in the region. In effect, this will cause an
        update to any key in this region in the CacheServer to be pushed to the client.
        </p>

        <p>
        <i>Using 'ALL_KEYS' is the same as calling <a href="../../../../org/apache/geode/cache/Region.html#registerInterestRegex-java.lang.String-"><code>registerInterestRegex(String)</code></a> with
        ".*" as the argument. This means that all keys of any type are pushed to the client and
        inserted into the local cache.</i>
        </p>
        ###End of deprecation###

        <p>
        This method uses the default <code>InterestResultPolicy</code>.
        </p>

        <p>
        If you locally-destroy a key and your region has concurrency-checks-enabled turned off
        you will not receive invalidation events from your interest subscription for that key.
        When concurrency-checks-enabled is turned on GemFire will accept invalidation and
        deliver these events to your client cache.
        </p></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - if the region is not configured with a pool name.</dd>
<dd><code><a href="../../../../org/apache/geode/cache/client/SubscriptionNotEnabledException.html" title="class in org.apache.geode.cache.client">SubscriptionNotEnabledException</a></code> - if the region's pool does not have subscriptions
         enabled.</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - if the region is a replicate with distributed scope.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>GemFire 4.2</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/geode/cache/InterestResultPolicy.html" title="class in org.apache.geode.cache"><code>InterestResultPolicy</code></a></dd>
</dl>
</li>
</ul>
<a name="registerInterest-java.lang.Object-org.apache.geode.cache.InterestResultPolicy-">
<!--   -->
</a><a name="registerInterest-K-org.apache.geode.cache.InterestResultPolicy-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>registerInterest</h4>
<pre>void&nbsp;registerInterest(<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>&nbsp;key,
                      <a href="../../../../org/apache/geode/cache/InterestResultPolicy.html" title="class in org.apache.geode.cache">InterestResultPolicy</a>&nbsp;policy)</pre>
<div class="block">Sends a request to the CacheServer to register interest in a key for this client. Updates to
 this key by other clients will be pushed to this client by the CacheServer. This method is
 currently supported only on clients in a client server topology. This key is first locally
 cleared from the client and current value for this key is inserted into the local cache before
 this call returns. (if requested).

 <p>
 If you locally-destroy a key and your region has concurrency-checks-enabled turned off you will
 not receive invalidation events from your interest subscription for that key. When
 concurrency-checks-enabled is turned on GemFire will accept invalidation and deliver these
 events to your client cache.
 </p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - The key on which to register interest.

        <p>
        ###Deprecated behavior###
        </p>
        <p>
        The following <code>List</code> and
        'ALL_KEYS' behavior is now deprecated. As an alternative, please use
        </p>
        <p>
        <a href="../../../../org/apache/geode/cache/Region.html#registerInterestForKeys-java.lang.Iterable-org.apache.geode.cache.InterestResultPolicy-"><code>registerInterestForKeys(Iterable, InterestResultPolicy)</code></a>
        </p>
        <p>
        <a href="../../../../org/apache/geode/cache/Region.html#registerInterestForAllKeys-org.apache.geode.cache.InterestResultPolicy-"><code>registerInterestForAllKeys(InterestResultPolicy)</code></a>
        </p>

        <p>
        If the key is a <code>List</code>, then all the keys in the
        <code>List</code> will be registered. The key can also be the special token 'ALL_KEYS',
        which will register interest in all keys in the region. In effect, this will cause an
        update to any key in this region in the CacheServer to be pushed to the client.
        </p>

        <p>
        <i>Using 'ALL_KEYS' is the same as calling <a href="../../../../org/apache/geode/cache/Region.html#registerInterestRegex-java.lang.String-"><code>registerInterestRegex(String)</code></a> with
        ".*" as the argument. This means that all keys of any type are pushed to the client and
        inserted into the local cache.</i>
        </p>
        ###End of deprecation###</dd>
<dd><code>policy</code> - The interest result policy. This can be one of:
        <ul>
        <li>InterestResultPolicy.NONE - does not initialize the local cache</li>
        <li>InterestResultPolicy.KEYS - initializes the local cache with the keys satisfying the
        request</li>
        <li>InterestResultPolicy.KEYS_VALUES - initializes the local cache with the keys and
        current values satisfying the request</li>
        </ul></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - if the region is not configured with a pool name.</dd>
<dd><code><a href="../../../../org/apache/geode/cache/client/SubscriptionNotEnabledException.html" title="class in org.apache.geode.cache.client">SubscriptionNotEnabledException</a></code> - if the region's pool does not have subcriptions
         enabled.</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - if the region is a replicate with distributed scope.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>GemFire 4.2.3</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/geode/cache/InterestResultPolicy.html" title="class in org.apache.geode.cache"><code>InterestResultPolicy</code></a></dd>
</dl>
</li>
</ul>
<a name="registerInterestForAllKeys--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>registerInterestForAllKeys</h4>
<pre>default&nbsp;void&nbsp;registerInterestForAllKeys()</pre>
<div class="block">Sends a request to the CacheServer to register interest in all keys for this client. Updates to
 any key by other clients will be pushed to this client by the CacheServer. This method is
 currently supported only on clients in a client server topology. The keys are first locally
 cleared from the client and current value for the keys are inserted into the local cache before
 this call returns.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - if the region is not configured with a pool name.</dd>
<dd><code><a href="../../../../org/apache/geode/cache/client/SubscriptionNotEnabledException.html" title="class in org.apache.geode.cache.client">SubscriptionNotEnabledException</a></code> - if the region's pool does not have subscriptions
         enabled.</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - if the region is a replicate with distributed scope.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>Geode 1.5</dd>
</dl>
</li>
</ul>
<a name="registerInterestForAllKeys-org.apache.geode.cache.InterestResultPolicy-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>registerInterestForAllKeys</h4>
<pre>default&nbsp;void&nbsp;registerInterestForAllKeys(<a href="../../../../org/apache/geode/cache/InterestResultPolicy.html" title="class in org.apache.geode.cache">InterestResultPolicy</a>&nbsp;policy)</pre>
<div class="block">Sends a request to the CacheServer to register interest in for all keys for this client.
 Updates to any key by other clients will be pushed to this client by the CacheServer. This
 method is currently supported only on clients in a client server topology. The keys are first
 locally cleared from the client and current value for the keys are inserted into the local
 cache before this call returns. (if requested).

 <p>
 If you locally-destroy a key and your region has concurrency-checks-enabled turned off you will
 not receive invalidation events from your interest subscription for that key. When
 concurrency-checks-enabled is turned on GemFire will accept invalidation and deliver these
 events to your client cache.
 </p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>policy</code> - The interest result policy. This can be one of:
        <ul>
        <li>InterestResultPolicy.NONE - does not initialize the local cache</li>
        <li>InterestResultPolicy.KEYS - initializes the local cache with the keys satisfying the
        request</li>
        <li>InterestResultPolicy.KEYS_VALUES - initializes the local cache with the keys and
        current values satisfying the request</li>
        </ul></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - if the region is not configured with a pool name.</dd>
<dd><code><a href="../../../../org/apache/geode/cache/client/SubscriptionNotEnabledException.html" title="class in org.apache.geode.cache.client">SubscriptionNotEnabledException</a></code> - if the region's pool does not have subcriptions
         enabled.</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - if the region is a replicate with distributed scope.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>Geode 1.5</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/geode/cache/InterestResultPolicy.html" title="class in org.apache.geode.cache"><code>InterestResultPolicy</code></a></dd>
</dl>
</li>
</ul>
<a name="registerInterestForAllKeys-org.apache.geode.cache.InterestResultPolicy-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>registerInterestForAllKeys</h4>
<pre>default&nbsp;void&nbsp;registerInterestForAllKeys(<a href="../../../../org/apache/geode/cache/InterestResultPolicy.html" title="class in org.apache.geode.cache">InterestResultPolicy</a>&nbsp;policy,
                                        boolean&nbsp;isDurable)</pre>
<div class="block">Sends a request to the CacheServer to register interest in all keys for this client. Updates to
 any key by other clients will be pushed to this client by the CacheServer. This method is
 currently supported only on clients in a client server topology. The keys are first locally
 cleared from the client and the current value for the keys are inserted into the local cache
 before this call returns (if requested).</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>policy</code> - The interest result policy. This can be one of:
        <ul>
        <li>InterestResultPolicy.NONE - does not initialize the local cache</li>
        <li>InterestResultPolicy.KEYS - initializes the local cache with the keys satisfying the
        request</li>
        <li>InterestResultPolicy.KEYS_VALUES - initializes the local cache with the keys and
        current values satisfying the request</li>
        </ul></dd>
<dd><code>isDurable</code> - true if the register interest is durable</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - if the region is not configured with a pool name.</dd>
<dd><code><a href="../../../../org/apache/geode/cache/client/SubscriptionNotEnabledException.html" title="class in org.apache.geode.cache.client">SubscriptionNotEnabledException</a></code> - if the region's pool does not have subscriptions
         enabled.</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - if the region is a replicate with distributed scope.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>Geode 1.5</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/geode/cache/InterestResultPolicy.html" title="class in org.apache.geode.cache"><code>InterestResultPolicy</code></a></dd>
</dl>
</li>
</ul>
<a name="registerInterestForAllKeys-org.apache.geode.cache.InterestResultPolicy-boolean-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>registerInterestForAllKeys</h4>
<pre>default&nbsp;void&nbsp;registerInterestForAllKeys(<a href="../../../../org/apache/geode/cache/InterestResultPolicy.html" title="class in org.apache.geode.cache">InterestResultPolicy</a>&nbsp;policy,
                                        boolean&nbsp;isDurable,
                                        boolean&nbsp;receiveValues)</pre>
<div class="block">Sends a request to the CacheServer to register interest in all keys for this client. Updates to
 any key by other clients will be pushed to this client by the CacheServer. This method is
 currently supported only on clients in a client server topology. The keys are first locally
 cleared from the client and the current value for the keys are inserted into the local cache
 before this call returns (if requested).

 <p>
 If you locally-destroy a key and your region has concurrency-checks-enabled turned off you will
 not receive invalidation events from your interest subscription for that key. When
 concurrency-checks-enabled is turned on GemFire will accept invalidation and deliver these
 events to your client cache.
 </p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>policy</code> - The interest result policy. This can be one of:
        <ul>
        <li>InterestResultPolicy.NONE - does not initialize the local cache</li>
        <li>InterestResultPolicy.KEYS - initializes the local cache with the keys satisfying the
        request</li>
        <li>InterestResultPolicy.KEYS_VALUES - initializes the local cache with the keys and
        current values satisfying the request</li>
        </ul></dd>
<dd><code>isDurable</code> - true if the register interest is durable</dd>
<dd><code>receiveValues</code> - defaults to true. set to false to receive create or update events as
        invalidates similar to notify-by-subscription false.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - if the region is not configured with a pool name.</dd>
<dd><code><a href="../../../../org/apache/geode/cache/client/SubscriptionNotEnabledException.html" title="class in org.apache.geode.cache.client">SubscriptionNotEnabledException</a></code> - if the region's pool does not have subscriptions
         enabled.</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - if the region is a replicate with distributed scope.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>Geode 1.5</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/geode/cache/InterestResultPolicy.html" title="class in org.apache.geode.cache"><code>InterestResultPolicy</code></a></dd>
</dl>
</li>
</ul>
<a name="registerInterestForKeys-java.lang.Iterable-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>registerInterestForKeys</h4>
<pre>default&nbsp;void&nbsp;registerInterestForKeys(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a>&lt;<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>&gt;&nbsp;iterable)</pre>
<div class="block">Sends a request to the CacheServer to register interest for all key in the iterable for this
 client. Updates to any of the keys in the iterable by other clients will be pushed to this
 client by the CacheServer. This method is currently supported only on clients in a client
 server topology. The keys are first locally cleared from the client and current value for the
 keys are inserted into the local cache before this call returns. (if requested).

 <p>
 If you locally-destroy a key and your region has concurrency-checks-enabled turned off you will
 not receive invalidation events from your interest subscription for that key. When
 concurrency-checks-enabled is turned on GemFire will accept invalidation and deliver these
 events to your client cache.
 </p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>iterable</code> - The <code>Iterable</code> of keys on which to register interest.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - if the region is not configured with a pool name.</dd>
<dd><code><a href="../../../../org/apache/geode/cache/client/SubscriptionNotEnabledException.html" title="class in org.apache.geode.cache.client">SubscriptionNotEnabledException</a></code> - if the region's pool does not have subcriptions
         enabled.</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - if the region is a replicate with distributed scope.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>Geode 1.5</dd>
</dl>
</li>
</ul>
<a name="registerInterestForKeys-java.lang.Iterable-org.apache.geode.cache.InterestResultPolicy-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>registerInterestForKeys</h4>
<pre>default&nbsp;void&nbsp;registerInterestForKeys(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a>&lt;<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>&gt;&nbsp;iterable,
                                     <a href="../../../../org/apache/geode/cache/InterestResultPolicy.html" title="class in org.apache.geode.cache">InterestResultPolicy</a>&nbsp;policy)</pre>
<div class="block">Sends a request to the CacheServer to register interest for all key in the iterable for this
 client. Updates to any of the keys in the iterable by other clients will be pushed to this
 client by the CacheServer. This method is currently supported only on clients in a client
 server topology. The keys are first locally cleared from the client and current value for the
 keys are inserted into the local cache before this call returns. (if requested).

 <p>
 If you locally-destroy a key and your region has concurrency-checks-enabled turned off you will
 not receive invalidation events from your interest subscription for that key. When
 concurrency-checks-enabled is turned on GemFire will accept invalidation and deliver these
 events to your client cache.
 </p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>iterable</code> - The <code>Iterable</code> of keys on which to register interest.</dd>
<dd><code>policy</code> - The interest result policy. This can be one of:
        <ul>
        <li>InterestResultPolicy.NONE - does not initialize the local cache</li>
        <li>InterestResultPolicy.KEYS - initializes the local cache with the keys satisfying the
        request</li>
        <li>InterestResultPolicy.KEYS_VALUES - initializes the local cache with the keys and
        current values satisfying the request</li>
        </ul></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - if the region is not configured with a pool name.</dd>
<dd><code><a href="../../../../org/apache/geode/cache/client/SubscriptionNotEnabledException.html" title="class in org.apache.geode.cache.client">SubscriptionNotEnabledException</a></code> - if the region's pool does not have subcriptions
         enabled.</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - if the region is a replicate with distributed scope.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>Geode 1.5</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/geode/cache/InterestResultPolicy.html" title="class in org.apache.geode.cache"><code>InterestResultPolicy</code></a></dd>
</dl>
</li>
</ul>
<a name="registerInterestForKeys-java.lang.Iterable-org.apache.geode.cache.InterestResultPolicy-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>registerInterestForKeys</h4>
<pre>default&nbsp;void&nbsp;registerInterestForKeys(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a>&lt;<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>&gt;&nbsp;iterable,
                                     <a href="../../../../org/apache/geode/cache/InterestResultPolicy.html" title="class in org.apache.geode.cache">InterestResultPolicy</a>&nbsp;policy,
                                     boolean&nbsp;isDurable)</pre>
<div class="block">Sends a request to the CacheServer to register interest for all key in the iterable for this
 client. Updates to any of the keys in the iterable by other clients will be pushed to this
 client by the CacheServer. This method is currently supported only on clients in a client
 server topology. The keys are first locally cleared from the client and current value for the
 keys are inserted into the local cache before this call returns. (if requested).

 <p>
 If you locally-destroy a key and your region has concurrency-checks-enabled turned off you will
 not receive invalidation events from your interest subscription for that key. When
 concurrency-checks-enabled is turned on GemFire will accept invalidation and deliver these
 events to your client cache.
 </p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>iterable</code> - The <code>Iterable</code> of keys on which to register interest.</dd>
<dd><code>policy</code> - The interest result policy. This can be one of:
        <ul>
        <li>InterestResultPolicy.NONE - does not initialize the local cache</li>
        <li>InterestResultPolicy.KEYS - initializes the local cache with the keys satisfying the
        request</li>
        <li>InterestResultPolicy.KEYS_VALUES - initializes the local cache with the keys and
        current values satisfying the request</li>
        </ul></dd>
<dd><code>isDurable</code> - true if the register interest is durable</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - if the region is not configured with a pool name.</dd>
<dd><code><a href="../../../../org/apache/geode/cache/client/SubscriptionNotEnabledException.html" title="class in org.apache.geode.cache.client">SubscriptionNotEnabledException</a></code> - if the region's pool does not have subcriptions
         enabled.</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - if the region is a replicate with distributed scope.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>Geode 1.5</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/geode/cache/InterestResultPolicy.html" title="class in org.apache.geode.cache"><code>InterestResultPolicy</code></a></dd>
</dl>
</li>
</ul>
<a name="registerInterestForKeys-java.lang.Iterable-org.apache.geode.cache.InterestResultPolicy-boolean-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>registerInterestForKeys</h4>
<pre>default&nbsp;void&nbsp;registerInterestForKeys(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a>&lt;<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>&gt;&nbsp;iterable,
                                     <a href="../../../../org/apache/geode/cache/InterestResultPolicy.html" title="class in org.apache.geode.cache">InterestResultPolicy</a>&nbsp;policy,
                                     boolean&nbsp;isDurable,
                                     boolean&nbsp;receiveValues)</pre>
<div class="block">Sends a request to the CacheServer to register interest for all key in the iterable for this
 client. Updates to any of the keys in the iterable by other clients will be pushed to this
 client by the CacheServer. This method is currently supported only on clients in a client
 server topology. The keys are first locally cleared from the client and current value for the
 keys are inserted into the local cache before this call returns. (if requested).

 <p>
 If you locally-destroy a key and your region has concurrency-checks-enabled turned off you will
 not receive invalidation events from your interest subscription for that key. When
 concurrency-checks-enabled is turned on GemFire will accept invalidation and deliver these
 events to your client cache.
 </p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>iterable</code> - The <code>Iterable</code> of keys on which to register interest.</dd>
<dd><code>policy</code> - The interest result policy. This can be one of:
        <ul>
        <li>InterestResultPolicy.NONE - does not initialize the local cache</li>
        <li>InterestResultPolicy.KEYS - initializes the local cache with the keys satisfying the
        request</li>
        <li>InterestResultPolicy.KEYS_VALUES - initializes the local cache with the keys and
        current values satisfying the request</li>
        </ul></dd>
<dd><code>isDurable</code> - true if the register interest is durable</dd>
<dd><code>receiveValues</code> - defaults to true. set to false to receive create or update events as
        invalidates similar to notify-by-subscription false.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - if the region is not configured with a pool name.</dd>
<dd><code><a href="../../../../org/apache/geode/cache/client/SubscriptionNotEnabledException.html" title="class in org.apache.geode.cache.client">SubscriptionNotEnabledException</a></code> - if the region's pool does not have subcriptions
         enabled.</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - if the region is a replicate with distributed scope.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>Geode 1.5</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/geode/cache/InterestResultPolicy.html" title="class in org.apache.geode.cache"><code>InterestResultPolicy</code></a></dd>
</dl>
</li>
</ul>
<a name="registerInterestRegex-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>registerInterestRegex</h4>
<pre>void&nbsp;registerInterestRegex(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regex)</pre>
<div class="block">Sends a request to the CacheServer to register interest in a regular expression pattern for
 this client. Updates to any keys of type <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang"><code>String</code></a> satisfying this regular expression by
 other clients will be pushed to this client by the CacheServer. This method is currently
 supported only on clients in a client server topology. These keys are first locally cleared
 from the client and the current values for keys of type <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang"><code>String</code></a> that satisfy the regular
 expression are inserted into the local cache before this call returns.

 <p>
 Note that if the <code>regex</code> is <code>".*"</code> then all keys of any type will be
 pushed to the client.
 <p>
 This method uses the default <code>InterestResultPolicy</code>.
 </p>

 <p>
 The regular expression string is compiled using the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html?is-external=true" title="class or interface in java.util.regex"><code>Pattern</code></a> class.
 </p>

 <p>
 If you locally-destroy a key and your region has concurrency-checks-enabled turned off you will
 not receive invalidation events from your interest subscription for that key. When
 concurrency-checks-enabled is turned on GemFire will accept invalidation and deliver these
 events to your client cache.
 </p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>regex</code> - The regular expression on which to register interest.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - if the region is not configured with a pool name.</dd>
<dd><code><a href="../../../../org/apache/geode/cache/client/SubscriptionNotEnabledException.html" title="class in org.apache.geode.cache.client">SubscriptionNotEnabledException</a></code> - if the region's pool does not have subscriptions
         enabled.</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - if the region is a replicate with distributed scope.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>GemFire 4.2.3</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/geode/cache/InterestResultPolicy.html" title="class in org.apache.geode.cache"><code>InterestResultPolicy</code></a>, 
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html?is-external=true" title="class or interface in java.util.regex"><code>Pattern</code></a></dd>
</dl>
</li>
</ul>
<a name="registerInterestRegex-java.lang.String-org.apache.geode.cache.InterestResultPolicy-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>registerInterestRegex</h4>
<pre>void&nbsp;registerInterestRegex(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regex,
                           <a href="../../../../org/apache/geode/cache/InterestResultPolicy.html" title="class in org.apache.geode.cache">InterestResultPolicy</a>&nbsp;policy)</pre>
<div class="block">Sends a request to the CacheServer to register interest in a regular expression pattern for
 this client. Updates to any keys of type <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang"><code>String</code></a> satisfying this regular expression by
 other clients will be pushed to this client by the CacheServer. This method is currently
 supported only on clients in a client server topology. These keys are first locally cleared
 from the client and the current values for keys of type <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang"><code>String</code></a> that satisfy the regular
 expression are inserted into the local cache before this call returns.

 <p>
 The regular expression string is compiled using the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html?is-external=true" title="class or interface in java.util.regex"><code>Pattern</code></a> class.
 </p>

 <p>
 If you locally-destroy a key and your region has concurrency-checks-enabled turned off you will
 not receive invalidation events from your interest subscription for that key. When
 concurrency-checks-enabled is turned on GemFire will accept invalidation and deliver these
 events to your client cache.
 </p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>regex</code> - The regular expression on which to register interest.</dd>
<dd><code>policy</code> - The interest result policy. This can be one of:
        <ul>
        <li>InterestResultPolicy.NONE - does not initialize the local cache</li>
        <li>InterestResultPolicy.KEYS - initializes the local cache with the keys satisfying the
        request</li>
        <li>InterestResultPolicy.KEYS_VALUES - initializes the local cache with the keys and
        current values satisfying the request</li>
        </ul></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - if the region is not configured with a pool name.</dd>
<dd><code><a href="../../../../org/apache/geode/cache/client/SubscriptionNotEnabledException.html" title="class in org.apache.geode.cache.client">SubscriptionNotEnabledException</a></code> - if the region's pool does not have subscriptions
         enabled.</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - if the region is a replicate with distributed scope.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>GemFire 4.2.3</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/geode/cache/InterestResultPolicy.html" title="class in org.apache.geode.cache"><code>InterestResultPolicy</code></a>, 
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html?is-external=true" title="class or interface in java.util.regex"><code>Pattern</code></a></dd>
</dl>
</li>
</ul>
<a name="unregisterInterest-java.lang.Object-">
<!--   -->
</a><a name="unregisterInterest-K-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>unregisterInterest</h4>
<pre>void&nbsp;unregisterInterest(<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>&nbsp;key)</pre>
<div class="block">Sends a request to the CacheServer to unregister interest in a key for this client. Updates to
 this key by other clients will be no longer be pushed to this client by the CacheServer. This
 method is currently supported only on clients in a client server topology.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - The key on which to register interest. If the key is a <code>List</code>, then all
        the keys in the <code>List</code> will be unregistered.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - if the region is not configured with a pool name.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>GemFire 4.2</dd>
</dl>
</li>
</ul>
<a name="unregisterInterestRegex-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>unregisterInterestRegex</h4>
<pre>void&nbsp;unregisterInterestRegex(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regex)</pre>
<div class="block">Sends a request to the CacheServer to unregister interest in a regular expression pattern for
 this client. Updates to any keys satisfying this regular expression by other clients will no
 longer be pushed to this client by the CacheServer. This method is currently supported only on
 clients in a client server topology.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>regex</code> - The regular expression on which to unregister interest.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - if the region is not configured with a pool name.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>GemFire 4.2.3</dd>
</dl>
</li>
</ul>
<a name="getInterestList--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getInterestList</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>&gt;&nbsp;getInterestList()</pre>
<div class="block">Returns the list of keys on which this client is interested and will be notified of changes.
 This method is currently supported only on clients in a client server topology.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The list of keys on which this client is interested</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - if the region is not configured with a pool name.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>GemFire 4.2</dd>
</dl>
</li>
</ul>
<a name="registerInterest-java.lang.Object-boolean-">
<!--   -->
</a><a name="registerInterest-K-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>registerInterest</h4>
<pre>void&nbsp;registerInterest(<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>&nbsp;key,
                      boolean&nbsp;isDurable)</pre>
<div class="block">Sends a request to the CacheServer to register interest in a key for this client. Updates to
 this key by other clients will be pushed to this client by the CacheServer. This method is
 currently supported only on clients in a client server topology. This key is first locally
 cleared from the client and the current value for this key is inserted into the local cache
 before this call returns.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - The key on which to register interest.

        <p>
        ###Deprecated behavior###
        </p>
        <p>
        The following <code>List</code> and
        'ALL_KEYS' behavior is now deprecated. As an alternative, please use
        </p>
        <p>
        <a href="../../../../org/apache/geode/cache/Region.html#registerInterestForKeys-java.lang.Iterable-org.apache.geode.cache.InterestResultPolicy-"><code>registerInterestForKeys(Iterable, InterestResultPolicy)</code></a>
        </p>
        <p>
        <a href="../../../../org/apache/geode/cache/Region.html#registerInterestForAllKeys-org.apache.geode.cache.InterestResultPolicy-"><code>registerInterestForAllKeys(InterestResultPolicy)</code></a>
        </p>

        <p>
        If the key is a <code>List</code>, then all the keys in the
        <code>List</code> will be registered. The key can also be the special token 'ALL_KEYS',
        which will register interest in all keys in the region. In effect, this will cause an
        update to any key in this region in the CacheServer to be pushed to the client.
        </p>

        <p>
        <i>Using 'ALL_KEYS' is the same as calling <a href="../../../../org/apache/geode/cache/Region.html#registerInterestRegex-java.lang.String-"><code>registerInterestRegex(String)</code></a> with
        ".*" as the argument. This means that all keys of any type are pushed to the client and
        inserted into the local cache.</i>
        </p>
        ###End of deprecation###

        <p>
        This method uses the default <code>InterestResultPolicy</code>.
        </p>

        <p>
        If you locally-destroy a key and your region has concurrency-checks-enabled turned off
        you will not receive invalidation events from your interest subscription for that key.
        When concurrency-checks-enabled is turned on GemFire will accept invalidation and
        deliver these events to your client cache.
        </p></dd>
<dd><code>isDurable</code> - true if the register interest is durable</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - if the region is not configured with a pool name.</dd>
<dd><code><a href="../../../../org/apache/geode/cache/client/SubscriptionNotEnabledException.html" title="class in org.apache.geode.cache.client">SubscriptionNotEnabledException</a></code> - if the region's pool does not have subscriptions
         enabled.</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - if the region is a replicate with distributed scope.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>GemFire 5.5</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/geode/cache/InterestResultPolicy.html" title="class in org.apache.geode.cache"><code>InterestResultPolicy</code></a></dd>
</dl>
</li>
</ul>
<a name="registerInterest-java.lang.Object-boolean-boolean-">
<!--   -->
</a><a name="registerInterest-K-boolean-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>registerInterest</h4>
<pre>void&nbsp;registerInterest(<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>&nbsp;key,
                      boolean&nbsp;isDurable,
                      boolean&nbsp;receiveValues)</pre>
<div class="block">Sends a request to the CacheServer to register interest in a key for this client. Updates to
 this key by other clients will be pushed to this client by the CacheServer. This method is
 currently supported only on clients in a client server topology. This key is first locally
 cleared from the client and the current value for this key is inserted into the local cache
 before this call returns.

 <p>
 If you locally-destroy a key and your region has concurrency-checks-enabled turned off you will
 not receive invalidation events from your interest subscription for that key. When
 concurrency-checks-enabled is turned on GemFire will accept invalidation and deliver these
 events to your client cache.
 </p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - The key on which to register interest.

        <p>
        ###Deprecated behavior###
        </p>
        <p>
        The following <code>List</code> and
        'ALL_KEYS' behavior is now deprecated. As an alternative, please use
        </p>
        <p>
        <a href="../../../../org/apache/geode/cache/Region.html#registerInterestForKeys-java.lang.Iterable-org.apache.geode.cache.InterestResultPolicy-"><code>registerInterestForKeys(Iterable, InterestResultPolicy)</code></a>
        </p>
        <p>
        <a href="../../../../org/apache/geode/cache/Region.html#registerInterestForAllKeys-org.apache.geode.cache.InterestResultPolicy-"><code>registerInterestForAllKeys(InterestResultPolicy)</code></a>
        </p>

        <p>
        If the key is a <code>List</code>, then all the keys in the
        <code>List</code> will be registered. The key can also be the special token 'ALL_KEYS',
        which will register interest in all keys in the region. In effect, this will cause an
        update to any key in this region in the CacheServer to be pushed to the client.
        </p>

        <p>
        <i>Using 'ALL_KEYS' is the same as calling <a href="../../../../org/apache/geode/cache/Region.html#registerInterestRegex-java.lang.String-"><code>registerInterestRegex(String)</code></a> with
        ".*" as the argument. This means that all keys of any type are pushed to the client and
        inserted into the local cache.</i>
        </p>
        ###End of deprecation###

        <p>
        This method uses the default <code>InterestResultPolicy</code>.
        </p></dd>
<dd><code>isDurable</code> - true if the register interest is durable</dd>
<dd><code>receiveValues</code> - defaults to true. set to false to receive create or update events as
        invalidates similar to notify-by-subscription false.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - if the region is not configured with a pool name.</dd>
<dd><code><a href="../../../../org/apache/geode/cache/client/SubscriptionNotEnabledException.html" title="class in org.apache.geode.cache.client">SubscriptionNotEnabledException</a></code> - if the region's pool does not have subscriptions
         enabled.</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - if the region is a replicate with distributed scope.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>GemFire 6.0.3</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/geode/cache/InterestResultPolicy.html" title="class in org.apache.geode.cache"><code>InterestResultPolicy</code></a></dd>
</dl>
</li>
</ul>
<a name="registerInterest-java.lang.Object-org.apache.geode.cache.InterestResultPolicy-boolean-boolean-">
<!--   -->
</a><a name="registerInterest-K-org.apache.geode.cache.InterestResultPolicy-boolean-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>registerInterest</h4>
<pre>void&nbsp;registerInterest(<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>&nbsp;key,
                      <a href="../../../../org/apache/geode/cache/InterestResultPolicy.html" title="class in org.apache.geode.cache">InterestResultPolicy</a>&nbsp;policy,
                      boolean&nbsp;isDurable,
                      boolean&nbsp;receiveValues)</pre>
<div class="block">Sends a request to the CacheServer to register interest in a key for this client. Updates to
 this key by other clients will be pushed to this client by the CacheServer. This method is
 currently supported only on clients in a client server topology. This key is first locally
 cleared from the client and the current value for this key is inserted into the local cache
 before this call returns (if requested).

 <p>
 If you locally-destroy a key and your region has concurrency-checks-enabled turned off you will
 not receive invalidation events from your interest subscription for that key. When
 concurrency-checks-enabled is turned on GemFire will accept invalidation and deliver these
 events to your client cache.
 </p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - The key on which to register interest.

        <p>
        ###Deprecated behavior###
        </p>
        <p>
        The following <code>List</code> and
        'ALL_KEYS' behavior is now deprecated. As an alternative, please use
        </p>
        <p>
        <a href="../../../../org/apache/geode/cache/Region.html#registerInterestForKeys-java.lang.Iterable-org.apache.geode.cache.InterestResultPolicy-"><code>registerInterestForKeys(Iterable, InterestResultPolicy)</code></a>
        </p>
        <p>
        <a href="../../../../org/apache/geode/cache/Region.html#registerInterestForAllKeys-org.apache.geode.cache.InterestResultPolicy-"><code>registerInterestForAllKeys(InterestResultPolicy)</code></a>
        </p>

        <p>
        If the key is a <code>List</code>, then all the keys in the
        <code>List</code> will be registered. The key can also be the special token 'ALL_KEYS',
        which will register interest in all keys in the region. In effect, this will cause an
        update to any key in this region in the CacheServer to be pushed to the client.
        </p>

        <p>
        <i>Using 'ALL_KEYS' is the same as calling <a href="../../../../org/apache/geode/cache/Region.html#registerInterestRegex-java.lang.String-"><code>registerInterestRegex(String)</code></a> with
        ".*" as the argument. This means that all keys of any type are pushed to the client and
        inserted into the local cache.</i>
        </p>
        ###End of deprecation###</dd>
<dd><code>policy</code> - The interest result policy. This can be one of:
        <ul>
        <li>InterestResultPolicy.NONE - does not initialize the local cache</li>
        <li>InterestResultPolicy.KEYS - initializes the local cache with the keys satisfying the
        request</li>
        <li>InterestResultPolicy.KEYS_VALUES - initializes the local cache with the keys and
        current values satisfying the request</li>
        </ul></dd>
<dd><code>isDurable</code> - true if the register interest is durable</dd>
<dd><code>receiveValues</code> - defaults to true. set to false to receive create or update events as
        invalidates similar to notify-by-subscription false.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - if the region is not configured with a pool name.</dd>
<dd><code><a href="../../../../org/apache/geode/cache/client/SubscriptionNotEnabledException.html" title="class in org.apache.geode.cache.client">SubscriptionNotEnabledException</a></code> - if the region's pool does not have subscriptions
         enabled.</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - if the region is a replicate with distributed scope.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>GemFire 6.0.3</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/geode/cache/InterestResultPolicy.html" title="class in org.apache.geode.cache"><code>InterestResultPolicy</code></a></dd>
</dl>
</li>
</ul>
<a name="registerInterest-java.lang.Object-org.apache.geode.cache.InterestResultPolicy-boolean-">
<!--   -->
</a><a name="registerInterest-K-org.apache.geode.cache.InterestResultPolicy-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>registerInterest</h4>
<pre>void&nbsp;registerInterest(<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>&nbsp;key,
                      <a href="../../../../org/apache/geode/cache/InterestResultPolicy.html" title="class in org.apache.geode.cache">InterestResultPolicy</a>&nbsp;policy,
                      boolean&nbsp;isDurable)</pre>
<div class="block">Sends a request to the CacheServer to register interest in a key for this client. Updates to
 this key by other clients will be pushed to this client by the CacheServer. This method is
 currently supported only on clients in a client server topology. This key is first locally
 cleared from the client and the current value for this key is inserted into the local cache
 before this call returns (if requested).</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - The key on which to register interest.

        <p>
        ###Deprecated behavior###
        </p>
        <p>
        The following <code>List</code> and
        'ALL_KEYS' behavior is now deprecated. As an alternative, please use
        </p>
        <p>
        <a href="../../../../org/apache/geode/cache/Region.html#registerInterestForKeys-java.lang.Iterable-org.apache.geode.cache.InterestResultPolicy-"><code>registerInterestForKeys(Iterable, InterestResultPolicy)</code></a>
        </p>
        <p>
        <a href="../../../../org/apache/geode/cache/Region.html#registerInterestForAllKeys-org.apache.geode.cache.InterestResultPolicy-"><code>registerInterestForAllKeys(InterestResultPolicy)</code></a>
        </p>

        <p>
        If the key is a <code>List</code>, then all the keys in the
        <code>List</code> will be registered. The key can also be the special token 'ALL_KEYS',
        which will register interest in all keys in the region. In effect, this will cause an
        update to any key in this region in the CacheServer to be pushed to the client.
        </p>

        <p>
        <i>Using 'ALL_KEYS' is the same as calling <a href="../../../../org/apache/geode/cache/Region.html#registerInterestRegex-java.lang.String-"><code>registerInterestRegex(String)</code></a> with
        ".*" as the argument. This means that all keys of any type are pushed to the client and
        inserted into the local cache.</i>
        </p>
        ###End of deprecation###

        <p>
        If you locally-destroy a key and your region has concurrency-checks-enabled turned off
        you will not receive invalidation events from your interest subscription for that key.
        When concurrency-checks-enabled is turned on GemFire will accept invalidation and
        deliver these events to your client cache.
        </p></dd>
<dd><code>policy</code> - The interest result policy. This can be one of:
        <ul>
        <li>InterestResultPolicy.NONE - does not initialize the local cache</li>
        <li>InterestResultPolicy.KEYS - initializes the local cache with the keys satisfying the
        request</li>
        <li>InterestResultPolicy.KEYS_VALUES - initializes the local cache with the keys and
        current values satisfying the request</li>
        </ul></dd>
<dd><code>isDurable</code> - true if the register interest is durable</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - if the region is not configured with a pool name.</dd>
<dd><code><a href="../../../../org/apache/geode/cache/client/SubscriptionNotEnabledException.html" title="class in org.apache.geode.cache.client">SubscriptionNotEnabledException</a></code> - if the region's pool does not have subscriptions
         enabled.</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - if the region is a replicate with distributed scope.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>GemFire 5.5</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/geode/cache/InterestResultPolicy.html" title="class in org.apache.geode.cache"><code>InterestResultPolicy</code></a></dd>
</dl>
</li>
</ul>
<a name="registerInterestRegex-java.lang.String-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>registerInterestRegex</h4>
<pre>void&nbsp;registerInterestRegex(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regex,
                           boolean&nbsp;isDurable)</pre>
<div class="block">Sends a request to the CacheServer to register interest in a regular expression pattern for
 this client. Updates to any keys of type <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang"><code>String</code></a> satisfying this regular expression by
 other clients will be pushed to this client by the CacheServer. This method is currently
 supported only on clients in a client server topology. These keys are first locally cleared
 from the client and the current values for keys of type <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang"><code>String</code></a> that satisfy the regular
 expression are inserted into the local cache before this call returns.

 <p>
 If you locally-destroy a key and your region has concurrency-checks-enabled turned off you will
 not receive invalidation events from your interest subscription for that key. When
 concurrency-checks-enabled is turned on GemFire will accept invalidation and deliver these
 events to your client cache.
 </p>

 <p>
 Note that if the <code>regex</code> is <code>".*"</code> then all keys of any type will be
 pushed to the client.
 <p>
 This method uses the default <code>InterestResultPolicy</code>.
 </p>

 <p>
 The regular expression string is compiled using the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html?is-external=true" title="class or interface in java.util.regex"><code>Pattern</code></a> class.
 </p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>regex</code> - The regular expression on which to register interest.</dd>
<dd><code>isDurable</code> - true if the register interest is durable</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - if the region is not configured with a pool name.</dd>
<dd><code><a href="../../../../org/apache/geode/cache/client/SubscriptionNotEnabledException.html" title="class in org.apache.geode.cache.client">SubscriptionNotEnabledException</a></code> - if the region's pool does not have subscriptions
         enabled.</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - if the region is a replicate with distributed scope.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>GemFire 5.5</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/geode/cache/InterestResultPolicy.html" title="class in org.apache.geode.cache"><code>InterestResultPolicy</code></a>, 
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html?is-external=true" title="class or interface in java.util.regex"><code>Pattern</code></a></dd>
</dl>
</li>
</ul>
<a name="registerInterestRegex-java.lang.String-boolean-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>registerInterestRegex</h4>
<pre>void&nbsp;registerInterestRegex(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regex,
                           boolean&nbsp;isDurable,
                           boolean&nbsp;receiveValues)</pre>
<div class="block">Sends a request to the CacheServer to register interest in a regular expression pattern for
 this client. Updates to any keys of type <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang"><code>String</code></a> satisfying this regular expression by
 other clients will be pushed to this client by the CacheServer. This method is currently
 supported only on clients in a client server topology. These keys are first locally cleared
 from the client and the current values for keys of type <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang"><code>String</code></a> that satisfy the regular
 expression are inserted into the local cache before this call returns.

 <p>
 Note that if the <code>regex</code> is <code>".*"</code> then all keys of any type will be
 pushed to the client.
 <p>
 This method uses the default <code>InterestResultPolicy</code>.
 </p>

 <p>
 The regular expression string is compiled using the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html?is-external=true" title="class or interface in java.util.regex"><code>Pattern</code></a> class.
 </p>

 <p>
 If you locally-destroy a key and your region has concurrency-checks-enabled turned off you will
 not receive invalidation events from your interest subscription for that key. When
 concurrency-checks-enabled is turned on GemFire will accept invalidation and deliver these
 events to your client cache.
 </p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>regex</code> - The regular expression on which to register interest.</dd>
<dd><code>isDurable</code> - true if the register interest is durable</dd>
<dd><code>receiveValues</code> - defaults to true. set to false to receive create or update events as
        invalidates similar to notify-by-subscription false.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - if the region is not configured with a pool name.</dd>
<dd><code><a href="../../../../org/apache/geode/cache/client/SubscriptionNotEnabledException.html" title="class in org.apache.geode.cache.client">SubscriptionNotEnabledException</a></code> - if the region's pool does not have subscriptions
         enabled.</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - if the region is a replicate with distributed scope.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>GemFire 6.0.3</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/geode/cache/InterestResultPolicy.html" title="class in org.apache.geode.cache"><code>InterestResultPolicy</code></a>, 
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html?is-external=true" title="class or interface in java.util.regex"><code>Pattern</code></a></dd>
</dl>
</li>
</ul>
<a name="registerInterestRegex-java.lang.String-org.apache.geode.cache.InterestResultPolicy-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>registerInterestRegex</h4>
<pre>void&nbsp;registerInterestRegex(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regex,
                           <a href="../../../../org/apache/geode/cache/InterestResultPolicy.html" title="class in org.apache.geode.cache">InterestResultPolicy</a>&nbsp;policy,
                           boolean&nbsp;isDurable)</pre>
<div class="block">Sends a request to the CacheServer to register interest in a regular expression pattern for
 this client. Updates to any keys of type <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang"><code>String</code></a> satisfying this regular expression by
 other clients will be pushed to this client by the CacheServer. This method is currently
 supported only on clients in a client server topology. These keys are first locally cleared
 from the client and the current values for keys of type <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang"><code>String</code></a> that satisfy the regular
 expression are inserted into the local cache before this call returns.

 <p>
 The regular expression string is compiled using the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html?is-external=true" title="class or interface in java.util.regex"><code>Pattern</code></a> class.
 </p>

 <p>
 If you locally-destroy a key and your region has concurrency-checks-enabled turned off you will
 not receive invalidation events from your interest subscription for that key. When
 concurrency-checks-enabled is turned on GemFire will accept invalidation and deliver these
 events to your client cache.
 </p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>regex</code> - The regular expression on which to register interest.</dd>
<dd><code>policy</code> - The interest result policy. This can be one of:
        <ul>
        <li>InterestResultPolicy.NONE - does not initialize the local cache</li>
        <li>InterestResultPolicy.KEYS - initializes the local cache with the keys satisfying the
        request</li>
        <li>InterestResultPolicy.KEYS_VALUES - initializes the local cache with the keys and
        current values satisfying the request</li>
        </ul></dd>
<dd><code>isDurable</code> - true if the register interest is durable</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - if the region is not configured with a pool name.</dd>
<dd><code><a href="../../../../org/apache/geode/cache/client/SubscriptionNotEnabledException.html" title="class in org.apache.geode.cache.client">SubscriptionNotEnabledException</a></code> - if the region's pool does not have subscriptions
         enabled.</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - if the region is a replicate with distributed scope.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>GemFire 5.5</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/geode/cache/InterestResultPolicy.html" title="class in org.apache.geode.cache"><code>InterestResultPolicy</code></a>, 
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html?is-external=true" title="class or interface in java.util.regex"><code>Pattern</code></a></dd>
</dl>
</li>
</ul>
<a name="registerInterestRegex-java.lang.String-org.apache.geode.cache.InterestResultPolicy-boolean-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>registerInterestRegex</h4>
<pre>void&nbsp;registerInterestRegex(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regex,
                           <a href="../../../../org/apache/geode/cache/InterestResultPolicy.html" title="class in org.apache.geode.cache">InterestResultPolicy</a>&nbsp;policy,
                           boolean&nbsp;isDurable,
                           boolean&nbsp;receiveValues)</pre>
<div class="block">Sends a request to the CacheServer to register interest in a regular expression pattern for
 this client. Updates to any keys of type <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang"><code>String</code></a> satisfying this regular expression by
 other clients will be pushed to this client by the CacheServer. This method is currently
 supported only on clients in a client server topology. These keys are first locally cleared
 from the client and the current values for keys of type <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang"><code>String</code></a> that satisfy the regular
 expression are inserted into the local cache before this call returns.

 <p>
 The regular expression string is compiled using the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html?is-external=true" title="class or interface in java.util.regex"><code>Pattern</code></a> class.
 </p>

 <p>
 If you locally-destroy a key and your region has concurrency-checks-enabled turned off you will
 not receive invalidation events from your interest subscription for that key. When
 concurrency-checks-enabled is turned on GemFire will accept invalidation and deliver these
 events to your client cache.
 </p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>regex</code> - The regular expression on which to register interest.</dd>
<dd><code>policy</code> - The interest result policy. This can be one of:
        <ul>
        <li>InterestResultPolicy.NONE - does not initialize the local cache</li>
        <li>InterestResultPolicy.KEYS - initializes the local cache with the keys satisfying the
        request</li>
        <li>InterestResultPolicy.KEYS_VALUES - initializes the local cache with the keys and
        current values satisfying the request</li>
        </ul></dd>
<dd><code>isDurable</code> - true if the register interest is durable</dd>
<dd><code>receiveValues</code> - defaults to true. set to false to receive create or update events as
        invalidates similar to notify-by-subscription false.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - if the region is not configured with a pool name.</dd>
<dd><code><a href="../../../../org/apache/geode/cache/client/SubscriptionNotEnabledException.html" title="class in org.apache.geode.cache.client">SubscriptionNotEnabledException</a></code> - if the region's pool does not have subscriptions
         enabled.</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - if the region is a replicate with distributed scope.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>GemFire 6.0.3</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../org/apache/geode/cache/InterestResultPolicy.html" title="class in org.apache.geode.cache"><code>InterestResultPolicy</code></a>, 
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html?is-external=true" title="class or interface in java.util.regex"><code>Pattern</code></a></dd>
</dl>
</li>
</ul>
<a name="getInterestListRegex--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getInterestListRegex</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getInterestListRegex()</pre>
<div class="block">Returns the list of regular expresssions on which this client is interested and will be
 notified of changes. This method is currently supported only on clients in a client server
 topology.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The list of regular expresssions on which this client is interested</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - if the region is not configured with a pool name.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>GemFire 4.2.3</dd>
</dl>
</li>
</ul>
<a name="keySetOnServer--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>keySetOnServer</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>&gt;&nbsp;keySetOnServer()</pre>
<div class="block">Returns a set of keys in the region on the server.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a Set of all the keys in the region on the server</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - if the region is not configured with a pool name.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>GemFire 5.0.2</dd>
</dl>
</li>
</ul>
<a name="containsKeyOnServer-java.lang.Object-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>containsKeyOnServer</h4>
<pre>boolean&nbsp;containsKeyOnServer(<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>&nbsp;key)</pre>
<div class="block">Returns whether the specified key currently exists in this region on the server.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - the key to check for an existing entry</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if there is an entry in this region for the specified key on the server</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - if the region is not configured with a pool name.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>GemFire 5.0.2</dd>
</dl>
</li>
</ul>
<a name="sizeOnServer--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>sizeOnServer</h4>
<pre>int&nbsp;sizeOnServer()</pre>
<div class="block">Returns the number of entries present in this region on the server. Entries stored in this
 client region are ignored.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the number of entries present in this region on the server.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - if the region is not configured with a pool name.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>Geode 1.2.0</dd>
</dl>
</li>
</ul>
<a name="isEmptyOnServer--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isEmptyOnServer</h4>
<pre>boolean&nbsp;isEmptyOnServer()</pre>
<div class="block">Returns true if this region contains no entries on the server.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if this region contains no entries on the server.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - if the region is not configured with a pool name.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>Geode 1.2.0</dd>
</dl>
</li>
</ul>
<a name="putIfAbsent-java.lang.Object-java.lang.Object-">
<!--   -->
</a><a name="putIfAbsent-K-V-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>putIfAbsent</h4>
<pre><a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a>&nbsp;putIfAbsent(<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>&nbsp;key,
              <a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a>&nbsp;value)</pre>
<div class="block">If the specified key is not already associated with a value, associate it with the given value.
 This is equivalent to

 <pre>
 if (!map.containsKey(key))
   return map.put(key, value);
 else
   return map.get(key);
 </pre>

 except that the action is performed atomically.

 <p>
 ConcurrentMap operations are supported on partitioned and replicated regions and in client
 caches. They are also supported on non-empty local regions.
 </p>
 <p>
 Please read the notes on ConcurrentMap operations in the javadoc for Region.
 </p>
 <p>
 Region allows the value parameter to be null, which will create an invalid entry.
 </p></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true#putIfAbsent-K-V-" title="class or interface in java.util.concurrent">putIfAbsent</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentMap</a>&lt;<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>,<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#putIfAbsent-K-V-" title="class or interface in java.util">putIfAbsent</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>,<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a>&gt;</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - key with which the specified value is to be associated</dd>
<dd><code>value</code> - value to be associated with the specified key</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the previous value associated with the specified key, or <tt>null</tt> if there was no
         mapping for the key. (A <tt>null</tt> return can also indicate that the map previously
         associated <tt>null</tt> with the key, if the implementation supports null values.)</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - if the <tt>put</tt> operation is not supported by this
         map</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassCastException.html?is-external=true" title="class or interface in java.lang">ClassCastException</a></code> - if the class of the specified key or value prevents it from being
         stored in this map</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the specified key or value is null, and this map does not
         permit null keys or values</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if some property of the specified key or value prevents it
         from being stored in this map</dd>
<dd><code><a href="../../../../org/apache/geode/distributed/LeaseExpiredException.html" title="class in org.apache.geode.distributed">LeaseExpiredException</a></code> - if lease expired on distributed lock
         for Scope.GLOBAL</dd>
<dd><code><a href="../../../../org/apache/geode/cache/TimeoutException.html" title="class in org.apache.geode.cache">TimeoutException</a></code> - if timed out getting distributed lock for Scope.GLOBAL</dd>
<dd><code><a href="../../../../org/apache/geode/cache/CacheWriterException.html" title="class in org.apache.geode.cache">CacheWriterException</a></code> - if a CacheWriter aborts the operation</dd>
<dd><code><a href="../../../../org/apache/geode/cache/PartitionedRegionStorageException.html" title="class in org.apache.geode.cache">PartitionedRegionStorageException</a></code> - if the operation could not be completed on a
         partitioned region.</dd>
<dd><code><a href="../../../../org/apache/geode/cache/LowMemoryException.html" title="class in org.apache.geode.cache">LowMemoryException</a></code> - if a low memory condition is detected.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>GemFire 6.5</dd>
</dl>
</li>
</ul>
<a name="remove-java.lang.Object-java.lang.Object-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>remove</h4>
<pre>boolean&nbsp;remove(<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>&nbsp;key,
               <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>&nbsp;value)</pre>
<div class="block">Removes the entry for a key only if currently mapped to a given value. This is equivalent to

 <pre>
 if (map.containsKey(key) &amp;&amp; map.get(key).equals(value)) {
   map.remove(key);
   return true;
 } else
   return false;
 </pre>

 except that the action is performed atomically.
 <p>
 As of 8.5, if value is an Array then Arrays.equals or Arrays.deepEquals is used instead of
 Object.equals.
 <p>
 ConcurrentMap operations are supported on partitioned and replicated regions and in client
 caches. They are also supported on non-empty local regions.
 <p>
 <p>
 Please read the notes on ConcurrentMap operations in the javadoc for Region.
 </p>
 <p>
 Region allows the value parameter to be null, which will match an invalid entry.
 </p></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true#remove-java.lang.Object-java.lang.Object-" title="class or interface in java.util.concurrent">remove</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentMap</a>&lt;<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>,<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#remove-java.lang.Object-java.lang.Object-" title="class or interface in java.util">remove</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>,<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a>&gt;</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - key with which the specified value is associated</dd>
<dd><code>value</code> - value expected to be associated with the specified key</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><tt>true</tt> if the value was removed</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - if the <tt>remove</tt> operation is not supported by this
         map</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassCastException.html?is-external=true" title="class or interface in java.lang">ClassCastException</a></code> - if the key or value is of an inappropriate type for this map
         (optional)</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the specified key or value is null, and this map does not
         permit null keys or values (optional)</dd>
<dd><code><a href="../../../../org/apache/geode/distributed/LeaseExpiredException.html" title="class in org.apache.geode.distributed">LeaseExpiredException</a></code> - if lease expired on distributed lock
         for Scope.GLOBAL</dd>
<dd><code><a href="../../../../org/apache/geode/cache/TimeoutException.html" title="class in org.apache.geode.cache">TimeoutException</a></code> - if timed out getting distributed lock for Scope.GLOBAL</dd>
<dd><code><a href="../../../../org/apache/geode/cache/CacheWriterException.html" title="class in org.apache.geode.cache">CacheWriterException</a></code> - if a CacheWriter aborts the operation</dd>
<dd><code><a href="../../../../org/apache/geode/cache/PartitionedRegionStorageException.html" title="class in org.apache.geode.cache">PartitionedRegionStorageException</a></code> - if the operation could not be completed on a
         partitioned region.</dd>
<dd><code><a href="../../../../org/apache/geode/cache/LowMemoryException.html" title="class in org.apache.geode.cache">LowMemoryException</a></code> - if a low memory condition is detected.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>GemFire 6.5</dd>
</dl>
</li>
</ul>
<a name="replace-java.lang.Object-java.lang.Object-java.lang.Object-">
<!--   -->
</a><a name="replace-K-V-V-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>replace</h4>
<pre>boolean&nbsp;replace(<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>&nbsp;key,
                <a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a>&nbsp;oldValue,
                <a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a>&nbsp;newValue)</pre>
<div class="block">Replaces the entry for a key only if currently mapped to a given value. This is equivalent to

 <pre>
 if (map.containsKey(key) &amp;&amp; map.get(key).equals(oldValue)) {
   map.put(key, newValue);
   return true;
 } else
   return false;
 </pre>

 except that the action is performed atomically.
 <p>
 As of 8.5, if value is an Array then Arrays.equals or Arrays.deepEquals is used instead of
 Object.equals.
 <p>
 ConcurrentMap operations are supported on partitioned and replicated regions and in client
 caches. They are also supported on non-empty local regions.
 </p>
 <p>
 Please read the notes on ConcurrentMap operations in the javadoc for Region.
 </p>
 <p>
 Region allows the oldValue parameter to be null, which will match an invalid entry.
 </p></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true#replace-K-V-V-" title="class or interface in java.util.concurrent">replace</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentMap</a>&lt;<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>,<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#replace-K-V-V-" title="class or interface in java.util">replace</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>,<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a>&gt;</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - key with which the specified value is associated</dd>
<dd><code>oldValue</code> - value expected to be associated with the specified key</dd>
<dd><code>newValue</code> - value to be associated with the specified key</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><tt>true</tt> if the value was replaced</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - if the <tt>replace</tt> operation is not supported by
         this map</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassCastException.html?is-external=true" title="class or interface in java.lang">ClassCastException</a></code> - if the class of a specified key or value prevents it from being
         stored in this map</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if a specified key is null, and this map does not permit null keys</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if some property of a specified key or value prevents it from
         being stored in this map</dd>
<dd><code><a href="../../../../org/apache/geode/distributed/LeaseExpiredException.html" title="class in org.apache.geode.distributed">LeaseExpiredException</a></code> - if lease expired on distributed lock
         for Scope.GLOBAL</dd>
<dd><code><a href="../../../../org/apache/geode/cache/TimeoutException.html" title="class in org.apache.geode.cache">TimeoutException</a></code> - if timed out getting distributed lock for Scope.GLOBAL</dd>
<dd><code><a href="../../../../org/apache/geode/cache/CacheWriterException.html" title="class in org.apache.geode.cache">CacheWriterException</a></code> - if a CacheWriter aborts the operation</dd>
<dd><code><a href="../../../../org/apache/geode/cache/PartitionedRegionStorageException.html" title="class in org.apache.geode.cache">PartitionedRegionStorageException</a></code> - if the operation could not be completed on a
         partitioned region.</dd>
<dd><code><a href="../../../../org/apache/geode/cache/LowMemoryException.html" title="class in org.apache.geode.cache">LowMemoryException</a></code> - if a low memory condition is detected.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>GemFire 6.5</dd>
</dl>
</li>
</ul>
<a name="replace-java.lang.Object-java.lang.Object-">
<!--   -->
</a><a name="replace-K-V-">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>replace</h4>
<pre><a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a>&nbsp;replace(<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>&nbsp;key,
          <a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a>&nbsp;value)</pre>
<div class="block">Replaces the entry for a key only if currently mapped to some value. This is equivalent to

 <pre>
 if (map.containsKey(key)) {
   return map.put(key, value);
 } else
   return null;
 </pre>

 except that the action is performed atomically.
 <p>
 ConcurrentMap operations are supported on partitioned and replicated regions and in client
 caches. They are also supported on non-empty local regions.
 </p>
 <p>
 Please read the notes on ConcurrentMap operations in the javadoc for Region.
 </p></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true#replace-K-V-" title="class or interface in java.util.concurrent">replace</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentMap</a>&lt;<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>,<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true#replace-K-V-" title="class or interface in java.util">replace</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">K</a>,<a href="../../../../org/apache/geode/cache/Region.html" title="type parameter in Region">V</a>&gt;</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - key with which the specified value is associated</dd>
<dd><code>value</code> - value to be associated with the specified key</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the previous value associated with the specified key, or <tt>null</tt> if there was no
         mapping for the key. (A <tt>null</tt> return can also indicate that the map previously
         associated <tt>null</tt> with the key, if the implementation supports null values.)</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</a></code> - if the <tt>put</tt> operation is not supported by this
         map</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassCastException.html?is-external=true" title="class or interface in java.lang">ClassCastException</a></code> - if the class of the specified key or value prevents it from being
         stored in this map</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the specified key or value is null, and this map does not
         permit null keys or values</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if some property of the specified key or value prevents it
         from being stored in this map</dd>
<dd><code><a href="../../../../org/apache/geode/distributed/LeaseExpiredException.html" title="class in org.apache.geode.distributed">LeaseExpiredException</a></code> - if lease expired on distributed lock
         for Scope.GLOBAL</dd>
<dd><code><a href="../../../../org/apache/geode/cache/TimeoutException.html" title="class in org.apache.geode.cache">TimeoutException</a></code> - if timed out getting distributed lock for Scope.GLOBAL</dd>
<dd><code><a href="../../../../org/apache/geode/cache/CacheWriterException.html" title="class in org.apache.geode.cache">CacheWriterException</a></code> - if a CacheWriter aborts the operation</dd>
<dd><code><a href="../../../../org/apache/geode/cache/PartitionedRegionStorageException.html" title="class in org.apache.geode.cache">PartitionedRegionStorageException</a></code> - if the operation could not be completed on a
         partitioned region.</dd>
<dd><code><a href="../../../../org/apache/geode/cache/LowMemoryException.html" title="class in org.apache.geode.cache">LowMemoryException</a></code> - if a low memory condition is detected.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>GemFire 6.5</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="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/geode/cache/PartitionResolver.html" title="interface in org.apache.geode.cache"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/apache/geode/cache/Region.Entry.html" title="interface in org.apache.geode.cache"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/geode/cache/Region.html" target="_top">Frames</a></li>
<li><a href="Region.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><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li>Constr&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>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>
