23
23
*/
24
24
package org .mini2Dx .minibus .util ;
25
25
26
+ import org .mini2Dx .lockprovider .ReadWriteLock ;
26
27
import org .mini2Dx .minibus .MessageBus ;
27
28
28
29
import java .util .*;
29
- import java .util .concurrent .locks .ReadWriteLock ;
30
30
31
31
public class SnapshotArrayList <T > implements List <T > {
32
32
private final Object iteratorLock = new Object ();
@@ -59,9 +59,9 @@ private void ensureCapacity(int capacity) {
59
59
@ Override
60
60
public int size () {
61
61
final int result ;
62
- lock .readLock (). lock ();
62
+ lock .lockRead ();
63
63
result = size ;
64
- lock .readLock (). unlock ();
64
+ lock .unlockRead ();
65
65
return result ;
66
66
}
67
67
@@ -73,14 +73,14 @@ public boolean isEmpty() {
73
73
@ Override
74
74
public boolean contains (Object o ) {
75
75
boolean result = false ;
76
- lock .readLock (). lock ();
76
+ lock .lockRead ();
77
77
for (int i = 0 ; i < size ; i ++) {
78
78
if (array [i ].equals (o )) {
79
79
result = true ;
80
80
break ;
81
81
}
82
82
}
83
- lock .readLock (). unlock ();
83
+ lock .unlockRead ();
84
84
return result ;
85
85
}
86
86
@@ -94,9 +94,9 @@ public Iterator<T> iterator() {
94
94
result = iteratorPool .poll ();
95
95
}
96
96
}
97
- lock .readLock (). lock ();
97
+ lock .lockRead ();
98
98
result .init (array , size );
99
- lock .readLock (). unlock ();
99
+ lock .unlockRead ();
100
100
return result ;
101
101
}
102
102
@@ -112,19 +112,19 @@ public <T1> T1[] toArray(T1[] a) {
112
112
113
113
@ Override
114
114
public boolean add (T t ) {
115
- lock .writeLock (). lock ();
115
+ lock .lockWrite ();
116
116
ensureCapacity (size + 1 );
117
117
array [size ] = t ;
118
118
size ++;
119
- lock .writeLock (). unlock ();
119
+ lock .unlockWrite ();
120
120
return true ;
121
121
}
122
122
123
123
@ Override
124
124
public boolean remove (Object o ) {
125
125
boolean result = false ;
126
126
127
- lock .writeLock (). lock ();
127
+ lock .lockWrite ();
128
128
for (int i = 0 ; i < size ; i ++) {
129
129
if (!array [i ].equals (o )) {
130
130
continue ;
@@ -141,7 +141,7 @@ public boolean remove(Object o) {
141
141
result = true ;
142
142
break ;
143
143
}
144
- lock .writeLock (). unlock ();
144
+ lock .unlockWrite ();
145
145
146
146
return result ;
147
147
}
@@ -158,9 +158,9 @@ public boolean containsAll(Collection<?> c) {
158
158
159
159
@ Override
160
160
public boolean addAll (Collection <? extends T > c ) {
161
- lock .writeLock (). lock ();
161
+ lock .lockWrite ();
162
162
ensureCapacity (size + c .size ());
163
- lock .writeLock (). unlock ();
163
+ lock .unlockWrite ();
164
164
for (T o : c ) {
165
165
add (o );
166
166
}
@@ -188,28 +188,28 @@ public boolean retainAll(Collection<?> c) {
188
188
189
189
@ Override
190
190
public void clear () {
191
- lock .writeLock (). lock ();
191
+ lock .lockWrite ();
192
192
for (int i = 0 ; i < array .length ; i ++) {
193
193
array [i ] = null ;
194
194
}
195
195
size = 0 ;
196
- lock .writeLock (). unlock ();
196
+ lock .unlockWrite ();
197
197
}
198
198
199
199
@ Override
200
200
public T get (int index ) {
201
201
T result = null ;
202
- lock .readLock (). lock ();
202
+ lock .lockRead ();
203
203
if (index < 0 ) {
204
- lock .readLock (). unlock ();
204
+ lock .unlockRead ();
205
205
throw new IndexOutOfBoundsException ();
206
206
}
207
207
if (index >= size ) {
208
- lock .readLock (). unlock ();
208
+ lock .unlockRead ();
209
209
throw new IndexOutOfBoundsException ();
210
210
}
211
211
result = (T ) array [index ];
212
- lock .readLock (). unlock ();
212
+ lock .unlockRead ();
213
213
return result ;
214
214
}
215
215
@@ -225,16 +225,16 @@ public void add(int index, T element) {
225
225
226
226
private T remove (int index , boolean throwException ) {
227
227
Object result = null ;
228
- lock .writeLock (). lock ();
228
+ lock .lockWrite ();
229
229
if (index < 0 ) {
230
- lock .writeLock (). unlock ();
230
+ lock .unlockWrite ();
231
231
if (throwException ) {
232
232
throw new IndexOutOfBoundsException ();
233
233
}
234
234
return null ;
235
235
}
236
236
if (index >= size ) {
237
- lock .writeLock (). unlock ();
237
+ lock .unlockWrite ();
238
238
if (throwException ) {
239
239
throw new IndexOutOfBoundsException ();
240
240
}
@@ -250,7 +250,7 @@ private T remove(int index, boolean throwException) {
250
250
}
251
251
252
252
size --;
253
- lock .writeLock (). unlock ();
253
+ lock .unlockWrite ();
254
254
return (T ) result ;
255
255
}
256
256
@@ -265,27 +265,27 @@ public T remove(int index) {
265
265
266
266
@ Override
267
267
public int indexOf (Object o ) {
268
- lock .readLock (). lock ();
268
+ lock .lockRead ();
269
269
for (int i = 0 ; i < size ; i ++) {
270
270
if (array [i ].equals (o )) {
271
- lock .readLock (). unlock ();
271
+ lock .unlockRead ();
272
272
return i ;
273
273
}
274
274
}
275
- lock .readLock (). unlock ();
275
+ lock .unlockRead ();
276
276
return -1 ;
277
277
}
278
278
279
279
@ Override
280
280
public int lastIndexOf (Object o ) {
281
- lock .readLock (). lock ();
281
+ lock .lockRead ();
282
282
for (int i = size - 1 ; i >= 0 ; i --) {
283
283
if (array [i ].equals (o )) {
284
- lock .readLock (). unlock ();
284
+ lock .unlockRead ();
285
285
return i ;
286
286
}
287
287
}
288
- lock .readLock (). unlock ();
288
+ lock .unlockRead ();
289
289
return -1 ;
290
290
}
291
291
0 commit comments