package org.finra.datagenerator.scaffolding.transformer.service; import org.finra.datagenerator.scaffolding.transformer.function.FunctionTransformation; import org.finra.datagenerator.scaffolding.transformer.service.transformations.TransformationsImpl; import java.util.Collection; import java.util.List; import java.util.Map; import java.util.Set; import java.util.function.Predicate; /** * Created by dkopel on 11/17/16. */ public interface MultiTransformerService { void scan(String basePackage); <V extends FunctionTransformation> void setFunctionTransformation(String key, Class<V> clazz, Object[] args, Class[] argClasses); <V extends FunctionTransformation> void setFunctionTransformation(String key, Class<V> clazz); void registerTransformations(Set<TransformationsImpl> transformations); <V extends FunctionTransformation> FunctionTransformationContainer<V> getFunctionTransformation(String key, Class<V> clazz); <V extends FunctionTransformation> List<FunctionTransformationContainer<V>> getFunctionTransformation(Class<V> clazz); <T> Map<Long, ? extends Collection<TransformationContainer>> orderedTransform( Map<Long, List<TransformationContainer>> containers, // Iterations: number of iterations to invoke Long iterations ); <T> Map<Long, ? extends Collection<TransformationContainer>> orderedTransform( Map<Long, List<TransformationContainer>> containers, // Iterations: number of iterations to invoke Long iterations, // Overrides Map<Predicate<TransformationContext>, Set<OutputOverride<?>>> overrides ); }