Transpiled version (9228L) is out of date.
1 | persistable sclass NotifyingCollection<E> extends AbstractCollection<E> implements Collection<E> {
|
2 | Collection<E> c; // Backing Collection |
3 | |
4 | *() {} // for persistence
|
5 | *(Collection<E> *c) {}
|
6 | |
7 | public int size() {
|
8 | synchronized (this) {return c.size();}
|
9 | } |
10 | public boolean isEmpty() {
|
11 | synchronized (this) {return c.isEmpty();}
|
12 | } |
13 | public boolean contains(Object o) {
|
14 | synchronized (this) {return c.contains(o);}
|
15 | } |
16 | public Object[] toArray() {
|
17 | synchronized (this) {return c.toArray();}
|
18 | } |
19 | public <T> T[] toArray(T[] a) {
|
20 | synchronized (this) {return c.toArray(a);}
|
21 | } |
22 | |
23 | public Iterator<E> iterator() {
|
24 | return c.iterator(); // caller should not use Iterator.remove() |
25 | } |
26 | |
27 | public boolean add(E e) {
|
28 | synchronized (this) { beforeChange(); if (!c.add(e)) false; } change(); true;
|
29 | } |
30 | public boolean remove(Object o) {
|
31 | synchronized (this) { beforeChange(); if (!c.remove(o)) false;} change(); true;
|
32 | } |
33 | |
34 | public boolean containsAll(Collection<?> coll) {
|
35 | synchronized (this) {return c.containsAll(coll);}
|
36 | } |
37 | public boolean addAll(Collection<? extends E> coll) {
|
38 | synchronized (this) { beforeChange(); if (!c.addAll(coll)) false;} change(); true;
|
39 | } |
40 | public boolean removeAll(Collection<?> coll) {
|
41 | synchronized (this) { beforeChange(); if (!c.removeAll(coll)) false;} change(); true;
|
42 | } |
43 | public boolean retainAll(Collection<?> coll) {
|
44 | synchronized (this) { beforeChange(); if (!c.retainAll(coll)) false;} change(); true;
|
45 | } |
46 | public void clear() {
|
47 | synchronized (this) { beforeChange(); c.clear();} change();
|
48 | } |
49 | public String toString() {
|
50 | synchronized (this) {return c.toString();}
|
51 | } |
52 | |
53 | /*public void forEach(Consumer<? super E> consumer) {
|
54 | synchronized (this) {c.forEach(consumer);}
|
55 | }*/ |
56 | |
57 | /*public boolean removeIf(Predicate<? super E> filter) {
|
58 | synchronized (this) {return c.removeIf(filter);}
|
59 | }*/ |
60 | @Override |
61 | public Spliterator<E> spliterator() {
|
62 | return c.spliterator(); // Must be manually synched by user! |
63 | } |
64 | |
65 | /*public Stream<E> stream() {
|
66 | return c.stream(); // Must be manually synched by user! |
67 | }*/ |
68 | |
69 | /*public Stream<E> parallelStream() {
|
70 | return c.parallelStream(); // Must be manually synched by user! |
71 | }*/ |
72 | |
73 | void beforeChange() {}
|
74 | void change() {}
|
75 | |
76 | Collection<E> unwrap() { ret c; }
|
77 | } |
Began life as a copy of #1009405
download show line numbers debug dex old transpilations
Travelled to 15 computer(s): aoiabmzegqzx, bhatertpkbcr, cbybwowwnfue, cfunsshuasjs, gwrvuhgaqvyk, ishqpsrjomds, lpdgvwnxivlt, mowyntqkapby, mqqgnosmbjvj, onxytkatvevr, pyentgdyhuwx, pzhvpgtvlbxg, tslmcundralx, tvejysmllsmz, vouqrxazstgt
No comments. add comment
| Snippet ID: | #1011343 |
| Snippet name: | NotifyingCollection - also synchronizes |
| Eternal ID of this version: | #1011343/7 |
| Text MD5: | 249cb9bdb7591414caaf150409f86f2c |
| Author: | stefan |
| Category: | javax |
| Type: | JavaX fragment (include) |
| Public (visible to everyone): | Yes |
| Archived (hidden from active list): | No |
| Created/modified: | 2022-10-07 18:15:41 |
| Source code size: | 2432 bytes / 77 lines |
| Pitched / IR pitched: | No / No |
| Views / Downloads: | 763 / 2307 |
| Version history: | 6 change(s) |
| Referenced in: | [show references] |