package com.datascience.utils.transformations; import com.datascience.utils.ITransformation; import java.util.Collection; import java.util.LinkedList; import java.util.List; /** * @Author: konrad */ public class CollectionElementsTransform<A, B> implements ITransformation<Collection<A>, Collection<B>> { ITransformation<A, B> transformation; public CollectionElementsTransform(ITransformation<A, B> transformation){ this.transformation = transformation; } @Override public Collection<B> transform(Collection<A> object) { List<B> list = new LinkedList<B>(); for (A el: object) { list.add(transformation.transform(el)); } return list; } @Override public Collection<A> inverse(Collection<B> object) { List<A> list = new LinkedList<A>(); for (B el: object) { list.add(transformation.inverse(el)); } return list; } }