/* * Copyright (C) 2006-2016 DLR, Germany * * All rights reserved * * http://www.rcenvironment.de/ */ package de.rcenvironment.core.component.execution.api; import java.util.Map; import org.osgi.framework.BundleContext; /** * Utility methods used during component/workflow execution. * * @author Doreen Seider */ public interface LocalExecutionControllerUtilsService { /** * Retrieves {@link ExecutionController}s as OSGi services from the OSGi registry on the base of its execution identifier. * * Note: Should be moved somewhere else (more generic bundle) in RCE. * * @param <T> subclass of {@link ExecutionController} * @param controllerInterface sub interface of {@link ExecutionController} * @param executionId execution identifier to consider * @param bundleContext {@link BundleContext} of the calling bundle * @return instance of an {@link ExecutionController} of the type T * @throws ExecutionControllerException if {@link ExecutionController} is not available (anymore) */ <T extends ExecutionController> T getExecutionController(Class<T> controllerInterface, String executionId, BundleContext bundleContext) throws ExecutionControllerException; /** * Retrieves all {@link ExecutionController}s as OSGi services from the OSGi registry. * * @param <T> subclass of {@link ExecutionController} * @param controllerInterface sub interface of {@link ExecutionController} * @param bundleContext {@link BundleContext} of the calling bundle * @return instances of {@link ExecutionController} of the type T mapped to its execution identifier */ <T extends ExecutionController> Map<String, T> getExecutionControllers(Class<T> controllerInterface, BundleContext bundleContext); }