## org.eclipse.uml2.uml
Interface StringExpression

All Superinterfaces:
  Element, org.eclipse.emf.ecore.EModelElement, org.eclipse.emf.ecore.EObject, Expression, NamedElement, org.eclipse.emf.common.notify.Notifier, PackageableElement, ParameterableElement, TemplateableElement, TypedElement, ValueSpecification

    public interface StringExpression

extends Expression, TemplateableElement

A representation of the model object 'String Expression'. An expression that specifies a string value that is derived by concatenating a set of sub string expressions, some of which might be template parameters.

The following features are supported:

- `Sub Expression`
- `Owning Expression`

See Also:
  `UMLPackage.getStringExpression()`

Field Summary

Fields inherited from interface org.eclipse.uml2.uml.NamedElement
`SEPARATOR`

Fields inherited from interface org.eclipse.uml2.uml.NamedElement
`SEPARATOR`

Method Summary
`StringExpression` `createSubExpression(java.lang.String name, Type type)` Creates a new `StringExpression`, with the specified 'Name', and 'Type', and appends it to the 'Sub Expression' containment reference list
`StringExpression` `getOwningExpression()` Returns the value of the 'Owning Expression' container reference.
`StringExpression` `getSubExpression(java.lang.String name, Type type)` Retrieves the first `StringExpression` with the specified 'Name', and 'Type' from the 'Sub Expression' containment reference list
`StringExpression` `getSubExpression(java.lang.String name, Type type, boolean ignoreCase, boolean createOnDemand)` Retrieves the first `StringExpression` with the specified 'Name', and 'Type' from the 'Sub Expression' containment reference list
`org.eclipse.emf.common.util.EList<StringExpression>` `getSubExpressions()` Returns the value of the 'Sub Expression' containment reference list.
`void` `setOwningExpression(StringExpression value)` Sets the value of the '`Owning Expression`' container reference
`boolean` `validateOperands(org.eclipse.emf.common.util.DiagnosticChain diagnostics, java.util.Map<java.lang.Object,java.lang.Object> context)` All the operands of a StringExpression must be LiteralStrings operand->forAll (op | op.oclIsKindOf (LiteralString))
`boolean` `validateSubexpressions(org.eclipse.emf.common.util.DiagnosticChain diagnostics, java.util.Map<java.lang.Object,java.lang.Object> context)` If a StringExpression has sub-expressions, it cannot have operands and vice versa (this avoids the problem of having to define a collating sequence between operands and subexpressions).

Methods inherited from interface org.eclipse.uml2.uml.Expression
`createOperand, getOperand, getOperand, getOperands, getSymbol, isSetSymbol, setSymbol, unsetSymbol`

Methods inherited from interface org.eclipse.uml2.uml.ValueSpecification
`booleanValue, integerValue, isComputable, isNull, stringValue, unlimitedValue`

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

`allNamespaces, allOwningPackages, createDependency, createNameExpression, createUsage, getClientDependencies, getClientDependency, getClientDependency, getLabel, getLabel, getName, getNameExpression, getNamespace, getQualifiedName, getVisibility, isDistinguishableFrom, isSetName, isSetVisibility, separator, setName, setNameExpression, setVisibility, unsetName, unsetVisibility, validateHasNoQualifiedName, validateHasQualifiedName, validateVisibilityNeedsOwnership`

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`

Methods inherited from interface org.eclipse.uml2.uml.ParameterableElement
`getOwningTemplateParameter, getTemplateParameter, isCompatibleWith, isTemplateParameter, setOwningTemplateParameter, setTemplateParameter`

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`

Methods inherited from interface org.eclipse.uml2.uml.TypedElement
`getType, setType`

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

