org.eclipse.ocl.examples.impactanalyzer
Interface ImpactAnalyzerFactory

All Known Implementing Classes:
ImpactAnalyzerFactoryImpl

public interface ImpactAnalyzerFactory

Used to create ImpactAnalyzer and DerivedPropertyNotifier objects. A default factory can be obtained using the INSTANCE field.

Author:
Axel Uhl

Field Summary
static ImpactAnalyzerFactory INSTANCE
           
 
Method Summary
 DerivedPropertyNotifier createDerivedPropertyNotifier(org.eclipse.emf.ecore.EPackage pkg, ActivationOption configuration, OCLFactory oclFactory)
          Constructs a notifier for all derived properties in pkg which efficiently, based on an ImpactAnalyzer, constructs and emits Notifications for derived, OCL-specified properties.
 DerivedPropertyNotifier createDerivedPropertyNotifier(org.eclipse.emf.ecore.EPackage pkg, OCLFactory oclFactory)
          Constructs a notifier for all derived properties in pkg which efficiently, based on an ImpactAnalyzer, constructs and emits Notifications for derived, OCL-specified properties.
 DerivedPropertyNotifier createDerivedPropertyNotifier(org.eclipse.emf.ecore.EPackage pkg, OppositeEndFinder oppositeEndFinder, ActivationOption configuration, OCLFactory oclFactory)
          Constructs a notifier for all derived properties in pkg which efficiently, based on an ImpactAnalyzer, constructs and emits Notifications for derived, OCL-specified properties.
 DerivedPropertyNotifier createDerivedPropertyNotifier(org.eclipse.emf.ecore.EPackage pkg, OppositeEndFinder oppositeEndFinder, OCLFactory oclFactory)
          Constructs a notifier for all derived properties in pkg which efficiently, based on an ImpactAnalyzer, constructs and emits Notifications for derived, OCL-specified properties.
 DerivedPropertyNotifier createDerivedPropertyNotifier(org.eclipse.emf.ecore.EStructuralFeature property, ActivationOption configuration, OCLFactory oclFactory)
          Constructs a notifier for derived properties which efficiently, based on an ImpactAnalyzer, constructs and emits Notifications for derived, OCL-specified properties.
 DerivedPropertyNotifier createDerivedPropertyNotifier(org.eclipse.emf.ecore.EStructuralFeature property, OCLFactory oclFactory)
          Constructs a notifier for derived properties which efficiently, based on an ImpactAnalyzer, constructs and emits Notifications for derived, OCL-specified properties.
 DerivedPropertyNotifier createDerivedPropertyNotifier(org.eclipse.emf.ecore.EStructuralFeature property, OppositeEndFinder oppositeEndFinder, ActivationOption configuration, OCLFactory oclFactory)
          Constructs a notifier for derived properties which efficiently, based on an ImpactAnalyzer, constructs and emits Notifications for derived, OCL-specified properties.
 DerivedPropertyNotifier createDerivedPropertyNotifier(org.eclipse.emf.ecore.EStructuralFeature property, OppositeEndFinder oppositeEndFinder, OCLFactory oclFactory)
          Constructs a notifier for derived properties which efficiently, based on an ImpactAnalyzer, constructs and emits Notifications for derived, OCL-specified properties.
 ImpactAnalyzer createImpactAnalyzer(OCLExpression expression, boolean notifyOnNewContextElements, ActivationOption configuration, OCLFactory oclFactory)
          Constructs an impact analyzer for the expression specified.
 ImpactAnalyzer createImpactAnalyzer(OCLExpression expression, boolean notifyOnNewContextElements, OCLFactory oclFactory)
          Constructs an impact analyzer for the expression specified.
 ImpactAnalyzer createImpactAnalyzer(OCLExpression expression, boolean notifyOnNewContextElements, OppositeEndFinder oppositeEndFinder, ActivationOption configuration, OCLFactory oclFactory)
          Constructs an impact analyzer for the expression specified.
 ImpactAnalyzer createImpactAnalyzer(OCLExpression expression, boolean notifyOnNewContextElements, OppositeEndFinder oppositeEndFinder, OCLFactory oclFactory)
          Constructs an impact analyzer for the expression specified.
 ImpactAnalyzer createImpactAnalyzer(OCLExpression expression, org.eclipse.emf.ecore.EClass context, boolean notifyOnNewContextElements, ActivationOption configuration, OCLFactory oclFactory)
          Constructs an impact analyzer for the expression specified with an explicit context type specification.
 ImpactAnalyzer createImpactAnalyzer(OCLExpression expression, org.eclipse.emf.ecore.EClass context, boolean notifyOnNewContextElements, OCLFactory oclFactory)
          Constructs an impact analyzer for the expression specified with an explicit context type specification.
 ImpactAnalyzer createImpactAnalyzer(OCLExpression expression, org.eclipse.emf.ecore.EClass context, boolean notifyOnNewContextElements, OppositeEndFinder oppositeEndFinder, ActivationOption configuration, OCLFactory oclFactory)
          Constructs an impact analyzer for the expression specified with an explicit context type specification.
 ImpactAnalyzer createImpactAnalyzer(OCLExpression expression, org.eclipse.emf.ecore.EClass context, boolean notifyOnNewContextElements, OppositeEndFinder oppositeEndFinder, OCLFactory oclFactory)
          Constructs an impact analyzer for the expression specified with an explicit context type specification.
 

