Skip to main content
aboutsummaryrefslogtreecommitdiffstats
blob: 3a49f6883915aded8b48101e1e9ae9d4bcfa36a3 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
/*****************************************************************************
 * 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() {
		
	}
	
}

Back to the top