
flow.Provider Maven / Gradle / Ivy
The newest version!
package flow;
import java.util.List;
/**
* a provider encapsulates the logic that something can be created based on some dependencies
*
*/
public interface Provider, D extends Dependency> {
String getId();
/**
* runs the provider to create a product
* @param satisfiedDependencies all products that are needed for creating the result
* @return the created product
* @throws FlowException if exception is thrown or dependencies did not match
*/
P invoke(List
satisfiedDependencies) throws FlowException;
/**
* @return the list of dependencies that the provider has
*/
List getDependencies();
/**
* @return the dependency that this provider would fullfill if invoked
*/
D getProvidingDependency();
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy