## org.eclipse.wst.validation.internal.provisional.core
Interface IValidationContext

All Known Subinterfaces:
  IMetaModelContext, IProjectValidationContext

    public interface IValidationContext

This class is used to to separate the IValidator from the model loading. A model is a group of object(s) that must follow some rules.

The model is loaded differently depending on whether the validator is running in as-you-type or builder based context. If the `loadModel` method was a method on the IValidator, then there would need to be two versions of validators, one for as-you-type and one for builder based. Because `loadModel` is separate from the IValidator, we provide two different IHelpers instead, and ship the one specific to the environment.

Each IValidationContext implementation loads a specific model as identified by a String `symbolicName`. The symbolicName can be any value except null or the empty string. Each validator identifies the symbolic names which it needs, and the type of model which needs to be returned when that symbolic name is loaded via a `loadModel` method. An IValidationContext can support more than one IValidator; the helper needs to support every model that each validator needs.

Provisional API: This class/interface is part of an interim API that is still under development and expected to change significantly before reaching stability. It is being made available at this early stage to solicit feedback from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken (repeatedly) as the API evolves.

Method Summary
`java.lang.String[]` `getURIs()`
`java.lang.Object` `loadModel(java.lang.String symbolicName)` Load the model identified by `symbolicName`.
`java.lang.Object` `loadModel(java.lang.String symbolicName, java.lang.Object[] parms)` Load the model identified by `symbolicName` and `parms`.

Method Detail

### loadModel

    java.lang.Object loadModel(java.lang.String symbolicName)

  Load the model identified by `symbolicName`. `symbolicName` must not be null or the empty string if the validator needs to be run in both as-you-type and builder based validation.

  The symbolicName is a string name that is registered in the implementation of the IValidatorContext. For an example our internal implementation of the loadModel use method names for symbolicNames to load the model object to be validated. Users can use their own model load mechanism.

  See Also:
    `WorkbenchContext`

### loadModel

    java.lang.Object loadModel(java.lang.String symbolicName,
                               java.lang.Object[] parms)

  Load the model identified by `symbolicName` and `parms`. `symbolicName` must not be null or the empty string if the validator needs to be run in both as-you-type and builder based validation. If `parms` is null then this method behaves the same as

  Parameters:
    `symbolicName` - String identifier for model.
    `parms` - List of parameters that the model takes for invocation.

### getURIs

    java.lang.String[] getURIs()

  Returns:
    a string array with the list of URI's that need to be validated in the case of Incremental build.