`allNamespaces, allOwningPackages, createDependency, createNameExpression, createUsage, getClientDependencies, getClientDependency, getClientDependency, getLabel, getLabel, getName, getNameExpression, getNamespace, getQualifiedName, getVisibility, isDistinguishableFrom, isSetName, isSetVisibility, separator, setName, setNameExpression, setVisibility, unsetName, unsetVisibility, validateHasNoQualifiedName, validateHasQualifiedName, validateVisibilityNeedsOwnership`

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`

Methods inherited from interface org.eclipse.uml2.uml.TemplateableElement
`createOwnedTemplateSignature, createOwnedTemplateSignature, createTemplateBinding, getOwnedTemplateSignature, getTemplateBinding, getTemplateBinding, getTemplateBindings, isTemplate, parameterableElements, setOwnedTemplateSignature`

Method Detail

### getSubExpressions

    org.eclipse.emf.common.util.EList<StringExpression> getSubExpressions()

  Returns the value of the 'Sub Expression' containment reference list. The list contents are of type `StringExpression`. It is bidirectional and its opposite is '`Owning Expression`'. The StringExpressions that constitute this StringExpression.

  Returns:
    the value of the 'Sub Expression' containment reference list.
  See Also:
    `UMLPackage.getStringExpression_SubExpression()`, `getOwningExpression()`

### createSubExpression

    StringExpression createSubExpression(java.lang.String name,
                                         Type type)

  Creates a new `StringExpression`, with the specified 'Name', and 'Type', and appends it to the 'Sub Expression' containment reference list.

  Parameters:
    `name` - The 'Name' for the new `StringExpression`, or `null`.
    `type` - The 'Type' for the new `StringExpression`, or `null`.
  Returns:
    The new `StringExpression`.
  See Also:
    `getSubExpressions()`

### getSubExpression

    StringExpression getSubExpression(java.lang.String name,
                                      Type type)

  Retrieves the first `StringExpression` with the specified 'Name', and 'Type' from the 'Sub Expression' containment reference list.

  Parameters:
    `name` - The 'Name' of the `StringExpression` to retrieve, or `null`.
    `type` - The 'Type' of the `StringExpression` to retrieve, or `null`.
  Returns:
    The first `StringExpression` with the specified 'Name', and 'Type', or `null`.
  See Also:
    `getSubExpressions()`

### getSubExpression

    StringExpression getSubExpression(java.lang.String name,
                                      Type type,
                                      boolean ignoreCase,
                                      boolean createOnDemand)

  Retrieves the first `StringExpression` with the specified 'Name', and 'Type' from the 'Sub Expression' containment reference list.

  Parameters:
    `name` - The 'Name' of the `StringExpression` to retrieve, or `null`.
    `type` - The 'Type' of the `StringExpression` to retrieve, or `null`.
    `ignoreCase` - Whether to ignore case in `String` comparisons.
    `createOnDemand` - Whether to create a `StringExpression` on demand if not found.
  Returns:
    The first `StringExpression` with the specified 'Name', and 'Type', or `null`.
  See Also:
    `getSubExpressions()`

### getOwningExpression

    StringExpression getOwningExpression()

  Returns the value of the 'Owning Expression' container reference. It is bidirectional and its opposite is '`Sub Expression`'. The string expression of which this expression is a substring.

  Returns:
    the value of the 'Owning Expression' container reference.
  See Also:
    `setOwningExpression(StringExpression)`, `UMLPackage.getStringExpression_OwningExpression()`, `getSubExpressions()`

### setOwningExpression

    void setOwningExpression(StringExpression value)

  Sets the value of the '`Owning Expression`' container reference.

  Parameters:
    `value` - the new value of the 'Owning Expression' container reference.
  See Also:
    `getOwningExpression()`

### validateOperands

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

  All the operands of a StringExpression must be LiteralStrings operand->forAll (op | op.oclIsKindOf (LiteralString))

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

### validateSubexpressions

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

  If a StringExpression has sub-expressions, it cannot have operands and vice versa (this avoids the problem of having to define a collating sequence between operands and subexpressions). if subExpression->notEmpty() then operand->isEmpty() else operand->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.