<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>CopyOnWriteMap xref</title>
<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../apidocs/org/apache/mina/util/CopyOnWriteMap.html">View Javadoc</a></div><pre>

<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
<a name="2" href="#2">2</a>   <em class="jxr_comment"> *  Licensed to the Apache Software Foundation (ASF) under one</em>
<a name="3" href="#3">3</a>   <em class="jxr_comment"> *  or more contributor license agreements.  See the NOTICE file</em>
<a name="4" href="#4">4</a>   <em class="jxr_comment"> *  distributed with this work for additional information</em>
<a name="5" href="#5">5</a>   <em class="jxr_comment"> *  regarding copyright ownership.  The ASF licenses this file</em>
<a name="6" href="#6">6</a>   <em class="jxr_comment"> *  to you under the Apache License, Version 2.0 (the</em>
<a name="7" href="#7">7</a>   <em class="jxr_comment"> *  "License"); you may not use this file except in compliance</em>
<a name="8" href="#8">8</a>   <em class="jxr_comment"> *  with the License.  You may obtain a copy of the License at</em>
<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
<a name="10" href="#10">10</a>  <em class="jxr_comment"> *    <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
<a name="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
<a name="12" href="#12">12</a>  <em class="jxr_comment"> *  Unless required by applicable law or agreed to in writing,</em>
<a name="13" href="#13">13</a>  <em class="jxr_comment"> *  software distributed under the License is distributed on an</em>
<a name="14" href="#14">14</a>  <em class="jxr_comment"> *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
<a name="15" href="#15">15</a>  <em class="jxr_comment"> *  KIND, either express or implied.  See the License for the</em>
<a name="16" href="#16">16</a>  <em class="jxr_comment"> *  specific language governing permissions and limitations</em>
<a name="17" href="#17">17</a>  <em class="jxr_comment"> *  under the License.</em>
<a name="18" href="#18">18</a>  <em class="jxr_comment"> *</em>
<a name="19" href="#19">19</a>  <em class="jxr_comment"> */</em>
<a name="20" href="#20">20</a>  <strong class="jxr_keyword">package</strong> org.apache.mina.util;
<a name="21" href="#21">21</a>  
<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.util.Collection;
<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.util.HashMap;
<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.util.Set;
<a name="26" href="#26">26</a>  
<a name="27" href="#27">27</a>  <em class="jxr_javadoccomment">/**</em>
<a name="28" href="#28">28</a>  <em class="jxr_javadoccomment"> * A thread-safe version of {@link Map} in which all operations that change the</em>
<a name="29" href="#29">29</a>  <em class="jxr_javadoccomment"> * Map are implemented by making a new copy of the underlying Map.</em>
<a name="30" href="#30">30</a>  <em class="jxr_javadoccomment"> *</em>
<a name="31" href="#31">31</a>  <em class="jxr_javadoccomment"> * While the creation of a new Map can be expensive, this class is designed for</em>
<a name="32" href="#32">32</a>  <em class="jxr_javadoccomment"> * cases in which the primary function is to read data from the Map, not to</em>
<a name="33" href="#33">33</a>  <em class="jxr_javadoccomment"> * modify the Map.  Therefore the operations that do not cause a change to this</em>
<a name="34" href="#34">34</a>  <em class="jxr_javadoccomment"> * class happen quickly and concurrently.</em>
<a name="35" href="#35">35</a>  <em class="jxr_javadoccomment"> *</em>
<a name="36" href="#36">36</a>  <em class="jxr_javadoccomment"> * @author The Apache MINA Project (dev@mina.apache.org)</em>
<a name="37" href="#37">37</a>  <em class="jxr_javadoccomment"> */</em>
<a name="38" href="#38">38</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> CopyOnWriteMap&lt;K, V&gt; implements Map&lt;K, V&gt;, Cloneable {
<a name="39" href="#39">39</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">volatile</strong> Map&lt;K, V&gt; internalMap;
<a name="40" href="#40">40</a>  
<a name="41" href="#41">41</a>      <em class="jxr_javadoccomment">/**</em>
<a name="42" href="#42">42</a>  <em class="jxr_javadoccomment">     * Creates a new instance of CopyOnWriteMap.</em>
<a name="43" href="#43">43</a>  <em class="jxr_javadoccomment">     *</em>
<a name="44" href="#44">44</a>  <em class="jxr_javadoccomment">     */</em>
<a name="45" href="#45">45</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/mina/util/CopyOnWriteMap.html">CopyOnWriteMap</a>() {
<a name="46" href="#46">46</a>          internalMap = <strong class="jxr_keyword">new</strong> HashMap&lt;K, V&gt;();
<a name="47" href="#47">47</a>      }
<a name="48" href="#48">48</a>  
<a name="49" href="#49">49</a>      <em class="jxr_javadoccomment">/**</em>
<a name="50" href="#50">50</a>  <em class="jxr_javadoccomment">     * Creates a new instance of CopyOnWriteMap with the specified initial size</em>
<a name="51" href="#51">51</a>  <em class="jxr_javadoccomment">     *</em>
<a name="52" href="#52">52</a>  <em class="jxr_javadoccomment">     * @param initialCapacity</em>
<a name="53" href="#53">53</a>  <em class="jxr_javadoccomment">     *  The initial size of the Map.</em>
<a name="54" href="#54">54</a>  <em class="jxr_javadoccomment">     */</em>
<a name="55" href="#55">55</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/mina/util/CopyOnWriteMap.html">CopyOnWriteMap</a>(<strong class="jxr_keyword">int</strong> initialCapacity) {
<a name="56" href="#56">56</a>          internalMap = <strong class="jxr_keyword">new</strong> HashMap&lt;K, V&gt;(initialCapacity);
<a name="57" href="#57">57</a>      }
<a name="58" href="#58">58</a>  
<a name="59" href="#59">59</a>      <em class="jxr_javadoccomment">/**</em>
<a name="60" href="#60">60</a>  <em class="jxr_javadoccomment">     * Creates a new instance of CopyOnWriteMap in which the</em>
<a name="61" href="#61">61</a>  <em class="jxr_javadoccomment">     * initial data being held by this map is contained in</em>
<a name="62" href="#62">62</a>  <em class="jxr_javadoccomment">     * the supplied map.</em>
<a name="63" href="#63">63</a>  <em class="jxr_javadoccomment">     *</em>
<a name="64" href="#64">64</a>  <em class="jxr_javadoccomment">     * @param data</em>
<a name="65" href="#65">65</a>  <em class="jxr_javadoccomment">     *  A Map containing the initial contents to be placed into</em>
<a name="66" href="#66">66</a>  <em class="jxr_javadoccomment">     *  this class.</em>
<a name="67" href="#67">67</a>  <em class="jxr_javadoccomment">     */</em>
<a name="68" href="#68">68</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/mina/util/CopyOnWriteMap.html">CopyOnWriteMap</a>(Map&lt;K, V&gt; data) {
<a name="69" href="#69">69</a>          internalMap = <strong class="jxr_keyword">new</strong> HashMap&lt;K, V&gt;(data);
<a name="70" href="#70">70</a>      }
<a name="71" href="#71">71</a>  
<a name="72" href="#72">72</a>      <em class="jxr_javadoccomment">/**</em>
<a name="73" href="#73">73</a>  <em class="jxr_javadoccomment">     * Adds the provided key and value to this map.</em>
<a name="74" href="#74">74</a>  <em class="jxr_javadoccomment">     *</em>
<a name="75" href="#75">75</a>  <em class="jxr_javadoccomment">     * @see java.util.Map#put(java.lang.Object, java.lang.Object)</em>
<a name="76" href="#76">76</a>  <em class="jxr_javadoccomment">     */</em>
<a name="77" href="#77">77</a>      <strong class="jxr_keyword">public</strong> V put(K key, V value) {
<a name="78" href="#78">78</a>          <strong class="jxr_keyword">synchronized</strong> (<strong class="jxr_keyword">this</strong>) {
<a name="79" href="#79">79</a>              Map&lt;K, V&gt; newMap = <strong class="jxr_keyword">new</strong> HashMap&lt;K, V&gt;(internalMap);
<a name="80" href="#80">80</a>              V val = newMap.put(key, value);
<a name="81" href="#81">81</a>              internalMap = newMap;
<a name="82" href="#82">82</a>              <strong class="jxr_keyword">return</strong> val;
<a name="83" href="#83">83</a>          }
<a name="84" href="#84">84</a>      }
<a name="85" href="#85">85</a>  
<a name="86" href="#86">86</a>      <em class="jxr_javadoccomment">/**</em>
<a name="87" href="#87">87</a>  <em class="jxr_javadoccomment">     * Removed the value and key from this map based on the</em>
<a name="88" href="#88">88</a>  <em class="jxr_javadoccomment">     * provided key.</em>
<a name="89" href="#89">89</a>  <em class="jxr_javadoccomment">     *</em>
<a name="90" href="#90">90</a>  <em class="jxr_javadoccomment">     * @see java.util.Map#remove(java.lang.Object)</em>
<a name="91" href="#91">91</a>  <em class="jxr_javadoccomment">     */</em>
<a name="92" href="#92">92</a>      <strong class="jxr_keyword">public</strong> V remove(Object key) {
<a name="93" href="#93">93</a>          <strong class="jxr_keyword">synchronized</strong> (<strong class="jxr_keyword">this</strong>) {
<a name="94" href="#94">94</a>              Map&lt;K, V&gt; newMap = <strong class="jxr_keyword">new</strong> HashMap&lt;K, V&gt;(internalMap);
<a name="95" href="#95">95</a>              V val = newMap.remove(key);
<a name="96" href="#96">96</a>              internalMap = newMap;
<a name="97" href="#97">97</a>              <strong class="jxr_keyword">return</strong> val;
<a name="98" href="#98">98</a>          }
<a name="99" href="#99">99</a>      }
<a name="100" href="#100">100</a> 
<a name="101" href="#101">101</a>     <em class="jxr_javadoccomment">/**</em>
<a name="102" href="#102">102</a> <em class="jxr_javadoccomment">     * Inserts all the keys and values contained in the</em>
<a name="103" href="#103">103</a> <em class="jxr_javadoccomment">     * provided map to this map.</em>
<a name="104" href="#104">104</a> <em class="jxr_javadoccomment">     *</em>
<a name="105" href="#105">105</a> <em class="jxr_javadoccomment">     * @see java.util.Map#putAll(java.util.Map)</em>
<a name="106" href="#106">106</a> <em class="jxr_javadoccomment">     */</em>
<a name="107" href="#107">107</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> putAll(Map&lt;? <strong class="jxr_keyword">extends</strong> K, ? <strong class="jxr_keyword">extends</strong> V&gt; newData) {
<a name="108" href="#108">108</a>         <strong class="jxr_keyword">synchronized</strong> (<strong class="jxr_keyword">this</strong>) {
<a name="109" href="#109">109</a>             Map&lt;K, V&gt; newMap = <strong class="jxr_keyword">new</strong> HashMap&lt;K, V&gt;(internalMap);
<a name="110" href="#110">110</a>             newMap.putAll(newData);
<a name="111" href="#111">111</a>             internalMap = newMap;
<a name="112" href="#112">112</a>         }
<a name="113" href="#113">113</a>     }
<a name="114" href="#114">114</a> 
<a name="115" href="#115">115</a>     <em class="jxr_javadoccomment">/**</em>
<a name="116" href="#116">116</a> <em class="jxr_javadoccomment">     * Removes all entries in this map.</em>
<a name="117" href="#117">117</a> <em class="jxr_javadoccomment">     *</em>
<a name="118" href="#118">118</a> <em class="jxr_javadoccomment">     * @see java.util.Map#clear()</em>
<a name="119" href="#119">119</a> <em class="jxr_javadoccomment">     */</em>
<a name="120" href="#120">120</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> clear() {
<a name="121" href="#121">121</a>         <strong class="jxr_keyword">synchronized</strong> (<strong class="jxr_keyword">this</strong>) {
<a name="122" href="#122">122</a>             internalMap = <strong class="jxr_keyword">new</strong> HashMap&lt;K, V&gt;();
<a name="123" href="#123">123</a>         }
<a name="124" href="#124">124</a>     }
<a name="125" href="#125">125</a> 
<a name="126" href="#126">126</a>     <em class="jxr_comment">// ==============================================</em>
<a name="127" href="#127">127</a>     <em class="jxr_comment">// ==== Below are methods that do not modify ====</em>
<a name="128" href="#128">128</a>     <em class="jxr_comment">// ====         the internal Maps            ====</em>
<a name="129" href="#129">129</a>     <em class="jxr_comment">// ==============================================</em>
<a name="130" href="#130">130</a>     <em class="jxr_javadoccomment">/**</em>
<a name="131" href="#131">131</a> <em class="jxr_javadoccomment">     * Returns the number of key/value pairs in this map.</em>
<a name="132" href="#132">132</a> <em class="jxr_javadoccomment">     *</em>
<a name="133" href="#133">133</a> <em class="jxr_javadoccomment">     * @see java.util.Map#size()</em>
<a name="134" href="#134">134</a> <em class="jxr_javadoccomment">     */</em>
<a name="135" href="#135">135</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">int</strong> size() {
<a name="136" href="#136">136</a>         <strong class="jxr_keyword">return</strong> internalMap.size();
<a name="137" href="#137">137</a>     }
<a name="138" href="#138">138</a> 
<a name="139" href="#139">139</a>     <em class="jxr_javadoccomment">/**</em>
<a name="140" href="#140">140</a> <em class="jxr_javadoccomment">     * Returns true if this map is empty, otherwise false.</em>
<a name="141" href="#141">141</a> <em class="jxr_javadoccomment">     *</em>
<a name="142" href="#142">142</a> <em class="jxr_javadoccomment">     * @see java.util.Map#isEmpty()</em>
<a name="143" href="#143">143</a> <em class="jxr_javadoccomment">     */</em>
<a name="144" href="#144">144</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> isEmpty() {
<a name="145" href="#145">145</a>         <strong class="jxr_keyword">return</strong> internalMap.isEmpty();
<a name="146" href="#146">146</a>     }
<a name="147" href="#147">147</a> 
<a name="148" href="#148">148</a>     <em class="jxr_javadoccomment">/**</em>
<a name="149" href="#149">149</a> <em class="jxr_javadoccomment">     * Returns true if this map contains the provided key, otherwise</em>
<a name="150" href="#150">150</a> <em class="jxr_javadoccomment">     * this method return false.</em>
<a name="151" href="#151">151</a> <em class="jxr_javadoccomment">     *</em>
<a name="152" href="#152">152</a> <em class="jxr_javadoccomment">     * @see java.util.Map#containsKey(java.lang.Object)</em>
<a name="153" href="#153">153</a> <em class="jxr_javadoccomment">     */</em>
<a name="154" href="#154">154</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> containsKey(Object key) {
<a name="155" href="#155">155</a>         <strong class="jxr_keyword">return</strong> internalMap.containsKey(key);
<a name="156" href="#156">156</a>     }
<a name="157" href="#157">157</a> 
<a name="158" href="#158">158</a>     <em class="jxr_javadoccomment">/**</em>
<a name="159" href="#159">159</a> <em class="jxr_javadoccomment">     * Returns true if this map contains the provided value, otherwise</em>
<a name="160" href="#160">160</a> <em class="jxr_javadoccomment">     * this method returns false.</em>
<a name="161" href="#161">161</a> <em class="jxr_javadoccomment">     *</em>
<a name="162" href="#162">162</a> <em class="jxr_javadoccomment">     * @see java.util.Map#containsValue(java.lang.Object)</em>
<a name="163" href="#163">163</a> <em class="jxr_javadoccomment">     */</em>
<a name="164" href="#164">164</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> containsValue(Object value) {
<a name="165" href="#165">165</a>         <strong class="jxr_keyword">return</strong> internalMap.containsValue(value);
<a name="166" href="#166">166</a>     }
<a name="167" href="#167">167</a> 
<a name="168" href="#168">168</a>     <em class="jxr_javadoccomment">/**</em>
<a name="169" href="#169">169</a> <em class="jxr_javadoccomment">     * Returns the value associated with the provided key from this</em>
<a name="170" href="#170">170</a> <em class="jxr_javadoccomment">     * map.</em>
<a name="171" href="#171">171</a> <em class="jxr_javadoccomment">     *</em>
<a name="172" href="#172">172</a> <em class="jxr_javadoccomment">     * @see java.util.Map#get(java.lang.Object)</em>
<a name="173" href="#173">173</a> <em class="jxr_javadoccomment">     */</em>
<a name="174" href="#174">174</a>     <strong class="jxr_keyword">public</strong> V get(Object key) {
<a name="175" href="#175">175</a>         <strong class="jxr_keyword">return</strong> internalMap.get(key);
<a name="176" href="#176">176</a>     }
<a name="177" href="#177">177</a> 
<a name="178" href="#178">178</a>     <em class="jxr_javadoccomment">/**</em>
<a name="179" href="#179">179</a> <em class="jxr_javadoccomment">     * This method will return a read-only {@link Set}.</em>
<a name="180" href="#180">180</a> <em class="jxr_javadoccomment">     */</em>
<a name="181" href="#181">181</a>     <strong class="jxr_keyword">public</strong> Set&lt;K&gt; keySet() {
<a name="182" href="#182">182</a>         <strong class="jxr_keyword">return</strong> internalMap.keySet();
<a name="183" href="#183">183</a>     }
<a name="184" href="#184">184</a> 
<a name="185" href="#185">185</a>     <em class="jxr_javadoccomment">/**</em>
<a name="186" href="#186">186</a> <em class="jxr_javadoccomment">     * This method will return a read-only {@link Collection}.</em>
<a name="187" href="#187">187</a> <em class="jxr_javadoccomment">     */</em>
<a name="188" href="#188">188</a>     <strong class="jxr_keyword">public</strong> Collection&lt;V&gt; values() {
<a name="189" href="#189">189</a>         <strong class="jxr_keyword">return</strong> internalMap.values();
<a name="190" href="#190">190</a>     }
<a name="191" href="#191">191</a> 
<a name="192" href="#192">192</a>     <em class="jxr_javadoccomment">/**</em>
<a name="193" href="#193">193</a> <em class="jxr_javadoccomment">     * This method will return a read-only {@link Set}.</em>
<a name="194" href="#194">194</a> <em class="jxr_javadoccomment">     */</em>
<a name="195" href="#195">195</a>     <strong class="jxr_keyword">public</strong> Set&lt;Entry&lt;K, V&gt;&gt; entrySet() {
<a name="196" href="#196">196</a>         <strong class="jxr_keyword">return</strong> internalMap.entrySet();
<a name="197" href="#197">197</a>     }
<a name="198" href="#198">198</a> 
<a name="199" href="#199">199</a>     @Override
<a name="200" href="#200">200</a>     <strong class="jxr_keyword">public</strong> Object clone() {
<a name="201" href="#201">201</a>         <strong class="jxr_keyword">try</strong> {
<a name="202" href="#202">202</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">super</strong>.clone();
<a name="203" href="#203">203</a>         } <strong class="jxr_keyword">catch</strong> (CloneNotSupportedException e) {
<a name="204" href="#204">204</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> InternalError();
<a name="205" href="#205">205</a>         }
<a name="206" href="#206">206</a>     }
<a name="207" href="#207">207</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

