ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/src/test/loops/RLMap.java
(Generate patch)

Comparing jsr166/src/test/loops/RLMap.java (file contents):
Revision 1.1 by dl, Mon May 2 19:19:38 2005 UTC vs.
Revision 1.7 by jsr166, Thu Jan 15 18:34:19 2015 UTC

# Line 1 | Line 1
1 + /*
2 + * Written by Doug Lea with assistance from members of JCP JSR-166
3 + * Expert Group and released to the public domain, as explained at
4 + * http://creativecommons.org/publicdomain/zero/1.0/
5 + */
6 +
7   import java.util.*;
8   import java.util.concurrent.*;
9   import java.util.concurrent.locks.*;
10  
5
11   /**
12   * This is an incomplete implementation of a wrapper class
13   * that places read-write locks around unsynchronized Maps.
14   * Exists as a sample input for MapLoops test.
15   */
11
16   public class RLMap implements Map {
17      private final Map m;
18      private final ReentrantLock rl = new ReentrantLock();
19 <    
19 >
20      public RLMap(Map m) {
21          if (m == null)
22              throw new NullPointerException();
23          this.m = m;
24      }
25  
26 <    public RLMap() {
26 >    public RLMap() {
27          this(new TreeMap()); // use TreeMap by default
28      }
29  
30      public int size() {
31          rl.lock(); try {return m.size();} finally { rl.unlock(); }
32      }
33 <    public boolean isEmpty(){
33 >    public boolean isEmpty() {
34          rl.lock(); try {return m.isEmpty();} finally { rl.unlock(); }
35      }
36  
# Line 37 | Line 41 | public class RLMap implements Map {
41      public boolean containsKey(Object key) {
42          rl.lock(); try {return m.containsKey(key);} finally { rl.unlock(); }
43      }
44 <    public boolean containsValue(Object value){
44 >    public boolean containsValue(Object value) {
45          rl.lock(); try {return m.containsValue(value);} finally { rl.unlock(); }
46      }
47  
44
48      public Set keySet() { // Not implemented
49          return m.keySet();
50      }
51 <    
51 >
52      public Set entrySet() { // Not implemented
53          return m.entrySet();
54      }
55 <    
55 >
56      public Collection values() { // Not implemented
57          return m.values();
58      }
59 <    
59 >
60      public boolean equals(Object o) {
61          rl.lock(); try {return m.equals(o);} finally { rl.unlock(); }
62      }
# Line 64 | Line 67 | public class RLMap implements Map {
67          rl.lock(); try {return m.toString();} finally { rl.unlock(); }
68      }
69  
67
68
70      public Object put(Object key, Object value) {
71          rl.lock(); try {return m.put(key, value);} finally { rl.unlock(); }
72      }
# Line 78 | Line 79 | public class RLMap implements Map {
79      public void clear() {
80          rl.lock(); try {m.clear();} finally { rl.unlock(); }
81      }
82 <    
82 >
83   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines