package com.griddynamics.jagger.engine.e1; import com.griddynamics.jagger.coordinator.NodeContext; import com.griddynamics.jagger.engine.e1.services.JaggerPlace; import com.griddynamics.jagger.engine.e1.services.ServicesInitializable; import java.util.ArrayList; import java.util.List; /** * Created with IntelliJ IDEA. * User: kirilkadurilka * Date: 12/12/13 * Time: 2:35 PM * To change this template use File | Settings | File Templates. */ public class ProviderUtil { public static <T>List provideElements(List<Provider<T>> providers, String sessionId, String taskId, NodeContext context, JaggerPlace environment){ List<T> result = new ArrayList<T>(providers.size()); for (Provider<T> provider : providers){ injectContext(provider, sessionId, taskId, context, environment); result.add(provider.provide()); } return result; } public static <T>void injectContext(Provider<T> provider, String sessionId, String taskId, NodeContext context, JaggerPlace environment){ if (provider instanceof ServicesInitializable){ ServicesInitializable nodeSideInitializable = (ServicesInitializable)provider; nodeSideInitializable.initServices(sessionId, taskId, context, environment); } } }