org.eclipse.emf.validation.service
Class ModelValidationService
java.lang.Object
org.eclipse.emf.validation.service.ModelValidationService
-
public class ModelValidationService
- extends
Object
The Model Validation Service makes constraints and validators available to
the client application. An application obtains validators from the service
and requests validation whenever it is appropriate, according to the
application's mapping of the
EvaluationMode
triggers.
The ModelValidationService
delegates the retrieval of
constraints to any number of
IModelConstraintProvider
implementations registered by other plug-ins via the
org.eclipse.emf.validation.constraintProvider extension point.
The validation service uses the meta-data associated with registered
providers to determine which ones can provide constraints for a specific
EMF object according to the meta-model URI namespace and the evaluation
context. This allows the
service to delay instantiating providers (and, hence, loading plug-ins) until
it is absolutely necessary to do so.
-
See Also:
-
newValidator(EvaluationMode)
,
IValidator
,
IModelConstraint
Methods inherited from class java.lang.
Object
|
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait
|
getInstance
public static
ModelValidationService getInstance()
- Obtains the instance of this class.
-
-
Returns:
- the Singleton instance
newValidator
public <T,V extends
IValidator<T>> V newValidator(
EvaluationMode<T> mode)
-
Creates a new validator object that the client can use to validate
EMF objects, notifications, or features, according to the value of the
specified evaluation mode
.
The resulting validator may be retained as long as it is needed, and
reused any number of times. Each validator has its own separate state.
-
-
Type Parameters:
-
T
- the kind of validator to return -
Parameters:
-
mode
- the evaluation mode for which to create a new validator.
Must not be null
or
EvaluationMode.NULL
-
Returns:
- a new validator
-
Throws:
-
IllegalArgumentException
- if the mode
is not a
valid evaluation mode
addValidationListener
public void addValidationListener(
IValidationListener listener)
- Adds a new
listener
to receive validation events. This
method has no effect if the listener
is already registered.
-
-
Parameters:
-
listener
- a new validation listener
removeValidationListener
public void removeValidationListener(
IValidationListener listener)
- Removes a
listener
from the service. This method
has no effect if the listener
is not currently registered.
-
-
Parameters:
-
listener
- a validation listener
broadcastValidationEvent
public void broadcastValidationEvent(
ValidationEvent event)
- Broadcasts the specified
event
to all listeners. This
method is used internally by validators to send notifications when they
perform validation, but may also be used by clients to simulate
validation occurrences.
-
-
Parameters:
-
event
- a validation event to broadcast
configureListeners
@Deprecated
public void configureListeners(
IConfigurationElement[] elements)
-
Deprecated. 1.2 This method is no longer implemented.
-
Configures my listeners from the Eclipse configuration
elements
representing implementations of my extension point.
NOTE that this method should only be called by the EMF Model
Validation Plug-in, not by any client code!
-
-
Parameters:
-
elements
-
configureProviders
@Deprecated
public void configureProviders(
IConfigurationElement[] elements)
-
Deprecated. 1.2 This method is no longer implemented.
-
Configures my providers from the Eclipse configuration
elements
representing implementations of my extension point.
NOTE that this method should only be called by the EMF Model
Validation Plug-in, not by any client code!
-
-
Parameters:
-
elements
-
replaceInCache
public void replaceInCache(
IModelConstraint oldConstraint,
IModelConstraint newConstraint)
- Replaces a constraint in the cache with an alternative implementation.
This must only be invoked by constraint providers, and then only when the
provider can ensure that the new constraint implementation's semantics
are compatible with the old.
-
-
Parameters:
-
oldConstraint
- the constraint to be replaced in the cache -
newConstraint
- the new constraint to replace it
loadXmlConstraintDeclarations
public void loadXmlConstraintDeclarations()
-
Loads all available XML-declared constraint descriptors. This is not
a very heavy-weight operation, as it does not require the loading of
any plug-ins or even the instantantiation of any constraints. It only
loads the constraint descriptors that are statically declared in XML.
Subsequent invocations of this method have no effect.
NOTE that this method should only be called by the EMF Model
Validation Plug-in, not by any client code!
-
findClass
public static
EClass findClass(
String namespaceUri,
String className)
- Finds the
EClass
having the specified name within the namespace
indicated by the URI. The class name may optionally be fully qualified
(prefixed by its full package name) to support constraint providers that
need to disambiguate like-named classes in different EPackages.
-
-
Parameters:
-
namespaceUri
- the provider-specified namespace URI of the EPackage -
className
- the class name. May be a simple name within the
package namespace indicated by namespaceUri
or a
fully-qualified class name
-
Returns:
- the corresponding EMF class object, or
null
if it
could not be found