Example usage for org.apache.commons.collections4.iterators TransformIterator TransformIterator

List of usage examples for org.apache.commons.collections4.iterators TransformIterator TransformIterator

Introduction

In this page you can find the example usage for org.apache.commons.collections4.iterators TransformIterator TransformIterator.

Prototype

public TransformIterator(final Iterator<? extends I> iterator) 

Source Link

Document

Constructs a new TransformIterator that won't transform elements from the given iterator.

Usage

From source file:com.github.helenusdriver.driver.impl.PersistedSet.java

/**
 * {@inheritDoc}/*from  w  w  w  .ja  v a  2  s  . c  o  m*/
 *
 * @author paouelle
 *
 * @see java.util.Set#iterator()
 */
@Override
public Iterator<T> iterator() {
    return new TransformIterator<PersistedValue<T, PT>, T>(set.iterator()) {
        @Override
        protected T transform(PersistedValue<T, PT> pv) {
            return pv.getDecodedValue();
        }
    };
}

From source file:com.github.helenusdriver.driver.impl.PersistedList.java

/**
 * {@inheritDoc}/*  w w w .jav a 2 s  .c  o m*/
 *
 * @author paouelle
 *
 * @see java.util.List#iterator()
 */
@Override
public Iterator<T> iterator() {
    return new TransformIterator<PersistedValue<T, PT>, T>(list.iterator()) {
        @Override
        protected T transform(PersistedValue<T, PT> pv) {
            return pv.getDecodedValue();
        }
    };
}

From source file:com.github.helenusdriver.driver.impl.PersistedMap.java

/**
 * {@inheritDoc}//from w w  w. ja  v  a 2 s .  com
 *
 * @author paouelle
 *
 * @see java.util.Map#values()
 */
@Override
public Collection<T> values() {
    if (vcol == null) {
        final Collection<PersistedValue<T, PT>> vcol = map.values();

        this.vcol = new AbstractCollection<T>() {
            @Override
            public int size() {
                return vcol.size();
            }

            @Override
            public boolean isEmpty() {
                return vcol.isEmpty();
            }

            @Override
            public Iterator<T> iterator() {
                return new TransformIterator<PersistedValue<T, PT>, T>(vcol.iterator()) {
                    @Override
                    protected T transform(PersistedValue<T, PT> pv) {
                        return pv.getDecodedValue();
                    }
                };
            }

            @Override
            public Stream<T> stream() {
                return vcol.stream().map(pv -> pv.getDecodedValue());
            }

            @Override
            public Stream<T> parallelStream() {
                return vcol.parallelStream().map(pv -> pv.getDecodedValue());
            }

            @Override
            public void clear() {
                vcol.clear();
            }

            @Override
            public String toString() {
                return vcol.toString();
            }
        };
    }
    return vcol;
}

From source file:com.github.helenusdriver.driver.impl.PersistedMap.java

/**
 * {@inheritDoc}/*from w w  w .ja va  2  s  .  c o  m*/
 *
 * @author paouelle
 *
 * @see java.util.Map#entrySet()
 */
@Override
public Set<Map.Entry<K, T>> entrySet() {
    if (eset == null) {
        final Set<Map.Entry<K, PersistedValue<T, PT>>> eset = map.entrySet();

        this.eset = new AbstractSet<Map.Entry<K, T>>() {
            @Override
            public int size() {
                return eset.size();
            }

            @Override
            public boolean isEmpty() {
                return eset.isEmpty();
            }

            @Override
            public Iterator<Map.Entry<K, T>> iterator() {
                return new TransformIterator<Map.Entry<K, PersistedValue<T, PT>>, Map.Entry<K, T>>(
                        eset.iterator()) {
                    @Override
                    protected Map.Entry<K, T> transform(Map.Entry<K, PersistedValue<T, PT>> me) {
                        return new Entry(me);
                    }
                };
            }

            @Override
            public Stream<Map.Entry<K, T>> stream() {
                return eset.stream().map(me -> new Entry(me));
            }

            @Override
            public Stream<Map.Entry<K, T>> parallelStream() {
                return eset.parallelStream().map(me -> new Entry(me));
            }

            @Override
            public boolean remove(Object o) {
                if (!(o instanceof Map.Entry)) {
                    return false;
                }
                @SuppressWarnings("unchecked")
                final Map.Entry<K, T> me = (Map.Entry<K, T>) o;

                return (map.remove(me.getKey()) != null);
            }

            @Override
            public void clear() {
                eset.clear();
            }

            @Override
            public String toString() {
                return eset.toString();
            }
        };
    }
    return eset;
}