Javolution 6.0.0 java
MappedCollectionImpl.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 
17 
21 public class MappedCollectionImpl<E, R> extends CollectionView<R> {
22 
24  private class IteratorImpl implements Iterator<R> {
25  private final Iterator<E> targetIterator;
26 
27  @SuppressWarnings("unchecked")
28  public IteratorImpl() {
29  targetIterator = (Iterator<E>) target().iterator();
30  }
31 
32  @Override
33  public boolean hasNext() {
34  return targetIterator.hasNext();
35  }
36 
37  @Override
38  public R next() {
39  return function.apply(targetIterator.next());
40  }
41 
42  @Override
43  public void remove() {
44  targetIterator.remove();
45  }
46 
47  }
48 
49  private static final long serialVersionUID = 0x600L; // Version.
50  protected final Function<? super E, ? extends R> function;
51 
52  @SuppressWarnings("unchecked")
54  Function<? super E, ? extends R> function) {
55  super((CollectionService<R>) target); // Beware target is of type <E>
56  this.function = function;
57  }
58 
59  @Override
60  public boolean add(R element) {
61  throw new UnsupportedOperationException(
62  "New elements cannot be added to mapped views");
63  }
64 
65  @Override
66  public void clear() {
67  target().clear();
68  }
69 
70  @Override
72  return Equalities.STANDARD;
73  }
74 
75  @Override
76  public boolean isEmpty() {
77  return target().isEmpty();
78  }
79 
80  @Override
81  public Iterator<R> iterator() {
82  return new IteratorImpl();
83  }
84 
85  @Override
86  public int size() {
87  return target().size();
88  }
89 
90 }
javolution.util.function.Equalities.STANDARD
static final Equality< Object > STANDARD
Definition: Equalities.java:31
javolution
javolution.util.service
Definition: BitSetService.java:9
javolution.util.internal.collection.CollectionView
Definition: CollectionView.java:29
javolution.util.internal.collection.MappedCollectionImpl.function
final Function<? super E, ? extends R > function
Definition: MappedCollectionImpl.java:50
javolution.util.internal.collection.MappedCollectionImpl
Definition: MappedCollectionImpl.java:21
javolution.util.internal.collection.MappedCollectionImpl.isEmpty
boolean isEmpty()
Definition: MappedCollectionImpl.java:76
javolution.util.internal.collection.MappedCollectionImpl.IteratorImpl
Definition: MappedCollectionImpl.java:24
javolution.util.service.CollectionService
Definition: CollectionService.java:25
javolution.util.internal.collection.MappedCollectionImpl.serialVersionUID
static final long serialVersionUID
Definition: MappedCollectionImpl.java:49
javolution.util.internal.collection.MappedCollectionImpl.add
boolean add(R element)
Definition: MappedCollectionImpl.java:60
javolution.util.internal.collection.MappedCollectionImpl.clear
void clear()
Definition: MappedCollectionImpl.java:66
javolution.util.function.Equality
Definition: Equality.java:39
javolution.util.function.Equalities
Definition: Equalities.java:20
javolution.util.internal.collection.MappedCollectionImpl.IteratorImpl.targetIterator
final Iterator< E > targetIterator
Definition: MappedCollectionImpl.java:25
javolution.util.internal.collection.CollectionView< R >::target
CollectionService< E > target
Definition: CollectionView.java:33
javolution.util.internal.collection.MappedCollectionImpl.iterator
Iterator< R > iterator()
Definition: MappedCollectionImpl.java:81
javolution.util.function
Definition: Consumer.java:9
javolution.util.internal.collection.MappedCollectionImpl.IteratorImpl.hasNext
boolean hasNext()
Definition: MappedCollectionImpl.java:33
javolution.util.internal.collection.MappedCollectionImpl.size
int size()
Definition: MappedCollectionImpl.java:86
javolution.util.internal.collection.MappedCollectionImpl.IteratorImpl.next
R next()
Definition: MappedCollectionImpl.java:38
javolution.util.function.Function
Definition: Function.java:22
javolution.util.internal.collection.MappedCollectionImpl.comparator
Equality<? super R > comparator()
Definition: MappedCollectionImpl.java:71
javolution.util
Definition: FastBitSet.java:9