Field Detail

INSTANCE

static final ImpactAnalyzerFactory INSTANCE
Method Detail

createImpactAnalyzer

ImpactAnalyzer createImpactAnalyzer(OCLExpression expression,
                                    boolean notifyOnNewContextElements,
                                    OCLFactory oclFactory)
Constructs an impact analyzer for the expression specified. The expression's context type is inferred from any occurrence of self in the expression. If no self occurrence can be found, an exception will be thrown. The configuration is taken from the default OptimizationActivation.getOption().

Parameters:
notifyNewContextElements - The analyzer can be parameterized during construction such that it either registers for creation events on the context type and its subtypes or not. (Creation here means that the object is added to a resource in the ResourceSet observed by the EventManager used for handling change events.) Registering for element creation on the context type is useful for invariants / constraints because when a new element is created, validating the constraint may be useful. For other use cases, registering for element creation may not be so useful. For example, when a type inferencer defines its rules using OCL, it only wants to receive update events after the element has been fully initialized from those OCL expressions. In those cases, some framework may be responsible for the initial evaluation of those OCL expressions on new element, and therefore, context element creation events are not of interest.

createImpactAnalyzer

ImpactAnalyzer createImpactAnalyzer(OCLExpression expression,
                                    org.eclipse.emf.ecore.EClass context,
                                    boolean notifyOnNewContextElements,
                                    OCLFactory oclFactory)
Constructs an impact analyzer for the expression specified with an explicit context type specification. Use this factory method if expression does not contain any reference to self. The configuration is taken from the default OptimizationActivation.getOption().

Parameters:
notifyNewContextElements - The analyzer can be parameterized during construction such that it either registers for creation events on the context type and its subtypes or not. (Creation here means that the object is added to a resource in the ResourceSet observed by the EventManager used for handling change events.) Registering for element creation on the context type is useful for invariants / constraints because when a new element is created, validating the constraint may be useful. For other use cases, registering for element creation may not be so useful. For example, when a type inferencer defines its rules using OCL, it only wants to receive update events after the element has been fully initialized from those OCL expressions. In those cases, some framework may be responsible for the initial evaluation of those OCL expressions on new element, and therefore, context element creation events are not of interest.

createImpactAnalyzer

ImpactAnalyzer createImpactAnalyzer(OCLExpression expression,
                                    org.eclipse.emf.ecore.EClass context,
                                    boolean notifyOnNewContextElements,
                                    OppositeEndFinder oppositeEndFinder,
                                    OCLFactory oclFactory)
Constructs an impact analyzer for the expression specified with an explicit context type specification. Use this factory method if expression does not contain any reference to self. The configuration is taken from the default OptimizationActivation.getOption().

Parameters:
oppositeEndFinder - used to perform OppositePropertyCallExp when evaluating (parts of) expression and for evaluating allInstances() calls
notifyNewContextElements - The analyzer can be parameterized during construction such that it either registers for creation events on the context type or not. Registering for element creation on the context type is useful for invariants / constraints because when a new element is created, validating the constraint may be useful. For other use cases, registering for element creation may not be so useful. For example, when a type inferencer defines its rules using OCL, it only wants to receive update events after the element has been fully initialized from those OCL expressions. In those cases, some framework may be responsible for the initial evaluation of those OCL expressions on new element, and therefore, context element creation events are not of interest.

createImpactAnalyzer

ImpactAnalyzer createImpactAnalyzer(OCLExpression expression,
                                    boolean notifyOnNewContextElements,
                                    OppositeEndFinder oppositeEndFinder,
                                    OCLFactory oclFactory)
Constructs an impact analyzer for the expression specified. The expression's context type is inferred from any occurrence of self in the expression. If no self occurrence can be found, an exception will be thrown. The configuration is taken from the default OptimizationActivation.getOption().

