## org.eclipse.uml2.uml
Interface ClassifierTemplateParameter

All Superinterfaces:
  Element, org.eclipse.emf.ecore.EModelElement, org.eclipse.emf.ecore.EObject, org.eclipse.emf.common.notify.Notifier, TemplateParameter

    public interface ClassifierTemplateParameter

extends TemplateParameter

A representation of the model object 'Classifier Template Parameter'. A classifier template parameter exposes a classifier as a formal template parameter.

The following features are supported:

- `Allow Substitutable`
- `Default Classifier`
- `Constraining Classifier`

See Also:
  `UMLPackage.getClassifierTemplateParameter()`

Method Summary
`Classifier` `getConstrainingClassifier()` Returns the value of the 'Constraining Classifier' reference
`Classifier` `getDefaultClassifier()` Returns the value of the 'Default Classifier' reference
`boolean` `isAllowSubstitutable()` Returns the value of the 'Allow Substitutable' attribute.
`void` `setAllowSubstitutable(boolean value)` Sets the value of the '`Allow Substitutable`' attribute
`void` `setConstrainingClassifier(Classifier value)` Sets the value of the '`Constraining Classifier`' reference
`void` `setDefaultClassifier(Classifier value)` Sets the value of the '`Default Classifier`' reference
`boolean` `validateHasConstrainingClassifier(org.eclipse.emf.common.util.DiagnosticChain diagnostics, java.util.Map<java.lang.Object,java.lang.Object> context)` If "allowSubstitutable" is true, then there must be a constrainingClassifier.

Methods inherited from interface org.eclipse.uml2.uml.TemplateParameter
`createOwnedDefault, createOwnedParameteredElement, getDefault, getOwnedDefault, getOwnedParameteredElement, getParameteredElement, getSignature, setDefault, setOwnedDefault, setOwnedParameteredElement, setParameteredElement, setSignature, validateMustBeCompatible`

Methods inherited from interface org.eclipse.uml2.uml.Element

`addKeyword, allOwnedElements, applyStereotype, createEAnnotation, createOwnedComment, destroy, getApplicableStereotype, getApplicableStereotypes, getAppliedStereotype, getAppliedStereotypes, getAppliedSubstereotype, getAppliedSubstereotypes, getKeywords, getModel, getNearestPackage, getOwnedComments, getOwnedElements, getOwner, getRelationships, getRelationships, getRequiredStereotype, getRequiredStereotypes, getSourceDirectedRelationships, getSourceDirectedRelationships, getStereotypeApplication, getStereotypeApplications, getTargetDirectedRelationships, getTargetDirectedRelationships, getValue, hasKeyword, hasValue, isStereotypeApplicable, isStereotypeApplied, isStereotypeRequired, mustBeOwned, removeKeyword, setValue, unapplyStereotype, validateHasOwner, validateNotOwnSelf`

Methods inherited from interface org.eclipse.emf.ecore.EModelElement
`getEAnnotation, getEAnnotations`

Methods inherited from interface org.eclipse.emf.ecore.EObject
`eAllContents, eClass, eContainer, eContainingFeature, eContainmentFeature, eContents, eCrossReferences, eGet, eGet, eIsProxy, eIsSet, eResource, eSet, eUnset`

Methods inherited from interface org.eclipse.emf.common.notify.Notifier
`eAdapters, eDeliver, eNotify, eSetDeliver`

Method Detail

### isAllowSubstitutable

    boolean isAllowSubstitutable()

  Returns the value of the 'Allow Substitutable' attribute. The default value is `"true"`. Constrains the required relationship between an actual parameter and the parameteredElement for this formal parameter.

  Returns:
    the value of the 'Allow Substitutable' attribute.
  See Also:
    `setAllowSubstitutable(boolean)`, `UMLPackage.getClassifierTemplateParameter_AllowSubstitutable()`

### setAllowSubstitutable

    void setAllowSubstitutable(boolean value)

  Sets the value of the '`Allow Substitutable`' attribute.

  Parameters:
    `value` - the new value of the 'Allow Substitutable' attribute.
  See Also:
    `isAllowSubstitutable()`

### getDefaultClassifier

    Classifier getDefaultClassifier()

  Returns the value of the 'Default Classifier' reference. The classifier that is used by default if no argument is provided during template binding. If this property is empty, then there is no default.

  Returns:
    the value of the 'Default Classifier' reference.
  See Also:
    `setDefaultClassifier(Classifier)`, `UMLPackage.getClassifierTemplateParameter_DefaultClassifier()`

### setDefaultClassifier

    void setDefaultClassifier(Classifier value)

  Sets the value of the '`Default Classifier`' reference.

  Parameters:
    `value` - the new value of the 'Default Classifier' reference.
  See Also:
    `getDefaultClassifier()`

### getConstrainingClassifier

    Classifier getConstrainingClassifier()

  Returns the value of the 'Constraining Classifier' reference. The classifier that constrains the argument that can be used for the parameter. If the allowSubstitutable attribute is true, then any classifier that is compatible with this constraining classifier can be substituted, otherwise it must be either this classifier or one of its subclasses. If this property is empty, there are no constraints on the classifier that can be used as an argument.

  Returns:
    the value of the 'Constraining Classifier' reference.
  See Also:
    `setConstrainingClassifier(Classifier)`, `UMLPackage.getClassifierTemplateParameter_ConstrainingClassifier()`

### setConstrainingClassifier

    void setConstrainingClassifier(Classifier value)

  Sets the value of the '`Constraining Classifier`' reference.

  Parameters:
    `value` - the new value of the 'Constraining Classifier' reference.
  See Also:
    `getConstrainingClassifier()`

### validateHasConstrainingClassifier

    boolean validateHasConstrainingClassifier(org.eclipse.emf.common.util.DiagnosticChain diagnostics,
                                              java.util.Map<java.lang.Object,java.lang.Object> context)

  If "allowSubstitutable" is true, then there must be a constrainingClassifier. allowSubstitutable implies constrainingClassifier->notEmpty()

  Parameters:
    `diagnostics` - The chain of diagnostics to which problems are to be appended.
    `context` - The cache of context-specific information.

Copyright 2003, 2007 IBM Corporation and others. All Rights Reserved.