/***************************************************************************** * Copyright (c) 2011 CEA LIST. * * * 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: * CEA LIST - Initial API and implementation * *****************************************************************************/ package org.eclipse.papyrus.uml.alf.syntax.expressions; import java.util.List; import org.eclipse.papyrus.uml.alf.syntax.common.SyntaxElement; public abstract class Tuple extends SyntaxElement { // Synthesized Properties /* * The invocation expression of which this tuple is a part. */ public InvocationExpression invocation ; // Derived Properties public List<NamedExpression> input ; public List<OutputNamedExpression> output ; // Constraints /* * A name may be assigned in at most one argument expression of a tuple. */ public void checkTupleAssignmentsAfter() { } /* * The assignments before each expression in a tuple are the same as the assignments before the tuple, * except in the case of a name expression that defines a new local name, in which case the assigned source * for the new name is included in the assignments before the name expression. (Note that the assigned * source for a new name is included before the name expression so that the nameExpressionResolution * constraint is not violated.) The assignments before the tuple are the same as the assignments after the * feature reference of the invocation of the tuple, if the invocation has one, or otherwise the assignments * before the invocation. */ public void checkTupleAssignmentsBefore() { } /* * A tuple has the same number of inputs as its invocation has input parameters. For each input parameter, * the tuple has a corresponding input with the same name as the parameter and an expression that is the * matching argument from the tuple, or an empty sequence construction expression if there is no matching * argument. */ public void checkTupleInputDerivation() { } /* * An input parameter may only have a null argument if it has a multiplicity lower bound of 0. */ public void checkTupleNullInputs() { } /* * A tuple has the same number of outputs as its invocation has output parameters. For each output * parameter, the tuple has a corresponding output with the same name as the parameter and an expression * that is the matching argument from the tuple, or an empty sequence construction expression if there is no * matching argument. */ public void checkTupleOutputDerivation() { } /* * An output parameter may only have a null argument if it is an out parameter. */ public void checkTupleOutputs() { } }