Javolution 6.0.0 java
FilteredCollectionImpl.java
Go to the documentation of this file.
1
/*
2
* Javolution - Java(TM) Solution for Real-Time and Embedded Systems
3
* Copyright (C) 2012 - Javolution (http://javolution.org/)
4
* All rights reserved.
5
*
6
* Permission to use, copy, modify, and distribute this software is
7
* freely granted, provided that this notice is preserved.
8
*/
9
package
javolution.util.internal.collection;
10
11
import
java.util.Iterator;
12
13
import
javolution
.
util
.
function
.
Equality
;
14
import
javolution
.
util
.
function
.
Predicate
;
15
import
javolution
.
util
.
service
.
CollectionService
;
16
20
public
class
FilteredCollectionImpl
<E>
extends
CollectionView
<E> {
21
23
private
class
IteratorImpl
implements
Iterator<E> {
24
25
private
boolean
ahead
;
// Indicates if the iterator is ahead (on next element)
26
private
final
Predicate<? super E>
filter
;
27
private
E
next
;
28
private
final
Iterator<E>
targetIterator
;
29
30
public
IteratorImpl
(
Predicate<? super E>
filter
) {
31
this.filter =
filter
;
32
targetIterator
=
target
().iterator();
33
}
34
35
@Override
36
public
boolean
hasNext
() {
37
if
(
ahead
)
return
true
;
38
while
(
targetIterator
.hasNext()) {
39
next
=
targetIterator
.next();
40
if
(
filter
.
test
(
next
)) {
41
ahead
=
true
;
42
return
true
;
43
}
44
}
45
return
false
;
46
}
47
48
@Override
49
public
E
next
() {
50
hasNext
();
// Moves ahead.
51
ahead
=
false
;
52
return
next
;
53
}
54
55
@Override
56
public
void
remove
() {
57
targetIterator
.remove();
58
}
59
}
60
61
private
static
final
long
serialVersionUID
= 0x600L;
// Version.
62
protected
final
Predicate<? super E>
filter
;
63
64
public
FilteredCollectionImpl
(
CollectionService<E>
target
,
65
Predicate<? super E>
filter
) {
66
super(
target
);
67
this.filter =
filter
;
68
}
69
70
@Override
71
public
boolean
add
(E element) {
72
if
(!
filter
.
test
(element))
return
false
;
73
return
target
().add(element);
74
}
75
76
@Override
77
public
Equality<? super E>
comparator
() {
78
return
target
().comparator();
79
}
80
81
@SuppressWarnings(
"unchecked"
)
82
@Override
83
public
boolean
contains
(Object o) {
84
if
(!
filter
.
test
((E) o))
return
false
;
85
return
target
().contains(o);
86
}
87
88
@Override
89
public
Iterator<E>
iterator
() {
90
return
new
IteratorImpl
(
filter
);
91
}
92
93
@SuppressWarnings(
"unchecked"
)
94
@Override
95
public
boolean
remove
(Object o) {
96
if
(!
filter
.
test
((E) o))
return
false
;
97
return
target
().remove(o);
98
}
99
}
javolution.util.internal.collection.FilteredCollectionImpl.comparator
Equality<? super E > comparator()
Definition:
FilteredCollectionImpl.java:77
javolution.util.internal.collection.FilteredCollectionImpl.iterator
Iterator< E > iterator()
Definition:
FilteredCollectionImpl.java:89
javolution
javolution.util.service
Definition:
BitSetService.java:9
javolution.util.internal.collection.FilteredCollectionImpl.IteratorImpl
Definition:
FilteredCollectionImpl.java:23
javolution.util.internal.collection.CollectionView
Definition:
CollectionView.java:29
javolution.util.internal.collection.FilteredCollectionImpl.IteratorImpl.IteratorImpl
IteratorImpl(Predicate<? super E > filter)
Definition:
FilteredCollectionImpl.java:30
javolution.util.internal.collection.FilteredCollectionImpl.IteratorImpl.next
E next
Definition:
FilteredCollectionImpl.java:27
javolution.util.internal.collection.FilteredCollectionImpl.IteratorImpl.hasNext
boolean hasNext()
Definition:
FilteredCollectionImpl.java:36
javolution.util.internal.collection.FilteredCollectionImpl.IteratorImpl.ahead
boolean ahead
Definition:
FilteredCollectionImpl.java:25
javolution.util.service.CollectionService
Definition:
CollectionService.java:25
javolution.util.internal.collection.FilteredCollectionImpl.IteratorImpl.targetIterator
final Iterator< E > targetIterator
Definition:
FilteredCollectionImpl.java:28
javolution.util.function.Equality
Definition:
Equality.java:39
javolution.util.internal.collection.FilteredCollectionImpl.FilteredCollectionImpl
FilteredCollectionImpl(CollectionService< E > target, Predicate<? super E > filter)
Definition:
FilteredCollectionImpl.java:64
javolution.util.internal.collection.FilteredCollectionImpl.IteratorImpl.next
E next()
Definition:
FilteredCollectionImpl.java:49
javolution.util.internal.collection.FilteredCollectionImpl.add
boolean add(E element)
Definition:
FilteredCollectionImpl.java:71
javolution.util.internal.collection.FilteredCollectionImpl.contains
boolean contains(Object o)
Definition:
FilteredCollectionImpl.java:83
javolution.util.function.Predicate
Definition:
Predicate.java:25
javolution.util.internal.collection.CollectionView.target
CollectionService< E > target
Definition:
CollectionView.java:33
javolution.util.function
Definition:
Consumer.java:9
javolution.util.function.Predicate.test
boolean test(T param)
javolution.util.internal.collection.FilteredCollectionImpl.filter
final Predicate<? super E > filter
Definition:
FilteredCollectionImpl.java:62
javolution.util.internal.collection.FilteredCollectionImpl.IteratorImpl.filter
final Predicate<? super E > filter
Definition:
FilteredCollectionImpl.java:26
javolution.util.internal.collection.FilteredCollectionImpl.serialVersionUID
static final long serialVersionUID
Definition:
FilteredCollectionImpl.java:61
javolution.util.internal.collection.FilteredCollectionImpl
Definition:
FilteredCollectionImpl.java:20
javolution.util
Definition:
FastBitSet.java:9
core-java
src
main
java
javolution
util
internal
collection
FilteredCollectionImpl.java
Generated by
1.8.18