Parameters:
oppositeEndFinder - used to perform OppositePropertyCallExp when evaluating (parts of) expression and for evaluating allInstances() calls
notifyNewContextElements - The analyzer can be parameterized during construction such that it either registers for creation events on the context type or not. Registering for element creation on the context type is useful for invariants / constraints because when a new element is created, validating the constraint may be useful. For other use cases, registering for element creation may not be so useful. For example, when a type inferencer defines its rules using OCL, it only wants to receive update events after the element has been fully initialized from those OCL expressions. In those cases, some framework may be responsible for the initial evaluation of those OCL expressions on new element, and therefore, context element creation events are not of interest.

createImpactAnalyzer

ImpactAnalyzer createImpactAnalyzer(OCLExpression expression,
                                    boolean notifyOnNewContextElements,
                                    OppositeEndFinder oppositeEndFinder,
                                    ActivationOption configuration,
                                    OCLFactory oclFactory)
Constructs an impact analyzer for the expression specified. The expression's context type is inferred from any occurrence of self in the expression. If no self occurrence can be found, an exception will be thrown.

Parameters:
notifyNewContextElements - The analyzer can be parameterized during construction such that it either registers for creation events on the context type or not. Registering for element creation on the context type is useful for invariants / constraints because when a new element is created, validating the constraint may be useful. For other use cases, registering for element creation may not be so useful. For example, when a type inferencer defines its rules using OCL, it only wants to receive update events after the element has been fully initialized from those OCL expressions. In those cases, some framework may be responsible for the initial evaluation of those OCL expressions on new element, and therefore, context element creation events are not of interest.

createImpactAnalyzer

ImpactAnalyzer createImpactAnalyzer(OCLExpression expression,
                                    org.eclipse.emf.ecore.EClass context,
                                    boolean notifyOnNewContextElements,
                                    OppositeEndFinder oppositeEndFinder,
                                    ActivationOption configuration,
                                    OCLFactory oclFactory)
Constructs an impact analyzer for the expression specified with an explicit context type specification. Use this factory method if expression does not contain any reference to self.

Parameters:
notifyNewContextElements - The analyzer can be parameterized during construction such that it either registers for creation events on the context type or not. Registering for element creation on the context type is useful for invariants / constraints because when a new element is created, validating the constraint may be useful. For other use cases, registering for element creation may not be so useful. For example, when a type inferencer defines its rules using OCL, it only wants to receive update events after the element has been fully initialized from those OCL expressions. In those cases, some framework may be responsible for the initial evaluation of those OCL expressions on new element, and therefore, context element creation events are not of interest.

createImpactAnalyzer

ImpactAnalyzer createImpactAnalyzer(OCLExpression expression,
                                    org.eclipse.emf.ecore.EClass context,
                                    boolean notifyOnNewContextElements,
                                    ActivationOption configuration,
                                    OCLFactory oclFactory)
Constructs an impact analyzer for the expression specified with an explicit context type specification. Use this factory method if expression does not contain any reference to self.

Parameters:
notifyNewContextElements - The analyzer can be parameterized during construction such that it either registers for creation events on the context type or not. Registering for element creation on the context type is useful for invariants / constraints because when a new element is created, validating the constraint may be useful. For other use cases, registering for element creation may not be so useful. For example, when a type inferencer defines its rules using OCL, it only wants to receive update events after the element has been fully initialized from those OCL expressions. In those cases, some framework may be responsible for the initial evaluation of those OCL expressions on new element, and therefore, context element creation events are not of interest.
oppositeEndFinder - used to perform OppositePropertyCallExp when evaluating (parts of) expression and for evaluating allInstances() calls

createImpactAnalyzer

ImpactAnalyzer createImpactAnalyzer(OCLExpression expression,
                                    boolean notifyOnNewContextElements,
                                    ActivationOption configuration,
                                    OCLFactory oclFactory)
Constructs an impact analyzer for the expression specified. The expression's context type is inferred from any occurrence of self in the expression. If no self occurrence can be found, an exception will be thrown.

Parameters:
notifyNewContextElements - The analyzer can be parameterized during construction such that it either registers for creation events on the context type or not. Registering for element creation on the context type is useful for invariants / constraints because when a new element is created, validating the constraint may be useful. For other use cases, registering for element creation may not be so useful. For example, when a type inferencer defines its rules using OCL, it only wants to receive update events after the element has been fully initialized from those OCL expressions. In those cases, some framework may be responsible for the initial evaluation of those OCL expressions on new element, and therefore, context element creation events are not of interest.

