summaryrefslogtreecommitdiffstats
blob: aaaad2208ba7249f7a5d5da63f34e80ae694aa89 (plain)
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
90
91
92
93
94
95
96
97
98
-- @name		Scatter
-- @version		1.0
-- @domains		Constraint solving
-- @authors		Frédéric Jouault, Jules White
-- @date		2007/10/04
-- @description	Scatter metamodel.
package Scatter {

	abstract class LocatedElement {
		attribute location[0-1] : String;
		attribute commentsBefore[*] ordered : String;
		attribute commentsAfter[*] ordered : String;
	}
	
	class SourceItem extends LocatedElement {
		reference features[*] ordered container : Feature;
	}
	
	class Feature extends LocatedElement {
		attribute name : String;
		reference directives[*] ordered container : Directive;
	}
	
-- @begin Directives
	abstract class Directive extends LocatedElement {}
	
	class Requires extends Directive {
		reference features[*] ordered : Feature;
	}
	
	class Instances extends Directive {
		reference cardinality container : Cardinality;
	}
	
	class Select extends Directive {
		reference cardinality container : Cardinality;
		reference features[*] ordered : Feature;
	}
	
	class Target extends Directive {
		reference constraint container : Expression;
	}

	class Set extends Directive {
		reference valueDefinition container : Expression;
	}
-- @end Directives
	
	abstract class Cardinality extends LocatedElement {}
	
	class BoundedCardinality extends Cardinality{
		attribute lower : Integer;
		attribute upper : Integer;
	}
	
	class FixedCardinality extends Cardinality{
		attribute value : Integer;
	}
	
--@begin Expressions
	abstract class Expression extends LocatedElement {}
	
	class FeaturePropertyExp extends Expression {
		reference feature : Feature;
		attribute name : String;
	}
	
	class SourcePropertyExp extends Expression {
		attribute name : String;
	}

	class TargetPropertyExp extends Expression {
		attribute name : String;
	}
	
	class BinaryOperatorExp extends Expression {
		reference left container : Expression;
		attribute operator : String;
		reference right container : Expression;
	}

	class EqualsExp extends Expression {
		reference left container : Expression;
		reference right container : Expression;
	}
	
	class ConstantExp extends Expression {
		attribute name : String;	
	}
--@end Expressions
    
}

package PrimitiveTypes {
	datatype Boolean;
	datatype Integer;
	datatype String;
}