| /* |
| * Copyright (c) 2005, 2014 IBM Corporation, CEA, and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * IBM - initial API and implementation |
| * Kenn Hussey (CEA) - 327039, 351774, 351777, 382718, 418466 |
| * Christian W. Damus (CEA) - 251963 |
| * |
| */ |
| package org.eclipse.uml2.uml; |
| |
| import java.util.Map; |
| |
| import org.eclipse.emf.common.util.DiagnosticChain; |
| |
| import org.eclipse.emf.common.util.EList; |
| |
| import org.eclipse.emf.ecore.EClass; |
| |
| /** |
| * <!-- begin-user-doc --> |
| * A representation of the model object '<em><b>Property</b></em>'. |
| * <!-- end-user-doc --> |
| * |
| * <!-- begin-model-doc --> |
| * A Property is a StructuralFeature. A Property related by ownedAttribute to a Classifier (other than an association) represents an attribute and might also represent an association end. It relates an instance of the Classifier to a value or set of values of the type of the attribute. A Property related by memberEnd to an Association represents an end of the Association. The type of the Property is the type of the end of the Association. A Property has the capability of being a DeploymentTarget in a Deployment relationship. This enables modeling the deployment to hierarchical nodes that have Properties functioning as internal parts. Property specializes ParameterableElement to specify that a Property can be exposed as a formal template parameter, and provided as an actual parameter in a binding of a template. |
| * <p>From package UML::Classification.</p> |
| * <!-- end-model-doc --> |
| * |
| * <p> |
| * The following features are supported: |
| * <ul> |
| * <li>{@link org.eclipse.uml2.uml.Property#getDatatype <em>Datatype</em>}</li> |
| * <li>{@link org.eclipse.uml2.uml.Property#getInterface <em>Interface</em>}</li> |
| * <li>{@link org.eclipse.uml2.uml.Property#getAggregation <em>Aggregation</em>}</li> |
| * <li>{@link org.eclipse.uml2.uml.Property#getAssociationEnd <em>Association End</em>}</li> |
| * <li>{@link org.eclipse.uml2.uml.Property#getQualifiers <em>Qualifier</em>}</li> |
| * <li>{@link org.eclipse.uml2.uml.Property#getClass_ <em>Class</em>}</li> |
| * <li>{@link org.eclipse.uml2.uml.Property#getDefaultValue <em>Default Value</em>}</li> |
| * <li>{@link org.eclipse.uml2.uml.Property#isComposite <em>Is Composite</em>}</li> |
| * <li>{@link org.eclipse.uml2.uml.Property#isDerived <em>Is Derived</em>}</li> |
| * <li>{@link org.eclipse.uml2.uml.Property#isDerivedUnion <em>Is Derived Union</em>}</li> |
| * <li>{@link org.eclipse.uml2.uml.Property#isID <em>Is ID</em>}</li> |
| * <li>{@link org.eclipse.uml2.uml.Property#getOpposite <em>Opposite</em>}</li> |
| * <li>{@link org.eclipse.uml2.uml.Property#getOwningAssociation <em>Owning Association</em>}</li> |
| * <li>{@link org.eclipse.uml2.uml.Property#getRedefinedProperties <em>Redefined Property</em>}</li> |
| * <li>{@link org.eclipse.uml2.uml.Property#getSubsettedProperties <em>Subsetted Property</em>}</li> |
| * <li>{@link org.eclipse.uml2.uml.Property#getAssociation <em>Association</em>}</li> |
| * </ul> |
| * </p> |
| * |
| * @see org.eclipse.uml2.uml.UMLPackage#getProperty() |
| * @model features="default" |
| * defaultUnsettable="true" defaultDataType="org.eclipse.uml2.types.String" defaultTransient="true" defaultVolatile="true" defaultDerived="true" defaultOrdered="false" defaultSuppressedGetVisibility="true" defaultSuppressedSetVisibility="true" defaultSuppressedIsSetVisibility="true" defaultSuppressedUnsetVisibility="true" |
| * @generated |
| */ |
| public interface Property |
| extends StructuralFeature, ConnectableElement, DeploymentTarget { |
| |
| /** |
| * Returns the value of the '<em><b>Datatype</b></em>' container reference. |
| * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.DataType#getOwnedAttributes <em>Owned Attribute</em>}'. |
| * <p> |
| * This feature subsets the following features: |
| * <ul> |
| * <li>'{@link org.eclipse.uml2.uml.NamedElement#getNamespace() <em>Namespace</em>}'</li> |
| * <li>'{@link org.eclipse.uml2.uml.Feature#getFeaturingClassifiers() <em>Featuring Classifier</em>}'</li> |
| * <li>'{@link org.eclipse.uml2.uml.RedefinableElement#getRedefinitionContexts() <em>Redefinition Context</em>}'</li> |
| * </ul> |
| * </p> |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * <!-- begin-model-doc --> |
| * The DataType that owns this Property, if any. |
| * <p>From package UML::Classification.</p> |
| * <!-- end-model-doc --> |
| * @return the value of the '<em>Datatype</em>' container reference. |
| * @see #setDatatype(DataType) |
| * @see org.eclipse.uml2.uml.UMLPackage#getProperty_Datatype() |
| * @see org.eclipse.uml2.uml.DataType#getOwnedAttributes |
| * @model opposite="ownedAttribute" transient="false" ordered="false" |
| * @generated |
| */ |
| DataType getDatatype(); |
| |
| /** |
| * Sets the value of the '{@link org.eclipse.uml2.uml.Property#getDatatype <em>Datatype</em>}' container reference. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @param value the new value of the '<em>Datatype</em>' container reference. |
| * @see #getDatatype() |
| * @generated |
| */ |
| void setDatatype(DataType value); |
| |
| /** |
| * Returns the value of the '<em><b>Interface</b></em>' container reference. |
| * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Interface#getOwnedAttributes <em>Owned Attribute</em>}'. |
| * <p> |
| * This feature subsets the following features: |
| * <ul> |
| * <li>'{@link org.eclipse.uml2.uml.NamedElement#getNamespace() <em>Namespace</em>}'</li> |
| * <li>'{@link org.eclipse.uml2.uml.Feature#getFeaturingClassifiers() <em>Featuring Classifier</em>}'</li> |
| * <li>'{@link org.eclipse.uml2.uml.RedefinableElement#getRedefinitionContexts() <em>Redefinition Context</em>}'</li> |
| * </ul> |
| * </p> |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * <!-- begin-model-doc --> |
| * The Interface that owns this Property, if any. |
| * <p>From package UML::Classification.</p> |
| * <!-- end-model-doc --> |
| * @return the value of the '<em>Interface</em>' container reference. |
| * @see #setInterface(Interface) |
| * @see org.eclipse.uml2.uml.UMLPackage#getProperty_Interface() |
| * @see org.eclipse.uml2.uml.Interface#getOwnedAttributes |
| * @model opposite="ownedAttribute" transient="false" ordered="false" |
| * @generated |
| */ |
| Interface getInterface(); |
| |
| /** |
| * Sets the value of the '{@link org.eclipse.uml2.uml.Property#getInterface <em>Interface</em>}' container reference. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @param value the new value of the '<em>Interface</em>' container reference. |
| * @see #getInterface() |
| * @generated |
| */ |
| void setInterface(Interface value); |
| |
| /** |
| * Returns the value of the '<em><b>Is Derived</b></em>' attribute. |
| * The default value is <code>"false"</code>. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * <!-- begin-model-doc --> |
| * Specifies whether the Property is derived, i.e., whether its value or values can be computed from other information. |
| * <p>From package UML::Classification.</p> |
| * <!-- end-model-doc --> |
| * @return the value of the '<em>Is Derived</em>' attribute. |
| * @see #setIsDerived(boolean) |
| * @see org.eclipse.uml2.uml.UMLPackage#getProperty_IsDerived() |
| * @model default="false" dataType="org.eclipse.uml2.types.Boolean" required="true" ordered="false" |
| * @generated |
| */ |
| boolean isDerived(); |
| |
| /** |
| * Sets the value of the '{@link org.eclipse.uml2.uml.Property#isDerived <em>Is Derived</em>}' attribute. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @param value the new value of the '<em>Is Derived</em>' attribute. |
| * @see #isDerived() |
| * @generated |
| */ |
| void setIsDerived(boolean value); |
| |
| /** |
| * Returns the value of the '<em><b>Is Derived Union</b></em>' attribute. |
| * The default value is <code>"false"</code>. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * <!-- begin-model-doc --> |
| * Specifies whether the property is derived as the union of all of the Properties that are constrained to subset it. |
| * <p>From package UML::Classification.</p> |
| * <!-- end-model-doc --> |
| * @return the value of the '<em>Is Derived Union</em>' attribute. |
| * @see #setIsDerivedUnion(boolean) |
| * @see org.eclipse.uml2.uml.UMLPackage#getProperty_IsDerivedUnion() |
| * @model default="false" dataType="org.eclipse.uml2.types.Boolean" required="true" ordered="false" |
| * @generated |
| */ |
| boolean isDerivedUnion(); |
| |
| /** |
| * Sets the value of the '{@link org.eclipse.uml2.uml.Property#isDerivedUnion <em>Is Derived Union</em>}' attribute. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @param value the new value of the '<em>Is Derived Union</em>' attribute. |
| * @see #isDerivedUnion() |
| * @generated |
| */ |
| void setIsDerivedUnion(boolean value); |
| |
| /** |
| * Returns the value of the '<em><b>Is ID</b></em>' attribute. |
| * The default value is <code>"false"</code>. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * <!-- begin-model-doc --> |
| * True indicates this property can be used to uniquely identify an instance of the containing Class. |
| * <p>From package UML::Classification.</p> |
| * <!-- end-model-doc --> |
| * @return the value of the '<em>Is ID</em>' attribute. |
| * @see #setIsID(boolean) |
| * @see org.eclipse.uml2.uml.UMLPackage#getProperty_IsID() |
| * @model default="false" dataType="org.eclipse.uml2.types.Boolean" required="true" ordered="false" |
| * @generated |
| */ |
| boolean isID(); |
| |
| /** |
| * Sets the value of the '{@link org.eclipse.uml2.uml.Property#isID <em>Is ID</em>}' attribute. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @param value the new value of the '<em>Is ID</em>' attribute. |
| * @see #isID() |
| * @generated |
| */ |
| void setIsID(boolean value); |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * <!-- begin-model-doc --> |
| * Retrieves a string representation of the default value for this property. |
| * <!-- end-model-doc --> |
| * @model ordered="false" |
| * @generated NOT |
| */ |
| String getDefault(); |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * <!-- begin-model-doc --> |
| * Sets the default value for this property based on the specified string representation. |
| * @param newDefault A string representation of the new default value. |
| * <!-- end-model-doc --> |
| * @model ordered="false" newDefaultRequired="true" newDefaultOrdered="false" |
| * @generated NOT |
| */ |
| void setDefault(String newDefault); |
| |
| /** |
| * Returns the value of the '<em><b>Aggregation</b></em>' attribute. |
| * The default value is <code>"none"</code>. |
| * The literals are from the enumeration {@link org.eclipse.uml2.uml.AggregationKind}. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * <!-- begin-model-doc --> |
| * Specifies the kind of aggregation that applies to the Property. |
| * <p>From package UML::Classification.</p> |
| * <!-- end-model-doc --> |
| * @return the value of the '<em>Aggregation</em>' attribute. |
| * @see org.eclipse.uml2.uml.AggregationKind |
| * @see #setAggregation(AggregationKind) |
| * @see org.eclipse.uml2.uml.UMLPackage#getProperty_Aggregation() |
| * @model default="none" required="true" ordered="false" |
| * @generated |
| */ |
| AggregationKind getAggregation(); |
| |
| /** |
| * Sets the value of the '{@link org.eclipse.uml2.uml.Property#getAggregation <em>Aggregation</em>}' attribute. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @param value the new value of the '<em>Aggregation</em>' attribute. |
| * @see org.eclipse.uml2.uml.AggregationKind |
| * @see #getAggregation() |
| * @generated |
| */ |
| void setAggregation(AggregationKind value); |
| |
| /** |
| * Returns the value of the '<em><b>Is Composite</b></em>' attribute. |
| * The default value is <code>"false"</code>. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * <!-- begin-model-doc --> |
| * If isComposite is true, the object containing the attribute is a container for the object or value contained in the attribute. This is a derived value, indicating whether the aggregation of the Property is composite or not. |
| * <p>From package UML::Classification.</p> |
| * <!-- end-model-doc --> |
| * @return the value of the '<em>Is Composite</em>' attribute. |
| * @see #setIsComposite(boolean) |
| * @see org.eclipse.uml2.uml.UMLPackage#getProperty_IsComposite() |
| * @model default="false" dataType="org.eclipse.uml2.types.Boolean" required="true" transient="true" volatile="true" derived="true" ordered="false" |
| * @generated |
| */ |
| boolean isComposite(); |
| |
| /** |
| * Sets the value of the '{@link org.eclipse.uml2.uml.Property#isComposite <em>Is Composite</em>}' attribute. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @param value the new value of the '<em>Is Composite</em>' attribute. |
| * @see #isComposite() |
| * @generated |
| */ |
| void setIsComposite(boolean value); |
| |
| /** |
| * Returns the value of the '<em><b>Class</b></em>' reference. |
| * <p> |
| * This feature subsets the following features: |
| * <ul> |
| * <li>'{@link org.eclipse.uml2.uml.NamedElement#getNamespace() <em>Namespace</em>}'</li> |
| * <li>'{@link org.eclipse.uml2.uml.Feature#getFeaturingClassifiers() <em>Featuring Classifier</em>}'</li> |
| * <li>'{@link org.eclipse.uml2.uml.RedefinableElement#getRedefinitionContexts() <em>Redefinition Context</em>}'</li> |
| * </ul> |
| * </p> |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * <!-- begin-model-doc --> |
| * The Class that owns this Property, if any. |
| * <p>From package UML::Classification.</p> |
| * <!-- end-model-doc --> |
| * @return the value of the '<em>Class</em>' reference. |
| * @see org.eclipse.uml2.uml.UMLPackage#getProperty_Class() |
| * @model transient="true" changeable="false" volatile="true" ordered="false" |
| * @generated |
| */ |
| org.eclipse.uml2.uml.Class getClass_(); |
| |
| /** |
| * Returns the value of the '<em><b>Redefined Property</b></em>' reference list. |
| * The list contents are of type {@link org.eclipse.uml2.uml.Property}. |
| * <p> |
| * This feature subsets the following features: |
| * <ul> |
| * <li>'{@link org.eclipse.uml2.uml.RedefinableElement#getRedefinedElements() <em>Redefined Element</em>}'</li> |
| * </ul> |
| * </p> |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * <!-- begin-model-doc --> |
| * The properties that are redefined by this property, if any. |
| * <p>From package UML::Classification.</p> |
| * <!-- end-model-doc --> |
| * @return the value of the '<em>Redefined Property</em>' reference list. |
| * @see org.eclipse.uml2.uml.UMLPackage#getProperty_RedefinedProperty() |
| * @model ordered="false" |
| * @generated |
| */ |
| EList<Property> getRedefinedProperties(); |
| |
| /** |
| * Retrieves the first {@link org.eclipse.uml2.uml.Property} with the specified '<em><b>Name</b></em>', and '<em><b>Type</b></em>' from the '<em><b>Redefined Property</b></em>' reference list. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @param name The '<em><b>Name</b></em>' of the {@link org.eclipse.uml2.uml.Property} to retrieve, or <code>null</code>. |
| * @param type The '<em><b>Type</b></em>' of the {@link org.eclipse.uml2.uml.Property} to retrieve, or <code>null</code>. |
| * @return The first {@link org.eclipse.uml2.uml.Property} with the specified '<em><b>Name</b></em>', and '<em><b>Type</b></em>', or <code>null</code>. |
| * @see #getRedefinedProperties() |
| * @generated |
| */ |
| Property getRedefinedProperty(String name, Type type); |
| |
| /** |
| * Retrieves the first {@link org.eclipse.uml2.uml.Property} with the specified '<em><b>Name</b></em>', and '<em><b>Type</b></em>' from the '<em><b>Redefined Property</b></em>' reference list. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @param name The '<em><b>Name</b></em>' of the {@link org.eclipse.uml2.uml.Property} to retrieve, or <code>null</code>. |
| * @param type The '<em><b>Type</b></em>' of the {@link org.eclipse.uml2.uml.Property} to retrieve, or <code>null</code>. |
| * @param ignoreCase Whether to ignore case in {@link java.lang.String} comparisons. |
| * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.Property} to retrieve, or <code>null</code>. |
| * @return The first {@link org.eclipse.uml2.uml.Property} with the specified '<em><b>Name</b></em>', and '<em><b>Type</b></em>', or <code>null</code>. |
| * @see #getRedefinedProperties() |
| * @generated |
| */ |
| Property getRedefinedProperty(String name, Type type, boolean ignoreCase, |
| EClass eClass); |
| |
| /** |
| * Returns the value of the '<em><b>Owning Association</b></em>' container reference. |
| * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Association#getOwnedEnds <em>Owned End</em>}'. |
| * <p> |
| * This feature subsets the following features: |
| * <ul> |
| * <li>'{@link org.eclipse.uml2.uml.Feature#getFeaturingClassifiers() <em>Featuring Classifier</em>}'</li> |
| * <li>'{@link org.eclipse.uml2.uml.NamedElement#getNamespace() <em>Namespace</em>}'</li> |
| * <li>'{@link org.eclipse.uml2.uml.Property#getAssociation() <em>Association</em>}'</li> |
| * <li>'{@link org.eclipse.uml2.uml.RedefinableElement#getRedefinitionContexts() <em>Redefinition Context</em>}'</li> |
| * </ul> |
| * </p> |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * <!-- begin-model-doc --> |
| * The owning association of this property, if any. |
| * <p>From package UML::Classification.</p> |
| * <!-- end-model-doc --> |
| * @return the value of the '<em>Owning Association</em>' container reference. |
| * @see #setOwningAssociation(Association) |
| * @see org.eclipse.uml2.uml.UMLPackage#getProperty_OwningAssociation() |
| * @see org.eclipse.uml2.uml.Association#getOwnedEnds |
| * @model opposite="ownedEnd" transient="false" ordered="false" |
| * @generated |
| */ |
| Association getOwningAssociation(); |
| |
| /** |
| * Sets the value of the '{@link org.eclipse.uml2.uml.Property#getOwningAssociation <em>Owning Association</em>}' container reference. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @param value the new value of the '<em>Owning Association</em>' container reference. |
| * @see #getOwningAssociation() |
| * @generated |
| */ |
| void setOwningAssociation(Association value); |
| |
| /** |
| * Returns the value of the '<em><b>Association</b></em>' reference. |
| * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Association#getMemberEnds <em>Member End</em>}'. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * <!-- begin-model-doc --> |
| * The Association of which this Property is a member, if any. |
| * <p>From package UML::Classification.</p> |
| * <!-- end-model-doc --> |
| * @return the value of the '<em>Association</em>' reference. |
| * @see #setAssociation(Association) |
| * @see org.eclipse.uml2.uml.UMLPackage#getProperty_Association() |
| * @see org.eclipse.uml2.uml.Association#getMemberEnds |
| * @model opposite="memberEnd" ordered="false" |
| * @generated |
| */ |
| Association getAssociation(); |
| |
| /** |
| * Sets the value of the '{@link org.eclipse.uml2.uml.Property#getAssociation <em>Association</em>}' reference. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @param value the new value of the '<em>Association</em>' reference. |
| * @see #getAssociation() |
| * @generated |
| */ |
| void setAssociation(Association value); |
| |
| /** |
| * Returns the value of the '<em><b>Default Value</b></em>' containment reference. |
| * <p> |
| * This feature subsets the following features: |
| * <ul> |
| * <li>'{@link org.eclipse.uml2.uml.Element#getOwnedElements() <em>Owned Element</em>}'</li> |
| * </ul> |
| * </p> |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * <!-- begin-model-doc --> |
| * A ValueSpecification that is evaluated to give a default value for the Property when an instance of the owning Classifier is instantiated. |
| * <p>From package UML::Classification.</p> |
| * <!-- end-model-doc --> |
| * @return the value of the '<em>Default Value</em>' containment reference. |
| * @see #setDefaultValue(ValueSpecification) |
| * @see org.eclipse.uml2.uml.UMLPackage#getProperty_DefaultValue() |
| * @model containment="true" resolveProxies="true" ordered="false" |
| * @generated |
| */ |
| ValueSpecification getDefaultValue(); |
| |
| /** |
| * Sets the value of the '{@link org.eclipse.uml2.uml.Property#getDefaultValue <em>Default Value</em>}' containment reference. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @param value the new value of the '<em>Default Value</em>' containment reference. |
| * @see #getDefaultValue() |
| * @generated |
| */ |
| void setDefaultValue(ValueSpecification value); |
| |
| /** |
| * Creates a new {@link org.eclipse.uml2.uml.ValueSpecification}, with the specified '<em><b>Name</b></em>', and '<em><b>Type</b></em>', and sets the '<em><b>Default Value</b></em>' containment reference. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @param name The '<em><b>Name</b></em>' for the new {@link org.eclipse.uml2.uml.ValueSpecification}, or <code>null</code>. |
| * @param type The '<em><b>Type</b></em>' for the new {@link org.eclipse.uml2.uml.ValueSpecification}, or <code>null</code>. |
| * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.ValueSpecification} to create. |
| * @return The new {@link org.eclipse.uml2.uml.ValueSpecification}. |
| * @see #getDefaultValue() |
| * @generated |
| */ |
| ValueSpecification createDefaultValue(String name, Type type, EClass eClass); |
| |
| /** |
| * Returns the value of the '<em><b>Opposite</b></em>' reference. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * <!-- begin-model-doc --> |
| * In the case where the Property is one end of a binary association this gives the other end. |
| * <p>From package UML::Classification.</p> |
| * <!-- end-model-doc --> |
| * @return the value of the '<em>Opposite</em>' reference. |
| * @see #setOpposite(Property) |
| * @see org.eclipse.uml2.uml.UMLPackage#getProperty_Opposite() |
| * @model transient="true" volatile="true" derived="true" ordered="false" |
| * @generated |
| */ |
| Property getOpposite(); |
| |
| /** |
| * Sets the value of the '{@link org.eclipse.uml2.uml.Property#getOpposite <em>Opposite</em>}' reference. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @param value the new value of the '<em>Opposite</em>' reference. |
| * @see #getOpposite() |
| * @generated |
| */ |
| void setOpposite(Property value); |
| |
| /** |
| * Returns the value of the '<em><b>Subsetted Property</b></em>' reference list. |
| * The list contents are of type {@link org.eclipse.uml2.uml.Property}. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * <!-- begin-model-doc --> |
| * The properties of which this Property is constrained to be a subset, if any. |
| * <p>From package UML::Classification.</p> |
| * <!-- end-model-doc --> |
| * @return the value of the '<em>Subsetted Property</em>' reference list. |
| * @see org.eclipse.uml2.uml.UMLPackage#getProperty_SubsettedProperty() |
| * @model ordered="false" |
| * @generated |
| */ |
| EList<Property> getSubsettedProperties(); |
| |
| /** |
| * Retrieves the first {@link org.eclipse.uml2.uml.Property} with the specified '<em><b>Name</b></em>', and '<em><b>Type</b></em>' from the '<em><b>Subsetted Property</b></em>' reference list. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @param name The '<em><b>Name</b></em>' of the {@link org.eclipse.uml2.uml.Property} to retrieve, or <code>null</code>. |
| * @param type The '<em><b>Type</b></em>' of the {@link org.eclipse.uml2.uml.Property} to retrieve, or <code>null</code>. |
| * @return The first {@link org.eclipse.uml2.uml.Property} with the specified '<em><b>Name</b></em>', and '<em><b>Type</b></em>', or <code>null</code>. |
| * @see #getSubsettedProperties() |
| * @generated |
| */ |
| Property getSubsettedProperty(String name, Type type); |
| |
| /** |
| * Retrieves the first {@link org.eclipse.uml2.uml.Property} with the specified '<em><b>Name</b></em>', and '<em><b>Type</b></em>' from the '<em><b>Subsetted Property</b></em>' reference list. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @param name The '<em><b>Name</b></em>' of the {@link org.eclipse.uml2.uml.Property} to retrieve, or <code>null</code>. |
| * @param type The '<em><b>Type</b></em>' of the {@link org.eclipse.uml2.uml.Property} to retrieve, or <code>null</code>. |
| * @param ignoreCase Whether to ignore case in {@link java.lang.String} comparisons. |
| * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.Property} to retrieve, or <code>null</code>. |
| * @return The first {@link org.eclipse.uml2.uml.Property} with the specified '<em><b>Name</b></em>', and '<em><b>Type</b></em>', or <code>null</code>. |
| * @see #getSubsettedProperties() |
| * @generated |
| */ |
| Property getSubsettedProperty(String name, Type type, boolean ignoreCase, |
| EClass eClass); |
| |
| /** |
| * Returns the value of the '<em><b>Qualifier</b></em>' containment reference list. |
| * The list contents are of type {@link org.eclipse.uml2.uml.Property}. |
| * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Property#getAssociationEnd <em>Association End</em>}'. |
| * <p> |
| * This feature subsets the following features: |
| * <ul> |
| * <li>'{@link org.eclipse.uml2.uml.Element#getOwnedElements() <em>Owned Element</em>}'</li> |
| * </ul> |
| * </p> |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * <!-- begin-model-doc --> |
| * An optional list of ordered qualifier attributes for the end. |
| * <p>From package UML::Classification.</p> |
| * <!-- end-model-doc --> |
| * @return the value of the '<em>Qualifier</em>' containment reference list. |
| * @see org.eclipse.uml2.uml.UMLPackage#getProperty_Qualifier() |
| * @see org.eclipse.uml2.uml.Property#getAssociationEnd |
| * @model opposite="associationEnd" containment="true" resolveProxies="true" |
| * @generated |
| */ |
| EList<Property> getQualifiers(); |
| |
| /** |
| * Creates a new {@link org.eclipse.uml2.uml.Property}, with the specified '<em><b>Name</b></em>', and '<em><b>Type</b></em>', and appends it to the '<em><b>Qualifier</b></em>' containment reference list. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @param name The '<em><b>Name</b></em>' for the new {@link org.eclipse.uml2.uml.Property}, or <code>null</code>. |
| * @param type The '<em><b>Type</b></em>' for the new {@link org.eclipse.uml2.uml.Property}, or <code>null</code>. |
| * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.Property} to create. |
| * @return The new {@link org.eclipse.uml2.uml.Property}. |
| * @see #getQualifiers() |
| * @generated |
| */ |
| Property createQualifier(String name, Type type, EClass eClass); |
| |
| /** |
| * Creates a new {@link org.eclipse.uml2.uml.Property}, with the specified '<em><b>Name</b></em>', and '<em><b>Type</b></em>', and appends it to the '<em><b>Qualifier</b></em>' containment reference list. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @param name The '<em><b>Name</b></em>' for the new {@link org.eclipse.uml2.uml.Property}, or <code>null</code>. |
| * @param type The '<em><b>Type</b></em>' for the new {@link org.eclipse.uml2.uml.Property}, or <code>null</code>. |
| * @return The new {@link org.eclipse.uml2.uml.Property}. |
| * @see #getQualifiers() |
| * @generated |
| */ |
| Property createQualifier(String name, Type type); |
| |
| /** |
| * Retrieves the first {@link org.eclipse.uml2.uml.Property} with the specified '<em><b>Name</b></em>', and '<em><b>Type</b></em>' from the '<em><b>Qualifier</b></em>' containment reference list. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @param name The '<em><b>Name</b></em>' of the {@link org.eclipse.uml2.uml.Property} to retrieve, or <code>null</code>. |
| * @param type The '<em><b>Type</b></em>' of the {@link org.eclipse.uml2.uml.Property} to retrieve, or <code>null</code>. |
| * @return The first {@link org.eclipse.uml2.uml.Property} with the specified '<em><b>Name</b></em>', and '<em><b>Type</b></em>', or <code>null</code>. |
| * @see #getQualifiers() |
| * @generated |
| */ |
| Property getQualifier(String name, Type type); |
| |
| /** |
| * Retrieves the first {@link org.eclipse.uml2.uml.Property} with the specified '<em><b>Name</b></em>', and '<em><b>Type</b></em>' from the '<em><b>Qualifier</b></em>' containment reference list. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @param name The '<em><b>Name</b></em>' of the {@link org.eclipse.uml2.uml.Property} to retrieve, or <code>null</code>. |
| * @param type The '<em><b>Type</b></em>' of the {@link org.eclipse.uml2.uml.Property} to retrieve, or <code>null</code>. |
| * @param ignoreCase Whether to ignore case in {@link java.lang.String} comparisons. |
| * @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.Property} to retrieve, or <code>null</code>. |
| * @param createOnDemand Whether to create a {@link org.eclipse.uml2.uml.Property} on demand if not found. |
| * @return The first {@link org.eclipse.uml2.uml.Property} with the specified '<em><b>Name</b></em>', and '<em><b>Type</b></em>', or <code>null</code>. |
| * @see #getQualifiers() |
| * @generated |
| */ |
| Property getQualifier(String name, Type type, boolean ignoreCase, |
| EClass eClass, boolean createOnDemand); |
| |
| /** |
| * Returns the value of the '<em><b>Association End</b></em>' container reference. |
| * It is bidirectional and its opposite is '{@link org.eclipse.uml2.uml.Property#getQualifiers <em>Qualifier</em>}'. |
| * <p> |
| * This feature subsets the following features: |
| * <ul> |
| * <li>'{@link org.eclipse.uml2.uml.Element#getOwner() <em>Owner</em>}'</li> |
| * </ul> |
| * </p> |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * <!-- begin-model-doc --> |
| * Designates the optional association end that owns a qualifier attribute. |
| * <p>From package UML::Classification.</p> |
| * <!-- end-model-doc --> |
| * @return the value of the '<em>Association End</em>' container reference. |
| * @see #setAssociationEnd(Property) |
| * @see org.eclipse.uml2.uml.UMLPackage#getProperty_AssociationEnd() |
| * @see org.eclipse.uml2.uml.Property#getQualifiers |
| * @model opposite="qualifier" transient="false" ordered="false" |
| * @generated |
| */ |
| Property getAssociationEnd(); |
| |
| /** |
| * Sets the value of the '{@link org.eclipse.uml2.uml.Property#getAssociationEnd <em>Association End</em>}' container reference. |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * @param value the new value of the '<em>Association End</em>' container reference. |
| * @see #getAssociationEnd() |
| * @generated |
| */ |
| void setAssociationEnd(Property value); |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * <!-- begin-model-doc --> |
| * A multiplicity on the composing end of a composite aggregation must not have an upper bound greater than 1. |
| * isComposite and association <> null implies opposite.upperBound() <= 1 |
| * @param diagnostics The chain of diagnostics to which problems are to be appended. |
| * @param context The cache of context-specific information. |
| * <!-- end-model-doc --> |
| * @model |
| * @generated |
| */ |
| boolean validateMultiplicityOfComposite(DiagnosticChain diagnostics, |
| Map<Object, Object> context); |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * <!-- begin-model-doc --> |
| * Subsetting may only occur when the context of the subsetting property conforms to the context of the subsetted property. |
| * subsettedProperty->notEmpty() implies |
| * (subsettingContext()->notEmpty() and subsettingContext()->forAll (sc | |
| * subsettedProperty->forAll(sp | |
| * sp.subsettingContext()->exists(c | sc.conformsTo(c))))) |
| * @param diagnostics The chain of diagnostics to which problems are to be appended. |
| * @param context The cache of context-specific information. |
| * <!-- end-model-doc --> |
| * @model |
| * @generated |
| */ |
| boolean validateSubsettingContextConforms(DiagnosticChain diagnostics, |
| Map<Object, Object> context); |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * <!-- begin-model-doc --> |
| * A redefined Property must be inherited from a more general Classifier. |
| * (redefinedProperty->notEmpty()) implies |
| * (redefinitionContext->notEmpty() and |
| * redefinedProperty->forAll(rp| |
| * ((redefinitionContext->collect(fc| |
| * fc.allParents()))->asSet())->collect(c| c.allFeatures())->asSet()->includes(rp))) |
| * @param diagnostics The chain of diagnostics to which problems are to be appended. |
| * @param context The cache of context-specific information. |
| * <!-- end-model-doc --> |
| * @model |
| * @generated |
| */ |
| boolean validateRedefinedPropertyInherited(DiagnosticChain diagnostics, |
| Map<Object, Object> context); |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * <!-- begin-model-doc --> |
| * A subsetting Property may strengthen the type of the subsetted Property, and its upper bound may be less. |
| * subsettedProperty->forAll(sp | |
| * self.type.conformsTo(sp.type) and |
| * ((self.upperBound()->notEmpty() and sp.upperBound()->notEmpty()) implies |
| * self.upperBound() <= sp.upperBound() )) |
| * @param diagnostics The chain of diagnostics to which problems are to be appended. |
| * @param context The cache of context-specific information. |
| * <!-- end-model-doc --> |
| * @model |
| * @generated |
| */ |
| boolean validateSubsettingRules(DiagnosticChain diagnostics, |
| Map<Object, Object> context); |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * <!-- begin-model-doc --> |
| * A derived union is derived. |
| * isDerivedUnion implies isDerived |
| * @param diagnostics The chain of diagnostics to which problems are to be appended. |
| * @param context The cache of context-specific information. |
| * <!-- end-model-doc --> |
| * @model |
| * @generated |
| */ |
| boolean validateDerivedUnionIsDerived(DiagnosticChain diagnostics, |
| Map<Object, Object> context); |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * <!-- begin-model-doc --> |
| * A derived union is read only. |
| * isDerivedUnion implies isReadOnly |
| * @param diagnostics The chain of diagnostics to which problems are to be appended. |
| * @param context The cache of context-specific information. |
| * <!-- end-model-doc --> |
| * @model |
| * @generated |
| */ |
| boolean validateDerivedUnionIsReadOnly(DiagnosticChain diagnostics, |
| Map<Object, Object> context); |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * <!-- begin-model-doc --> |
| * A Property may not subset a Property with the same name. |
| * subsettedProperty->forAll(sp | sp.name <> name) |
| * @param diagnostics The chain of diagnostics to which problems are to be appended. |
| * @param context The cache of context-specific information. |
| * <!-- end-model-doc --> |
| * @model |
| * @generated |
| */ |
| boolean validateSubsettedPropertyNames(DiagnosticChain diagnostics, |
| Map<Object, Object> context); |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * <!-- begin-model-doc --> |
| * If a Property is a classifier-owned end of a binary Association, its owner must be the type of the opposite end. |
| * (opposite->notEmpty() and owningAssociation->isEmpty()) implies classifier = opposite.type |
| * @param diagnostics The chain of diagnostics to which problems are to be appended. |
| * @param context The cache of context-specific information. |
| * <!-- end-model-doc --> |
| * @model |
| * @generated |
| */ |
| boolean validateTypeOfOppositeEnd(DiagnosticChain diagnostics, |
| Map<Object, Object> context); |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * <!-- begin-model-doc --> |
| * All qualified Properties must be Association ends |
| * qualifier->notEmpty() implies association->notEmpty() |
| * @param diagnostics The chain of diagnostics to which problems are to be appended. |
| * @param context The cache of context-specific information. |
| * <!-- end-model-doc --> |
| * @model |
| * @generated |
| */ |
| boolean validateQualifiedIsAssociationEnd(DiagnosticChain diagnostics, |
| Map<Object, Object> context); |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * <!-- begin-model-doc --> |
| * A Property can be a DeploymentTarget if it is a kind of Node and functions as a part in the internal structure of an encompassing Node. |
| * deployment->notEmpty() implies owner.oclIsKindOf(Node) and Node.allInstances()->exists(n | n.part->exists(p | p = self)) |
| * @param diagnostics The chain of diagnostics to which problems are to be appended. |
| * @param context The cache of context-specific information. |
| * <!-- end-model-doc --> |
| * @model |
| * @generated |
| */ |
| boolean validateDeploymentTarget(DiagnosticChain diagnostics, |
| Map<Object, Object> context); |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * <!-- begin-model-doc --> |
| * A binding of a PropertyTemplateParameter representing an attribute must be to an attribute. |
| * (self.isAttribute() |
| * and (templateParameterSubstitution->notEmpty()) |
| * implies (templateParameterSubstitution->forAll(ts | |
| * ts.formal.oclIsKindOf(Property) |
| * and ts.formal.oclAsType(Property).isAttribute()))) |
| * @param diagnostics The chain of diagnostics to which problems are to be appended. |
| * @param context The cache of context-specific information. |
| * <!-- end-model-doc --> |
| * @model |
| * @generated |
| */ |
| boolean validateBindingToAttribute(DiagnosticChain diagnostics, |
| Map<Object, Object> context); |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * <!-- begin-model-doc --> |
| * Sets the navigability of this property as indicated. |
| * @param isNavigable The new navigability. |
| * <!-- end-model-doc --> |
| * @model isNavigableDataType="org.eclipse.uml2.types.Boolean" isNavigableRequired="true" isNavigableOrdered="false" |
| * @generated |
| */ |
| void setIsNavigable(boolean isNavigable); |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * <!-- begin-model-doc --> |
| * Retrieves the other end of the (binary) association in which this property is a member end. |
| * <!-- end-model-doc --> |
| * @model kind="operation" ordered="false" |
| * @generated |
| */ |
| Property getOtherEnd(); |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * <!-- begin-model-doc --> |
| * Sets the default value for this property to the specified Boolean value. |
| * @param value The new default value. |
| * <!-- end-model-doc --> |
| * @model valueDataType="org.eclipse.uml2.types.Boolean" valueRequired="true" valueOrdered="false" |
| * @generated |
| */ |
| void setBooleanDefaultValue(boolean value); |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * <!-- begin-model-doc --> |
| * Sets the default value for this property to the specified integer value. |
| * @param value The new default value. |
| * <!-- end-model-doc --> |
| * @model valueDataType="org.eclipse.uml2.types.Integer" valueRequired="true" valueOrdered="false" |
| * @generated |
| */ |
| void setIntegerDefaultValue(int value); |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * <!-- begin-model-doc --> |
| * Sets the default value for this property to the specified string value. |
| * @param value The new default value. |
| * <!-- end-model-doc --> |
| * @model valueDataType="org.eclipse.uml2.types.String" valueRequired="true" valueOrdered="false" |
| * @generated |
| */ |
| void setStringDefaultValue(String value); |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * <!-- begin-model-doc --> |
| * Sets the default value for this property to the specified unlimited natural value. |
| * @param value The new default value. |
| * <!-- end-model-doc --> |
| * @model valueDataType="org.eclipse.uml2.types.UnlimitedNatural" valueRequired="true" valueOrdered="false" |
| * @generated |
| */ |
| void setUnlimitedNaturalDefaultValue(int value); |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * <!-- begin-model-doc --> |
| * The query isAttribute() is true if the Property is defined as an attribute of some Classifier. |
| * result = (not classifier->isEmpty()) |
| * <p>From package UML::Classification.</p> |
| * <!-- end-model-doc --> |
| * @model kind="operation" dataType="org.eclipse.uml2.types.Boolean" required="true" ordered="false" |
| * @generated |
| */ |
| boolean isAttribute(); |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * <!-- begin-model-doc --> |
| * Sets the default value for this property to the null value. |
| * <!-- end-model-doc --> |
| * @model |
| * @generated |
| */ |
| void setNullDefaultValue(); |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * <!-- begin-model-doc --> |
| * Sets the default value for this property to the specified real value. |
| * @param value The new default value. |
| * <!-- end-model-doc --> |
| * @model valueDataType="org.eclipse.uml2.types.Real" valueRequired="true" valueOrdered="false" |
| * @generated |
| */ |
| void setRealDefaultValue(double value); |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * <!-- begin-model-doc --> |
| * The query subsettingContext() gives the context for subsetting a Property. It consists, in the case of an attribute, of the corresponding Classifier, and in the case of an association end, all of the Classifiers at the other ends. |
| * result = (if association <> null |
| * then association.memberEnd->excluding(self)->collect(type)->asSet() |
| * else |
| * if classifier<>null |
| * then classifier->asSet() |
| * else Set{} |
| * endif |
| * endif) |
| * <p>From package UML::Classification.</p> |
| * <!-- end-model-doc --> |
| * @model ordered="false" |
| * @generated |
| */ |
| EList<Type> subsettingContext(); |
| |
| /** |
| * <!-- begin-user-doc --> |
| * <!-- end-user-doc --> |
| * <!-- begin-model-doc --> |
| * The query isNavigable() indicates whether it is possible to navigate across the property. |
| * result = (not classifier->isEmpty() or association.navigableOwnedEnd->includes(self)) |
| * <p>From package UML::Classification.</p> |
| * <!-- end-model-doc --> |
| * @model kind="operation" dataType="org.eclipse.uml2.types.Boolean" required="true" ordered="false" |
| * @generated |
| */ |
| boolean isNavigable(); |
| |
| } // Property |