createDerivedPropertyNotifier

DerivedPropertyNotifier createDerivedPropertyNotifier(org.eclipse.emf.ecore.EStructuralFeature property,
                                                      OCLFactory oclFactory)
Constructs a notifier for derived properties which efficiently, based on an ImpactAnalyzer, constructs and emits Notifications for derived, OCL-specified properties.

This variant uses a default opposite end finder for resolving and navigating OppositePropertyCallExp expressions. The configuration is taken from the default OptimizationActivation.getOption().

Parameters:
property - the derived property

createDerivedPropertyNotifier

DerivedPropertyNotifier createDerivedPropertyNotifier(org.eclipse.emf.ecore.EStructuralFeature property,
                                                      ActivationOption configuration,
                                                      OCLFactory oclFactory)
Constructs a notifier for derived properties which efficiently, based on an ImpactAnalyzer, constructs and emits Notifications for derived, OCL-specified properties.

This variant uses a default opposite end finder for resolving and navigating OppositePropertyCallExp expressions.

Parameters:
property - the derived property

createDerivedPropertyNotifier

DerivedPropertyNotifier createDerivedPropertyNotifier(org.eclipse.emf.ecore.EStructuralFeature property,
                                                      OppositeEndFinder oppositeEndFinder,
                                                      OCLFactory oclFactory)
Constructs a notifier for derived properties which efficiently, based on an ImpactAnalyzer, constructs and emits Notifications for derived, OCL-specified properties.

The configuration is taken from the default OptimizationActivation.getOption().

Parameters:
property - the derived property
oppositeEndFinder - used to perform OppositePropertyCallExp when evaluating (parts of) expression and for evaluating allInstances() calls

createDerivedPropertyNotifier

DerivedPropertyNotifier createDerivedPropertyNotifier(org.eclipse.emf.ecore.EStructuralFeature property,
                                                      OppositeEndFinder oppositeEndFinder,
                                                      ActivationOption configuration,
                                                      OCLFactory oclFactory)
Constructs a notifier for derived properties which efficiently, based on an ImpactAnalyzer, constructs and emits Notifications for derived, OCL-specified properties.

Parameters:
property - the derived property
oppositeEndFinder - used to perform OppositePropertyCallExp when evaluating (parts of) expression and for evaluating allInstances() calls

createDerivedPropertyNotifier

DerivedPropertyNotifier createDerivedPropertyNotifier(org.eclipse.emf.ecore.EPackage pkg,
                                                      OCLFactory oclFactory)
Constructs a notifier for all derived properties in pkg which efficiently, based on an ImpactAnalyzer, constructs and emits Notifications for derived, OCL-specified properties.

This variant uses a default opposite end finder for resolving and navigating OppositePropertyCallExp expressions. The configuration is taken from the default OptimizationActivation.getOption().

Parameters:
property - the derived property

createDerivedPropertyNotifier

DerivedPropertyNotifier createDerivedPropertyNotifier(org.eclipse.emf.ecore.EPackage pkg,
                                                      ActivationOption configuration,
                                                      OCLFactory oclFactory)
Constructs a notifier for all derived properties in pkg which efficiently, based on an ImpactAnalyzer, constructs and emits Notifications for derived, OCL-specified properties.

This variant uses a default opposite end finder for resolving and navigating OppositePropertyCallExp expressions.

Parameters:
property - the derived property

createDerivedPropertyNotifier

DerivedPropertyNotifier createDerivedPropertyNotifier(org.eclipse.emf.ecore.EPackage pkg,
                                                      OppositeEndFinder oppositeEndFinder,
                                                      OCLFactory oclFactory)
Constructs a notifier for all derived properties in pkg which efficiently, based on an ImpactAnalyzer, constructs and emits Notifications for derived, OCL-specified properties.

The configuration is taken from the default OptimizationActivation.getOption().

Parameters:
property - the derived property
oppositeEndFinder - used to perform OppositePropertyCallExp when evaluating (parts of) expression and for evaluating allInstances() calls

createDerivedPropertyNotifier

DerivedPropertyNotifier createDerivedPropertyNotifier(org.eclipse.emf.ecore.EPackage pkg,
                                                      OppositeEndFinder oppositeEndFinder,
                                                      ActivationOption configuration,
                                                      OCLFactory oclFactory)
Constructs a notifier for all derived properties in pkg which efficiently, based on an ImpactAnalyzer, constructs and emits Notifications for derived, OCL-specified properties.

Parameters:
property - the derived property
oppositeEndFinder - used to perform OppositePropertyCallExp when evaluating (parts of) expression and for evaluating allInstances() calls