blob: 4782b47f72342e326b33dc087cbc37ca041168da [file] [log] [blame]
/**
* <copyright>
*
* Copyright (c) 2013, 2017 Willink Transformations 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:
* E.D.Willink - Initial API and implementation
*
* </copyright>
*/
package org.eclipse.qvtd.pivot.qvtimperative;
import java.util.Map;
import org.eclipse.emf.common.util.DiagnosticChain;
import org.eclipse.ocl.pivot.OCLExpression;
import org.eclipse.ocl.pivot.Property;
import org.eclipse.ocl.pivot.VariableDeclaration;
/**
* <!-- begin-user-doc -->
* A representation of the model object '<em><b>Set Statement</b></em>'.
* <!-- end-user-doc -->
*
* <!-- begin-model-doc -->
* A SetStatement sets an object property to a computed value.
*
* syntax: oclText[notify set name : type := expression;]
*
* If oclText[notify] is specified, execution defines the property as ready enabling
* mappings whose ObservableStatements are waiting for the value to resume.
* <!-- end-model-doc -->
*
* <p>
* The following features are supported:
* </p>
* <ul>
* <li>{@link org.eclipse.qvtd.pivot.qvtimperative.SetStatement#getTargetVariable <em>Target Variable</em>}</li>
* <li>{@link org.eclipse.qvtd.pivot.qvtimperative.SetStatement#getTargetProperty <em>Target Property</em>}</li>
* <li>{@link org.eclipse.qvtd.pivot.qvtimperative.SetStatement#isIsPartial <em>Is Partial</em>}</li>
* <li>{@link org.eclipse.qvtd.pivot.qvtimperative.SetStatement#isIsNotify <em>Is Notify</em>}</li>
* <li>{@link org.eclipse.qvtd.pivot.qvtimperative.SetStatement#isIsOpposite <em>Is Opposite</em>}</li>
* <li>{@link org.eclipse.qvtd.pivot.qvtimperative.SetStatement#getOwnedExpression <em>Owned Expression</em>}</li>
* <li>{@link org.eclipse.qvtd.pivot.qvtimperative.SetStatement#getResolvedProperty <em>Resolved Property</em>}</li>
* </ul>
*
* @see org.eclipse.qvtd.pivot.qvtimperative.QVTimperativePackage#getSetStatement()
* @generated
*/
public interface SetStatement extends ObservableStatement {
/**
* Returns the value of the '<em><b>Target Variable</b></em>' reference.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Target Variable</em>' reference isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Target Variable</em>' reference.
* @see #setTargetVariable(VariableDeclaration)
* @see org.eclipse.qvtd.pivot.qvtimperative.QVTimperativePackage#getSetStatement_TargetVariable()
* @generated
*/
VariableDeclaration getTargetVariable();
/**
* Sets the value of the '{@link org.eclipse.qvtd.pivot.qvtimperative.SetStatement#getTargetVariable <em>Target Variable</em>}' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Target Variable</em>' reference.
* @see #getTargetVariable()
* @generated
*/
void setTargetVariable(VariableDeclaration value);
/**
* Returns the value of the '<em><b>Target Property</b></em>' reference.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Target Property</em>' reference isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Target Property</em>' reference.
* @see #setTargetProperty(Property)
* @see org.eclipse.qvtd.pivot.qvtimperative.QVTimperativePackage#getSetStatement_TargetProperty()
* @generated
*/
Property getTargetProperty();
/**
* Sets the value of the '{@link org.eclipse.qvtd.pivot.qvtimperative.SetStatement#getTargetProperty <em>Target Property</em>}' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Target Property</em>' reference.
* @see #getTargetProperty()
* @generated
*/
void setTargetProperty(Property value);
/**
* Returns the value of the '<em><b>Is Partial</b></em>' attribute.
* The default value is <code>"false"</code>.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* If not isPartial, the value of the ownedExpression is assigned as the entirety of the targetProperty of the targetVariable.
*
* If isPartial, the value of the ownedExpression is included within the targetProperty of the targetVariable.
* <!-- end-model-doc -->
* @return the value of the '<em>Is Partial</em>' attribute.
* @see #setIsPartial(boolean)
* @see org.eclipse.qvtd.pivot.qvtimperative.QVTimperativePackage#getSetStatement_IsPartial()
* @generated
*/
boolean isIsPartial();
/**
* Sets the value of the '{@link org.eclipse.qvtd.pivot.qvtimperative.SetStatement#isIsPartial <em>Is Partial</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Is Partial</em>' attribute.
* @see #isIsPartial()
* @generated
*/
void setIsPartial(boolean value);
/**
* Returns the value of the '<em><b>Is Opposite</b></em>' attribute.
* The default value is <code>"false"</code>.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Is Opposite</em>' attribute isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Is Opposite</em>' attribute.
* @see #setIsOpposite(boolean)
* @see org.eclipse.qvtd.pivot.qvtimperative.QVTimperativePackage#getSetStatement_IsOpposite()
* @generated
*/
boolean isIsOpposite();
/**
* Sets the value of the '{@link org.eclipse.qvtd.pivot.qvtimperative.SetStatement#isIsOpposite <em>Is Opposite</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Is Opposite</em>' attribute.
* @see #isIsOpposite()
* @generated
*/
void setIsOpposite(boolean value);
/**
* Returns the value of the '<em><b>Is Notify</b></em>' attribute.
* The default value is <code>"false"</code>.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Is Notify</em>' attribute isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Is Notify</em>' attribute.
* @see #setIsNotify(boolean)
* @see org.eclipse.qvtd.pivot.qvtimperative.QVTimperativePackage#getSetStatement_IsNotify()
* @generated
*/
boolean isIsNotify();
/**
* Sets the value of the '{@link org.eclipse.qvtd.pivot.qvtimperative.SetStatement#isIsNotify <em>Is Notify</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Is Notify</em>' attribute.
* @see #isIsNotify()
* @generated
*/
void setIsNotify(boolean value);
/**
* Returns the value of the '<em><b>Owned Expression</b></em>' containment reference.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Owned Expression</em>' containment reference isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Owned Expression</em>' containment reference.
* @see #setOwnedExpression(OCLExpression)
* @see org.eclipse.qvtd.pivot.qvtimperative.QVTimperativePackage#getSetStatement_OwnedExpression()
* @generated
*/
OCLExpression getOwnedExpression();
/**
* Sets the value of the '{@link org.eclipse.qvtd.pivot.qvtimperative.SetStatement#getOwnedExpression <em>Owned Expression</em>}' containment reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Owned Expression</em>' containment reference.
* @see #getOwnedExpression()
* @generated
*/
void setOwnedExpression(OCLExpression value);
/**
* Returns the value of the '<em><b>Resolved Property</b></em>' reference.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Resolved Property</em>' reference isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Resolved Property</em>' reference.
* @see org.eclipse.qvtd.pivot.qvtimperative.QVTimperativePackage#getSetStatement_ResolvedProperty()
* @generated
*/
Property getResolvedProperty();
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
boolean validateCompatibleClassForProperty(DiagnosticChain diagnostics, Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
boolean validateCompatibleTypeForValue(DiagnosticChain diagnostics, Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
boolean validateValueDoesNotNavigateFromRealizedVariables(DiagnosticChain diagnostics, Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
boolean validateTargetPropertyIsNotReadOnly(DiagnosticChain diagnostics, Map<Object, Object> context);
} // SetStatement