package com.sap.emf.ocl.trigger;
import org.eclipse.emf.ecore.resource.ResourceSet;
import org.eclipse.ocl.ecore.opposites.OppositeEndFinder;
import org.eclipse.ocl.examples.eventmanager.EventManager;
import org.eclipse.ocl.examples.impactanalyzer.configuration.ActivationOption;
import com.sap.emf.ocl.trigger.impl.TriggerManagerFactoryImpl;
/**
* Used to create a {@link TriggerManager}. The resulting {@link TriggerManager}
* initially doesn't observe any {@link ResourceSet}. Use
* {@link TriggerManager#addToObservedResourceSets(org.eclipse.emf.ecore.resource.ResourceSet)}
* to start observing a {@link ResourceSet}.
*
* @author Axel Uhl (D043530)
*
*/
public interface TriggerManagerFactory {
static TriggerManagerFactory INSTANCE = new TriggerManagerFactoryImpl();
/**
* The trigger manager returned uses a default {@link OppositeEndFinder} during OCL impact analysis and uses the
* default {@link ActivationOption configuration} for the impact analysis. Creates a new {@link EventManager}
* specifically for this trigger manager.
*/
TriggerManager createTriggerManager();
/**
* The trigger manager returned uses the default {@link ActivationOption configuration} for the impact analysis.
* Creates a new {@link EventManager} specifically for this trigger manager.
*/
TriggerManager createTriggerManager(OppositeEndFinder oppositeEndFinder);
/**
* Creates a trigger manager with the specified <code>oppositeEndFinder</code> and using the
* given <code>eventManager</code>. The default {@link ActivationOption configuration} is used for
* impact analysis.
*/
TriggerManager createTriggerManager(OppositeEndFinder oppositeEndFinder, EventManager eventManager);
/**
* The trigger manager returned uses a default {@link OppositeEndFinder} during OCL impact analysis. Creates a new
* {@link EventManager} specifically for this trigger manager.
*/
TriggerManager createTriggerManager(ActivationOption impactAnalysisConfiguration);
/**
* Creates a new {@link EventManager} specifically for this trigger manager.
*/
TriggerManager createTriggerManager(OppositeEndFinder oppositeEndFinder, ActivationOption impactAnalysisConfiguration);
TriggerManager createTriggerManager(OppositeEndFinder oppositeEndFinder, ActivationOption impactAnalysisConfiguration,
EventManager eventManager);
}