generated from potassco/python-project-template
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcity-bike.coom
90 lines (72 loc) · 1.38 KB
/
city-bike.coom
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
// City Bike example
// Provided by denkbares GmbH
// see Baumeister et al.: Towards Industrial-scale Product Configuration (2024).
product {
Color color
0..1 Basket basket
Saddle saddle
Wheel frontWheel
Wheel rearWheel
Carrier carrier
}
structure Basket {
Position position
Color color
}
structure Carrier {
0..2 Bag bag
}
structure Bag {
Capacity capacity
Material material
}
enumeration Color {
Silver
White
Black
Blue
}
enumeration Position {
Front
Back
}
enumeration Saddle {
Standard
Comfort
Vintage
}
enumeration Wheel {
attribute num size
W26 = ( 26 )
W27 = ( 27 )
W28 = ( 28 )
W29 = ( 29 )
}
enumeration Capacity {
attribute num volume
B10 = ( 10 )
B20 = ( 20 )
B50 = ( 50 )
B100 = (100 )
}
enumeration Material {
Cotton
Leather
Polyester
}
behavior {
require color = basket.color
condition basket.position = Front
require frontWheel.size < 29
condition carrier.bag.capacity.volume = 100
require rearWheel.size >= 28
condition saddle = Vintage
require carrier.bag.material = Leather
require frontWheel.size = rearWheel.size
}
behavior Bag {
combinations (material capacity)
allow (Leather B10 )
allow (Cotton (B20, B50) )
allow (Polyester (B20, B50, B100))
}