package org.rr.commons.collection; import java.util.AbstractList; import java.util.List; /** * List that allows to transform it values * * @param <T> The target, transformed type. * @param <S> The source type. */ public abstract class TransformValueList<S, T> extends AbstractList<T> { List<S> list; public TransformValueList(List<S> sourceValuesList) { this.list = sourceValuesList; } public abstract T transform(S source); @Override public T get(int index) { S source = list.get(index); return transform(source); } @Override public int size() { return list.size(); } }