rgen 0.8.4 → 0.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/CHANGELOG +8 -0
- data/Project.yaml +6 -5
- data/Rakefile +0 -1
- data/lib/rgen/ecore/ecore.rb +9 -3
- data/lib/rgen/ecore/ecore_to_json.rb +4 -5
- data/test/metamodel_builder_test.rb +4 -4
- data/test/metamodel_roundtrip_test/TestModel_Regenerated.rb +71 -0
- data/test/metamodel_roundtrip_test/houseMetamodel_Regenerated.ecore +162 -0
- data/test/metamodel_roundtrip_test/using_builtin_types.ecore +1 -1
- data/test/metamodel_roundtrip_test/using_builtin_types_serialized.ecore +9 -0
- data/test/model_builder/ecore_internal.rb +113 -0
- data/test/template_language_test/line_endings_mixed.txt +2 -0
- data/test/template_language_test/line_endings_unix.txt +2 -0
- data/test/template_language_test/line_endings_windows.txt +2 -0
- data/test/testmodel/ea_testmodel_regenerated.xml +813 -0
- data/test/util/file_cache_map_test/testdir/fileA +0 -0
- metadata +195 -173
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: 16727fb8ac509f1c0d992f9325059453b2a18c3060dcfaa580c73c5afbee80ef
|
|
4
|
+
data.tar.gz: 1558e56312461e98faafb733334af9cb995fc39facf6424a249158cd1542a024
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 54e6edfead77fb9e6065af8b09d3ee6998ea9bf5171ada9c4846dfcebfd0802d97c7c0708caffd9568b0e50ee7bf36c42813bcc3e21a7b50285bf37ba0693b3b
|
|
7
|
+
data.tar.gz: 48065bb8017587ee8c83f22b15337f2e7b2133560d466a0f91b9efc42ed6859337cacd2cc80f2e07883cd0571d3cf298daa6912cd9e07a2d6a01bf97b3f68768
|
data/CHANGELOG
CHANGED
|
@@ -222,3 +222,11 @@
|
|
|
222
222
|
|
|
223
223
|
* Add early loading for types which have attributes conflicting with Ruby reserved words.
|
|
224
224
|
* Change type checking code to use ObjectSpace to find class objects. This is to find classes with an unbound name.
|
|
225
|
+
|
|
226
|
+
=0.9.0
|
|
227
|
+
|
|
228
|
+
* Update to support Ruby 2.7, drop support for older Rubies
|
|
229
|
+
|
|
230
|
+
=0.9.1
|
|
231
|
+
|
|
232
|
+
* fixes in ecore model (make ENamedElement required; set default for EClass::{abstract, interface})
|
data/Project.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
name: rgen
|
|
2
2
|
gemspec: rgen.gemspec
|
|
3
3
|
git: https://github.com/mthiede/rgen.git
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.9.1
|
|
5
5
|
summary: Ruby Modelling and Generator Framework
|
|
6
6
|
email: martin dot thiede at gmx de
|
|
7
7
|
homepage: http://ruby-gen.org
|
|
@@ -15,7 +15,8 @@ exclude_files: ['**/*.bak']
|
|
|
15
15
|
encrypt_sources: false
|
|
16
16
|
dependencies:
|
|
17
17
|
https://rubygems.org:
|
|
18
|
-
- {name: nokogiri, version: ['
|
|
19
|
-
- {name: rake, version: '~> 12.0',
|
|
20
|
-
- {name: minitest, version: ['~> 5.0', '>= 5.10.1'],
|
|
21
|
-
- {name: minitest-fail-fast, version: '~> 0.1.0',
|
|
18
|
+
- {name: nokogiri, version: ['>= 1.11.2', '< 1.12'], development: true}
|
|
19
|
+
- {name: rake, version: '~> 12.0', development: true}
|
|
20
|
+
- {name: minitest, version: ['~> 5.0', '>= 5.10.1'], development: true}
|
|
21
|
+
- {name: minitest-fail-fast, version: '~> 0.1.0', development: true}
|
|
22
|
+
- {name: andand, version: '1.3.3', development: true}
|
data/Rakefile
CHANGED
data/lib/rgen/ecore/ecore.rb
CHANGED
|
@@ -12,9 +12,11 @@ module RGen
|
|
|
12
12
|
extend RGen::MetamodelBuilder::ModuleExtension
|
|
13
13
|
|
|
14
14
|
class EObject < RGen::MetamodelBuilder::MMBase
|
|
15
|
+
abstract
|
|
15
16
|
end
|
|
16
17
|
|
|
17
18
|
class EModelElement < RGen::MetamodelBuilder::MMBase
|
|
19
|
+
abstract
|
|
18
20
|
end
|
|
19
21
|
|
|
20
22
|
class EAnnotation < RGen::MetamodelBuilder::MMMultiple(EModelElement, EObject)
|
|
@@ -22,10 +24,12 @@ module RGen
|
|
|
22
24
|
end
|
|
23
25
|
|
|
24
26
|
class ENamedElement < EModelElement
|
|
25
|
-
|
|
27
|
+
abstract
|
|
28
|
+
has_attr 'name', String, :lowerBound => 1
|
|
26
29
|
end
|
|
27
30
|
|
|
28
31
|
class ETypedElement < ENamedElement
|
|
32
|
+
abstract
|
|
29
33
|
has_attr 'lowerBound', Integer, :defaultValueLiteral => "0"
|
|
30
34
|
has_attr 'ordered', Boolean, :defaultValueLiteral => "true"
|
|
31
35
|
has_attr 'unique', Boolean, :defaultValueLiteral => "true"
|
|
@@ -43,6 +47,7 @@ module RGen
|
|
|
43
47
|
end
|
|
44
48
|
|
|
45
49
|
class EStructuralFeature < ETypedElement
|
|
50
|
+
abstract
|
|
46
51
|
has_attr 'changeable', Boolean, :defaultValueLiteral => "true"
|
|
47
52
|
has_attr 'defaultValue', Object, :derived=>true
|
|
48
53
|
has_attr 'defaultValueLiteral', String
|
|
@@ -76,6 +81,7 @@ module RGen
|
|
|
76
81
|
end
|
|
77
82
|
|
|
78
83
|
class EClassifier < ENamedElement
|
|
84
|
+
abstract
|
|
79
85
|
has_attr 'defaultValue', Object, :derived=>true
|
|
80
86
|
has_attr 'instanceClass', Object, :derived=>true
|
|
81
87
|
has_attr 'instanceClassName', String
|
|
@@ -142,8 +148,8 @@ module RGen
|
|
|
142
148
|
end
|
|
143
149
|
|
|
144
150
|
class EClass < EClassifier
|
|
145
|
-
has_attr 'abstract', Boolean
|
|
146
|
-
has_attr 'interface', Boolean
|
|
151
|
+
has_attr 'abstract', Boolean, :defaultValueLiteral => "false"
|
|
152
|
+
has_attr 'interface', Boolean, :defaultValueLiteral => "false"
|
|
147
153
|
has_one 'eIDAttribute', ECore::EAttribute, :derived=>true, :resolveProxies=>false
|
|
148
154
|
|
|
149
155
|
has_many 'eAllAttributes', ECore::EAttribute, :derived=>true
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
require 'rgen/ecore/ecore'
|
|
2
2
|
require 'json'
|
|
3
|
+
require 'andand'
|
|
3
4
|
|
|
4
5
|
module RGen
|
|
5
6
|
|
|
@@ -105,10 +106,9 @@ def eenum(enum)
|
|
|
105
106
|
merge(edatatype(enum), {
|
|
106
107
|
:_class_ref => 'RGen.ECore.EEnum',
|
|
107
108
|
:eLiterals => enum.eLiterals.map do |l|
|
|
108
|
-
merge(
|
|
109
|
+
merge(enamedelement(l), {
|
|
109
110
|
:_class_ref => 'RGen.ECore.EEnumLiteral',
|
|
110
111
|
:value => l.value,
|
|
111
|
-
:literal => l.literal
|
|
112
112
|
})
|
|
113
113
|
end
|
|
114
114
|
})
|
|
@@ -116,6 +116,7 @@ end
|
|
|
116
116
|
|
|
117
117
|
def eannotation(e)
|
|
118
118
|
merge(emodelelement(e), {
|
|
119
|
+
:_class_ref => 'RGen.ECore.EAnnotation',
|
|
119
120
|
:source => e.source,
|
|
120
121
|
:details => e.details.map do |d|
|
|
121
122
|
merge({}, {
|
|
@@ -133,8 +134,6 @@ def etypedelement(te)
|
|
|
133
134
|
:unique => te.unique,
|
|
134
135
|
:lowerBound => te.lowerBound,
|
|
135
136
|
:upperBound => te.upperBound,
|
|
136
|
-
:many => te.many,
|
|
137
|
-
:required => te.required,
|
|
138
137
|
:eType => {:_ref => te.eType ? ref_id(te.eType) : nil}
|
|
139
138
|
})
|
|
140
139
|
end
|
|
@@ -172,7 +171,7 @@ def ref_id(obj)
|
|
|
172
171
|
end
|
|
173
172
|
|
|
174
173
|
def ref_parts(obj)
|
|
175
|
-
return [obj.name] unless obj
|
|
174
|
+
return [obj.name] unless obj.andand.eContainer
|
|
176
175
|
ref_parts(obj.eContainer) << obj.name
|
|
177
176
|
end
|
|
178
177
|
|
|
@@ -196,7 +196,7 @@ class MetamodelBuilderTest < MiniTest::Test
|
|
|
196
196
|
err = assert_raises StandardError do
|
|
197
197
|
sc.name = 5
|
|
198
198
|
end
|
|
199
|
-
assert_match /In (\w+::)+SimpleClass : Can not use a Fixnum where a String is expected/, err.message
|
|
199
|
+
assert_match /In (\w+::)+SimpleClass : Can not use a (Integer|Fixnum) where a String is expected/, err.message
|
|
200
200
|
assert_equal "EString", mm::SimpleClass.ecore.eAttributes.find{|a| a.name=="name"}.eType.name
|
|
201
201
|
|
|
202
202
|
assert_equal "xtest", sc.stringWithDefault
|
|
@@ -264,7 +264,7 @@ class MetamodelBuilderTest < MiniTest::Test
|
|
|
264
264
|
assert_equal "123456789012345680.0", sprintf("%.1f", sc.floatWithDefault)
|
|
265
265
|
end
|
|
266
266
|
sc.floatWithDefault = nil
|
|
267
|
-
sc.floatWithDefault = BigDecimal
|
|
267
|
+
sc.floatWithDefault = BigDecimal("123456789012345678.0")
|
|
268
268
|
assert sc.floatWithDefault.is_a?(BigDecimal)
|
|
269
269
|
assert_equal "123456789012345678.0", sc.floatWithDefault.to_s("F")
|
|
270
270
|
|
|
@@ -298,7 +298,7 @@ class MetamodelBuilderTest < MiniTest::Test
|
|
|
298
298
|
err = assert_raises(StandardError) do
|
|
299
299
|
o.addLiterals(1)
|
|
300
300
|
end
|
|
301
|
-
assert_match /In (\w+::)+ManyAttrClass : Can not use a Fixnum where a String is expected/, err.message
|
|
301
|
+
assert_match /In (\w+::)+ManyAttrClass : Can not use a (Integer|Fixnum) where a String is expected/, err.message
|
|
302
302
|
|
|
303
303
|
assert_equal [], o.literals
|
|
304
304
|
o.addLiterals("a")
|
|
@@ -333,7 +333,7 @@ class MetamodelBuilderTest < MiniTest::Test
|
|
|
333
333
|
err = assert_raises(StandardError) do
|
|
334
334
|
o.literals = 1
|
|
335
335
|
end
|
|
336
|
-
assert_match /In (\w+::)+ManyAttrClass : Can not use a Fixnum where a Enumerable is expected/, err.message
|
|
336
|
+
assert_match /In (\w+::)+ManyAttrClass : Can not use a (Integer|Fixnum) where a Enumerable is expected/, err.message
|
|
337
337
|
|
|
338
338
|
o.bools = [true, false, true, false]
|
|
339
339
|
assert_equal [true, false, true, false], o.bools
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
require 'rgen/metamodel_builder'
|
|
2
|
+
|
|
3
|
+
module HouseMetamodel
|
|
4
|
+
extend RGen::MetamodelBuilder::ModuleExtension
|
|
5
|
+
include RGen::MetamodelBuilder::DataTypes
|
|
6
|
+
|
|
7
|
+
SexEnum = Enum.new(:name => 'SexEnum', :literals =>[ :male, :female ])
|
|
8
|
+
|
|
9
|
+
class MeetingPlace < RGen::MetamodelBuilder::MMBase
|
|
10
|
+
annotation :source => "testmodel", :details => {'complexity' => '1', 'date_created' => '2006-07-12 08:40:46', 'date_modified' => '2006-07-12 08:44:02', 'ea_ntype' => '0', 'ea_stype' => 'Class', 'gentype' => 'Java', 'isSpecification' => 'false', 'package' => 'EAPK_A1B83D59_CAE1_422c_BA5F_D3624D7156AD', 'package_name' => 'HouseMetamodel', 'phase' => '1.0', 'status' => 'Proposed', 'style' => 'BackColor=-1;BorderColor=-1;BorderWidth=-1;FontColor=-1;VSwimLanes=0;HSwimLanes=0;BorderStyle=0;', 'tagged' => '0', 'version' => '1.0'}
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
class Person < RGen::MetamodelBuilder::MMBase
|
|
14
|
+
annotation 'complexity' => '1', 'date_created' => '2006-06-27 08:34:23', 'date_modified' => '2006-06-27 08:34:26', 'ea_ntype' => '0', 'ea_stype' => 'Class', 'gentype' => 'Java', 'isSpecification' => 'false', 'package' => 'EAPK_A1B83D59_CAE1_422c_BA5F_D3624D7156AD', 'package_name' => 'HouseMetamodel', 'phase' => '1.0', 'status' => 'Proposed', 'style' => 'BackColor=-1;BorderColor=-1;BorderWidth=-1;FontColor=-1;VSwimLanes=0;HSwimLanes=0;BorderStyle=0;', 'tagged' => '0', 'version' => '1.0'
|
|
15
|
+
has_attr 'sex', HouseMetamodel::SexEnum
|
|
16
|
+
has_attr 'id', Long
|
|
17
|
+
has_many_attr 'nicknames', String
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
class House < RGen::MetamodelBuilder::MMBase
|
|
21
|
+
annotation 'complexity' => '1', 'date_created' => '2005-09-16 19:52:18', 'date_modified' => '2006-02-28 08:29:19', 'ea_ntype' => '0', 'ea_stype' => 'Class', 'gentype' => 'Java', 'isSpecification' => 'false', 'package' => 'EAPK_A1B83D59_CAE1_422c_BA5F_D3624D7156AD', 'package_name' => 'HouseMetamodel', 'phase' => '1.0', 'status' => 'Proposed', 'stereotype' => 'dummy', 'style' => 'BackColor=-1;BorderColor=-1;BorderWidth=-1;FontColor=-1;VSwimLanes=0;HSwimLanes=0;BorderStyle=0;', 'tagged' => '0', 'version' => '1.0'
|
|
22
|
+
has_attr 'size', Integer
|
|
23
|
+
has_attr 'module', String
|
|
24
|
+
has_attr 'address', String, :changeable => false do
|
|
25
|
+
annotation 'collection' => 'false', 'containment' => 'Not Specified', 'derived' => '0', 'duplicates' => '0', 'ea_guid' => '{A8DF581B-9AC6-4f75-AB48-8FAEDFC6E068}', 'lowerBound' => '1', 'ordered' => '0', 'position' => '0', 'styleex' => 'volatile=0;', 'type' => 'String', 'upperBound' => '1'
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
module Rooms
|
|
31
|
+
extend RGen::MetamodelBuilder::ModuleExtension
|
|
32
|
+
include RGen::MetamodelBuilder::DataTypes
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
class Room < RGen::MetamodelBuilder::MMBase
|
|
36
|
+
abstract
|
|
37
|
+
annotation 'complexity' => '1', 'date_created' => '2005-09-16 19:52:28', 'date_modified' => '2006-06-22 21:15:25', 'ea_ntype' => '0', 'ea_stype' => 'Class', 'gentype' => 'Java', 'isSpecification' => 'false', 'package' => 'EAPK_F9D8C6E3_4DAD_4aa2_AD47_D0ABA4E93E08', 'package_name' => 'Rooms', 'phase' => '1.0', 'status' => 'Proposed', 'style' => 'BackColor=-1;BorderColor=-1;BorderWidth=-1;FontColor=-1;VSwimLanes=0;HSwimLanes=0;BorderStyle=0;', 'tagged' => '0', 'version' => '1.0'
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
class Bathroom < Room
|
|
41
|
+
annotation 'complexity' => '1', 'date_created' => '2006-06-27 08:32:25', 'date_modified' => '2006-06-27 08:34:23', 'ea_ntype' => '0', 'ea_stype' => 'Class', 'gentype' => 'Java', 'isSpecification' => 'false', 'package' => 'EAPK_F9D8C6E3_4DAD_4aa2_AD47_D0ABA4E93E08', 'package_name' => 'Rooms', 'phase' => '1.0', 'status' => 'Proposed', 'style' => 'BackColor=-1;BorderColor=-1;BorderWidth=-1;FontColor=-1;VSwimLanes=0;HSwimLanes=0;BorderStyle=0;', 'tagged' => '0', 'version' => '1.0'
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
class Kitchen < RGen::MetamodelBuilder::MMMultiple(HouseMetamodel::MeetingPlace, Room)
|
|
45
|
+
annotation 'complexity' => '1', 'date_created' => '2005-11-30 19:26:13', 'date_modified' => '2006-06-22 21:15:34', 'ea_ntype' => '0', 'ea_stype' => 'Class', 'gentype' => 'Java', 'isSpecification' => 'false', 'package' => 'EAPK_F9D8C6E3_4DAD_4aa2_AD47_D0ABA4E93E08', 'package_name' => 'Rooms', 'phase' => '1.0', 'status' => 'Proposed', 'style' => 'BackColor=-1;BorderColor=-1;BorderWidth=-1;FontColor=-1;VSwimLanes=0;HSwimLanes=0;BorderStyle=0;', 'tagged' => '0', 'version' => '1.0'
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
module DependingOnRooms
|
|
51
|
+
extend RGen::MetamodelBuilder::ModuleExtension
|
|
52
|
+
include RGen::MetamodelBuilder::DataTypes
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
class RoomSub < HouseMetamodel::Rooms::Room
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
HouseMetamodel::Person.has_many 'home', HouseMetamodel::House do
|
|
62
|
+
annotation 'containment' => 'Unspecified'
|
|
63
|
+
end
|
|
64
|
+
HouseMetamodel::House.has_one 'bathroom', HouseMetamodel::Rooms::Bathroom, :lowerBound => 1, :transient => true
|
|
65
|
+
HouseMetamodel::House.one_to_one 'kitchen', HouseMetamodel::Rooms::Kitchen, 'house', :lowerBound => 1, :opposite_lowerBound => 1 do
|
|
66
|
+
annotation 'containment' => 'Unspecified'
|
|
67
|
+
opposite_annotation 'containment' => 'Unspecified'
|
|
68
|
+
end
|
|
69
|
+
HouseMetamodel::House.contains_many 'room', HouseMetamodel::Rooms::Room, 'house', :lowerBound => 1 do
|
|
70
|
+
opposite_annotation 'containment' => 'Unspecified'
|
|
71
|
+
end
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
<ecore:EPackage name="HouseMetamodel" xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore">
|
|
2
|
+
<eClassifiers abstract="false" interface="false" instanceClassName="HouseMetamodel::MeetingPlace" name="MeetingPlace" eSubTypes="#//Rooms/Kitchen" xsi:type="ecore:EClass">
|
|
3
|
+
<eAnnotations source="testmodel" xsi:type="ecore:EAnnotation">
|
|
4
|
+
<details key="complexity" value="1" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
5
|
+
<details key="date_created" value="2006-07-12 08:40:46" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
6
|
+
<details key="date_modified" value="2006-07-12 08:44:02" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
7
|
+
<details key="ea_ntype" value="0" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
8
|
+
<details key="ea_stype" value="Class" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
9
|
+
<details key="gentype" value="Java" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
10
|
+
<details key="isSpecification" value="false" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
11
|
+
<details key="package" value="EAPK_A1B83D59_CAE1_422c_BA5F_D3624D7156AD" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
12
|
+
<details key="package_name" value="HouseMetamodel" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
13
|
+
<details key="phase" value="1.0" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
14
|
+
<details key="status" value="Proposed" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
15
|
+
<details key="style" value="BackColor=-1;BorderColor=-1;BorderWidth=-1;FontColor=-1;VSwimLanes=0;HSwimLanes=0;BorderStyle=0;" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
16
|
+
<details key="tagged" value="0" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
17
|
+
<details key="version" value="1.0" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
18
|
+
</eAnnotations>
|
|
19
|
+
</eClassifiers>
|
|
20
|
+
<eClassifiers abstract="false" interface="false" instanceClassName="HouseMetamodel::Person" name="Person" xsi:type="ecore:EClass">
|
|
21
|
+
<eStructuralFeatures iD="false" changeable="true" derived="false" transient="false" unsettable="false" volatile="false" lowerBound="0" ordered="true" unique="true" upperBound="1" name="sex" eType="#//SexEnum" xsi:type="ecore:EAttribute"/>
|
|
22
|
+
<eStructuralFeatures iD="false" changeable="true" derived="false" transient="false" unsettable="false" volatile="false" lowerBound="0" ordered="true" unique="true" upperBound="1" name="id" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//ELong" xsi:type="ecore:EAttribute"/>
|
|
23
|
+
<eStructuralFeatures iD="false" changeable="true" derived="false" transient="false" unsettable="false" volatile="false" lowerBound="0" ordered="true" unique="true" upperBound="-1" name="nicknames" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" xsi:type="ecore:EAttribute"/>
|
|
24
|
+
<eStructuralFeatures containment="false" resolveProxies="true" changeable="true" derived="false" transient="false" unsettable="false" volatile="false" lowerBound="0" ordered="true" unique="true" upperBound="-1" name="home" eType="#//House" xsi:type="ecore:EReference">
|
|
25
|
+
<eAnnotations xsi:type="ecore:EAnnotation">
|
|
26
|
+
<details key="containment" value="Unspecified" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
27
|
+
</eAnnotations>
|
|
28
|
+
</eStructuralFeatures>
|
|
29
|
+
<eAnnotations xsi:type="ecore:EAnnotation">
|
|
30
|
+
<details key="complexity" value="1" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
31
|
+
<details key="date_created" value="2006-06-27 08:34:23" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
32
|
+
<details key="date_modified" value="2006-06-27 08:34:26" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
33
|
+
<details key="ea_ntype" value="0" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
34
|
+
<details key="ea_stype" value="Class" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
35
|
+
<details key="gentype" value="Java" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
36
|
+
<details key="isSpecification" value="false" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
37
|
+
<details key="package" value="EAPK_A1B83D59_CAE1_422c_BA5F_D3624D7156AD" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
38
|
+
<details key="package_name" value="HouseMetamodel" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
39
|
+
<details key="phase" value="1.0" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
40
|
+
<details key="status" value="Proposed" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
41
|
+
<details key="style" value="BackColor=-1;BorderColor=-1;BorderWidth=-1;FontColor=-1;VSwimLanes=0;HSwimLanes=0;BorderStyle=0;" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
42
|
+
<details key="tagged" value="0" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
43
|
+
<details key="version" value="1.0" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
44
|
+
</eAnnotations>
|
|
45
|
+
</eClassifiers>
|
|
46
|
+
<eClassifiers abstract="false" interface="false" instanceClassName="HouseMetamodel::House" name="House" xsi:type="ecore:EClass">
|
|
47
|
+
<eStructuralFeatures iD="false" changeable="true" derived="false" transient="false" unsettable="false" volatile="false" lowerBound="0" ordered="true" unique="true" upperBound="1" name="size" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" xsi:type="ecore:EAttribute"/>
|
|
48
|
+
<eStructuralFeatures iD="false" changeable="true" derived="false" transient="false" unsettable="false" volatile="false" lowerBound="0" ordered="true" unique="true" upperBound="1" name="module" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" xsi:type="ecore:EAttribute"/>
|
|
49
|
+
<eStructuralFeatures iD="false" changeable="false" derived="false" transient="false" unsettable="false" volatile="false" lowerBound="0" ordered="true" unique="true" upperBound="1" name="address" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" xsi:type="ecore:EAttribute">
|
|
50
|
+
<eAnnotations xsi:type="ecore:EAnnotation">
|
|
51
|
+
<details key="collection" value="false" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
52
|
+
<details key="containment" value="Not Specified" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
53
|
+
<details key="derived" value="0" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
54
|
+
<details key="duplicates" value="0" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
55
|
+
<details key="ea_guid" value="{A8DF581B-9AC6-4f75-AB48-8FAEDFC6E068}" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
56
|
+
<details key="lowerBound" value="1" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
57
|
+
<details key="ordered" value="0" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
58
|
+
<details key="position" value="0" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
59
|
+
<details key="styleex" value="volatile=0;" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
60
|
+
<details key="type" value="String" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
61
|
+
<details key="upperBound" value="1" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
62
|
+
</eAnnotations>
|
|
63
|
+
</eStructuralFeatures>
|
|
64
|
+
<eStructuralFeatures containment="false" resolveProxies="true" changeable="true" derived="false" transient="true" unsettable="false" volatile="false" lowerBound="1" ordered="true" unique="true" upperBound="1" name="bathroom" eType="#//Rooms/Bathroom" xsi:type="ecore:EReference"/>
|
|
65
|
+
<eStructuralFeatures containment="false" resolveProxies="true" changeable="true" derived="false" transient="false" unsettable="false" volatile="false" lowerBound="1" ordered="true" unique="true" upperBound="1" name="kitchen" eOpposite="#//Rooms/Kitchen/house" eType="#//Rooms/Kitchen" xsi:type="ecore:EReference">
|
|
66
|
+
<eAnnotations xsi:type="ecore:EAnnotation">
|
|
67
|
+
<details key="containment" value="Unspecified" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
68
|
+
</eAnnotations>
|
|
69
|
+
</eStructuralFeatures>
|
|
70
|
+
<eStructuralFeatures containment="true" resolveProxies="true" changeable="true" derived="false" transient="false" unsettable="false" volatile="false" lowerBound="1" ordered="true" unique="true" upperBound="-1" name="room" eOpposite="#//Rooms/Room/house" eType="#//Rooms/Room" xsi:type="ecore:EReference"/>
|
|
71
|
+
<eAnnotations xsi:type="ecore:EAnnotation">
|
|
72
|
+
<details key="complexity" value="1" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
73
|
+
<details key="date_created" value="2005-09-16 19:52:18" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
74
|
+
<details key="date_modified" value="2006-02-28 08:29:19" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
75
|
+
<details key="ea_ntype" value="0" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
76
|
+
<details key="ea_stype" value="Class" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
77
|
+
<details key="gentype" value="Java" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
78
|
+
<details key="isSpecification" value="false" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
79
|
+
<details key="package" value="EAPK_A1B83D59_CAE1_422c_BA5F_D3624D7156AD" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
80
|
+
<details key="package_name" value="HouseMetamodel" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
81
|
+
<details key="phase" value="1.0" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
82
|
+
<details key="status" value="Proposed" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
83
|
+
<details key="stereotype" value="dummy" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
84
|
+
<details key="style" value="BackColor=-1;BorderColor=-1;BorderWidth=-1;FontColor=-1;VSwimLanes=0;HSwimLanes=0;BorderStyle=0;" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
85
|
+
<details key="tagged" value="0" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
86
|
+
<details key="version" value="1.0" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
87
|
+
</eAnnotations>
|
|
88
|
+
</eClassifiers>
|
|
89
|
+
<eClassifiers instanceClassName="HouseMetamodel::SexEnum" name="SexEnum" xsi:type="ecore:EEnum">
|
|
90
|
+
<eLiterals name="male" xsi:type="ecore:EEnumLiteral"/>
|
|
91
|
+
<eLiterals name="female" xsi:type="ecore:EEnumLiteral"/>
|
|
92
|
+
</eClassifiers>
|
|
93
|
+
<eSubpackages name="Rooms" xsi:type="ecore:EPackage">
|
|
94
|
+
<eClassifiers abstract="true" interface="false" instanceClassName="HouseMetamodel::Rooms::Room" name="Room" eSubTypes="#//Rooms/Bathroom #//Rooms/Kitchen #//DependingOnRooms/RoomSub" xsi:type="ecore:EClass">
|
|
95
|
+
<eStructuralFeatures containment="false" resolveProxies="true" changeable="true" derived="false" transient="false" unsettable="false" volatile="false" lowerBound="0" ordered="true" unique="true" upperBound="1" name="house" eOpposite="#//House/room" eType="#//House" xsi:type="ecore:EReference">
|
|
96
|
+
<eAnnotations xsi:type="ecore:EAnnotation">
|
|
97
|
+
<details key="containment" value="Unspecified" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
98
|
+
</eAnnotations>
|
|
99
|
+
</eStructuralFeatures>
|
|
100
|
+
<eAnnotations xsi:type="ecore:EAnnotation">
|
|
101
|
+
<details key="complexity" value="1" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
102
|
+
<details key="date_created" value="2005-09-16 19:52:28" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
103
|
+
<details key="date_modified" value="2006-06-22 21:15:25" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
104
|
+
<details key="ea_ntype" value="0" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
105
|
+
<details key="ea_stype" value="Class" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
106
|
+
<details key="gentype" value="Java" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
107
|
+
<details key="isSpecification" value="false" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
108
|
+
<details key="package" value="EAPK_F9D8C6E3_4DAD_4aa2_AD47_D0ABA4E93E08" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
109
|
+
<details key="package_name" value="Rooms" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
110
|
+
<details key="phase" value="1.0" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
111
|
+
<details key="status" value="Proposed" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
112
|
+
<details key="style" value="BackColor=-1;BorderColor=-1;BorderWidth=-1;FontColor=-1;VSwimLanes=0;HSwimLanes=0;BorderStyle=0;" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
113
|
+
<details key="tagged" value="0" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
114
|
+
<details key="version" value="1.0" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
115
|
+
</eAnnotations>
|
|
116
|
+
</eClassifiers>
|
|
117
|
+
<eClassifiers abstract="false" interface="false" instanceClassName="HouseMetamodel::Rooms::Bathroom" name="Bathroom" eSuperTypes="#//Rooms/Room" xsi:type="ecore:EClass">
|
|
118
|
+
<eAnnotations xsi:type="ecore:EAnnotation">
|
|
119
|
+
<details key="complexity" value="1" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
120
|
+
<details key="date_created" value="2006-06-27 08:32:25" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
121
|
+
<details key="date_modified" value="2006-06-27 08:34:23" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
122
|
+
<details key="ea_ntype" value="0" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
123
|
+
<details key="ea_stype" value="Class" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
124
|
+
<details key="gentype" value="Java" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
125
|
+
<details key="isSpecification" value="false" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
126
|
+
<details key="package" value="EAPK_F9D8C6E3_4DAD_4aa2_AD47_D0ABA4E93E08" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
127
|
+
<details key="package_name" value="Rooms" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
128
|
+
<details key="phase" value="1.0" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
129
|
+
<details key="status" value="Proposed" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
130
|
+
<details key="style" value="BackColor=-1;BorderColor=-1;BorderWidth=-1;FontColor=-1;VSwimLanes=0;HSwimLanes=0;BorderStyle=0;" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
131
|
+
<details key="tagged" value="0" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
132
|
+
<details key="version" value="1.0" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
133
|
+
</eAnnotations>
|
|
134
|
+
</eClassifiers>
|
|
135
|
+
<eClassifiers abstract="false" interface="false" instanceClassName="HouseMetamodel::Rooms::Kitchen" name="Kitchen" eSuperTypes="#//MeetingPlace #//Rooms/Room" xsi:type="ecore:EClass">
|
|
136
|
+
<eStructuralFeatures containment="false" resolveProxies="true" changeable="true" derived="false" transient="false" unsettable="false" volatile="false" lowerBound="1" ordered="true" unique="true" upperBound="1" name="house" eOpposite="#//House/kitchen" eType="#//House" xsi:type="ecore:EReference">
|
|
137
|
+
<eAnnotations xsi:type="ecore:EAnnotation">
|
|
138
|
+
<details key="containment" value="Unspecified" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
139
|
+
</eAnnotations>
|
|
140
|
+
</eStructuralFeatures>
|
|
141
|
+
<eAnnotations xsi:type="ecore:EAnnotation">
|
|
142
|
+
<details key="complexity" value="1" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
143
|
+
<details key="date_created" value="2005-11-30 19:26:13" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
144
|
+
<details key="date_modified" value="2006-06-22 21:15:34" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
145
|
+
<details key="ea_ntype" value="0" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
146
|
+
<details key="ea_stype" value="Class" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
147
|
+
<details key="gentype" value="Java" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
148
|
+
<details key="isSpecification" value="false" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
149
|
+
<details key="package" value="EAPK_F9D8C6E3_4DAD_4aa2_AD47_D0ABA4E93E08" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
150
|
+
<details key="package_name" value="Rooms" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
151
|
+
<details key="phase" value="1.0" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
152
|
+
<details key="status" value="Proposed" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
153
|
+
<details key="style" value="BackColor=-1;BorderColor=-1;BorderWidth=-1;FontColor=-1;VSwimLanes=0;HSwimLanes=0;BorderStyle=0;" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
154
|
+
<details key="tagged" value="0" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
155
|
+
<details key="version" value="1.0" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
156
|
+
</eAnnotations>
|
|
157
|
+
</eClassifiers>
|
|
158
|
+
</eSubpackages>
|
|
159
|
+
<eSubpackages name="DependingOnRooms" xsi:type="ecore:EPackage">
|
|
160
|
+
<eClassifiers abstract="false" interface="false" instanceClassName="HouseMetamodel::DependingOnRooms::RoomSub" name="RoomSub" eSuperTypes="#//Rooms/Room" xsi:type="ecore:EClass"/>
|
|
161
|
+
</eSubpackages>
|
|
162
|
+
</ecore:EPackage>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<ecore:EPackage name="P1" xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore">
|
|
2
|
-
<eClassifiers name="C1" xsi:type="ecore:EClass">
|
|
2
|
+
<eClassifiers abstract="false" interface="false" name="C1" xsi:type="ecore:EClass">
|
|
3
3
|
<eStructuralFeatures iD="false" changeable="true" derived="false" transient="false" unsettable="false" volatile="false" lowerBound="0" ordered="true" unique="true" upperBound="1" name="a1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" xsi:type="ecore:EAttribute"/>
|
|
4
4
|
<eStructuralFeatures iD="false" changeable="true" derived="false" transient="false" unsettable="false" volatile="false" lowerBound="0" ordered="true" unique="true" upperBound="1" name="a2" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" xsi:type="ecore:EAttribute"/>
|
|
5
5
|
<eStructuralFeatures iD="false" changeable="true" derived="false" transient="false" unsettable="false" volatile="false" lowerBound="0" ordered="true" unique="true" upperBound="1" name="a3" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//ELong" xsi:type="ecore:EAttribute"/>
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
<ecore:EPackage name="P1" xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore">
|
|
2
|
+
<eClassifiers abstract="false" interface="false" name="C1" xsi:type="ecore:EClass">
|
|
3
|
+
<eStructuralFeatures iD="false" changeable="true" derived="false" transient="false" unsettable="false" volatile="false" lowerBound="0" ordered="true" unique="true" upperBound="1" name="a1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" xsi:type="ecore:EAttribute"/>
|
|
4
|
+
<eStructuralFeatures iD="false" changeable="true" derived="false" transient="false" unsettable="false" volatile="false" lowerBound="0" ordered="true" unique="true" upperBound="1" name="a2" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" xsi:type="ecore:EAttribute"/>
|
|
5
|
+
<eStructuralFeatures iD="false" changeable="true" derived="false" transient="false" unsettable="false" volatile="false" lowerBound="0" ordered="true" unique="true" upperBound="1" name="a3" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//ELong" xsi:type="ecore:EAttribute"/>
|
|
6
|
+
<eStructuralFeatures iD="false" changeable="true" derived="false" transient="false" unsettable="false" volatile="false" lowerBound="0" ordered="true" unique="true" upperBound="1" name="a4" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFloat" xsi:type="ecore:EAttribute"/>
|
|
7
|
+
<eStructuralFeatures iD="false" changeable="true" derived="false" transient="false" unsettable="false" volatile="false" lowerBound="0" ordered="true" unique="true" upperBound="1" name="a5" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" xsi:type="ecore:EAttribute"/>
|
|
8
|
+
</eClassifiers>
|
|
9
|
+
</ecore:EPackage>
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
ePackage "ECore", :eSuperPackage => "" do
|
|
2
|
+
eClass "EObject", :abstract => true, :instanceClassName => "RGen::ECore::EObject"
|
|
3
|
+
eClass "EModelElement", :abstract => true, :instanceClassName => "RGen::ECore::EModelElement" do
|
|
4
|
+
eReference "eAnnotations", :containment => true, :resolveProxies => false, :eOpposite => "EAnnotation.eModelElement", :upperBound => -1, :eType => "EAnnotation"
|
|
5
|
+
end
|
|
6
|
+
eClass "EAnnotation", :eSuperTypes => ["EModelElement", "EObject"], :instanceClassName => "RGen::ECore::EAnnotation" do
|
|
7
|
+
eAttribute "source", :eType => ""
|
|
8
|
+
eReference "eModelElement", :eOpposite => "EModelElement.eAnnotations", :eType => "EModelElement"
|
|
9
|
+
eReference "details", :containment => true, :resolveProxies => false, :upperBound => -1, :eType => "EStringToStringMapEntry"
|
|
10
|
+
eReference "contents", :containment => true, :resolveProxies => false, :upperBound => -1, :eType => "EObject"
|
|
11
|
+
eReference "references", :upperBound => -1, :eType => "EObject"
|
|
12
|
+
end
|
|
13
|
+
eClass "ENamedElement", :abstract => true, :eSuperTypes => ["EModelElement"], :instanceClassName => "RGen::ECore::ENamedElement" do
|
|
14
|
+
eAttribute "name", :lowerBound => 1, :eType => ""
|
|
15
|
+
end
|
|
16
|
+
eClass "ETypedElement", :abstract => true, :eSuperTypes => ["ENamedElement"], :instanceClassName => "RGen::ECore::ETypedElement" do
|
|
17
|
+
eAttribute "lowerBound", :defaultValueLiteral => "0", :eType => ""
|
|
18
|
+
eAttribute "ordered", :defaultValueLiteral => "true", :eType => ""
|
|
19
|
+
eAttribute "unique", :defaultValueLiteral => "true", :eType => ""
|
|
20
|
+
eAttribute "upperBound", :defaultValueLiteral => "1", :eType => ""
|
|
21
|
+
eAttribute "many", :changeable => false, :derived => true, :transient => true, :volatile => true, :eType => ""
|
|
22
|
+
eAttribute "required", :changeable => false, :derived => true, :transient => true, :volatile => true, :eType => ""
|
|
23
|
+
eReference "eType", :eType => "EClassifier"
|
|
24
|
+
end
|
|
25
|
+
eClass "EStructuralFeature", :abstract => true, :eSuperTypes => ["ETypedElement"], :instanceClassName => "RGen::ECore::EStructuralFeature" do
|
|
26
|
+
eAttribute "changeable", :defaultValueLiteral => "true", :eType => ""
|
|
27
|
+
eAttribute "defaultValue", :changeable => false, :derived => true, :transient => true, :volatile => true, :eType => ""
|
|
28
|
+
eAttribute "defaultValueLiteral", :eType => ""
|
|
29
|
+
eAttribute "derived", :defaultValueLiteral => "false", :eType => ""
|
|
30
|
+
eAttribute "transient", :defaultValueLiteral => "false", :eType => ""
|
|
31
|
+
eAttribute "unsettable", :defaultValueLiteral => "false", :eType => ""
|
|
32
|
+
eAttribute "volatile", :defaultValueLiteral => "false", :eType => ""
|
|
33
|
+
eReference "eContainingClass", :eOpposite => "EClass.eStructuralFeatures", :eType => "EClass"
|
|
34
|
+
end
|
|
35
|
+
eClass "EAttribute", :eSuperTypes => ["EStructuralFeature"], :instanceClassName => "RGen::ECore::EAttribute" do
|
|
36
|
+
eAttribute "iD", :defaultValueLiteral => "false", :eType => ""
|
|
37
|
+
eReference "eAttributeType", :changeable => false, :derived => true, :transient => true, :volatile => true, :lowerBound => 1, :eType => "EDataType"
|
|
38
|
+
end
|
|
39
|
+
eClass "EClassifier", :abstract => true, :eSuperTypes => ["ENamedElement"], :instanceClassName => "RGen::ECore::EClassifier" do
|
|
40
|
+
eAttribute "defaultValue", :changeable => false, :derived => true, :transient => true, :volatile => true, :eType => ""
|
|
41
|
+
eAttribute "instanceClass", :changeable => false, :derived => true, :transient => true, :volatile => true, :eType => ""
|
|
42
|
+
eAttribute "instanceClassName", :eType => ""
|
|
43
|
+
eReference "ePackage", :eOpposite => "EPackage.eClassifiers", :eType => "EPackage"
|
|
44
|
+
end
|
|
45
|
+
eClass "EDataType", :eSuperTypes => ["EClassifier"], :instanceClassName => "RGen::ECore::EDataType" do
|
|
46
|
+
eAttribute "serializable", :eType => ""
|
|
47
|
+
end
|
|
48
|
+
eClass "EGenericType", :eSuperTypes => ["EDataType"], :instanceClassName => "RGen::ECore::EGenericType" do
|
|
49
|
+
eReference "eClassifier", :eType => "EDataType"
|
|
50
|
+
eReference "eParameter", :eOpposite => "EParameter.eGenericType", :eType => "EParameter"
|
|
51
|
+
eReference "eTypeArguments", :containment => true, :eOpposite => "ETypeArgument.eGenericType", :upperBound => -1, :eType => "ETypeArgument"
|
|
52
|
+
end
|
|
53
|
+
eClass "ETypeArgument", :eSuperTypes => ["EModelElement"], :instanceClassName => "RGen::ECore::ETypeArgument" do
|
|
54
|
+
eReference "eClassifier", :eType => "EDataType"
|
|
55
|
+
eReference "eGenericType", :eOpposite => "EGenericType.eTypeArguments", :eType => "EGenericType"
|
|
56
|
+
end
|
|
57
|
+
eClass "EEnum", :eSuperTypes => ["EDataType"], :instanceClassName => "RGen::ECore::EEnum" do
|
|
58
|
+
eReference "eLiterals", :containment => true, :resolveProxies => false, :eOpposite => "EEnumLiteral.eEnum", :upperBound => -1, :eType => "EEnumLiteral"
|
|
59
|
+
end
|
|
60
|
+
eClass "EEnumLiteral", :eSuperTypes => ["ENamedElement"], :instanceClassName => "RGen::ECore::EEnumLiteral" do
|
|
61
|
+
eAttribute "literal", :eType => ""
|
|
62
|
+
eAttribute "value", :eType => ""
|
|
63
|
+
eReference "eEnum", :eOpposite => "EEnum.eLiterals", :eType => "EEnum"
|
|
64
|
+
end
|
|
65
|
+
eClass "EFactory", :eSuperTypes => ["EModelElement"], :instanceClassName => "RGen::ECore::EFactory" do
|
|
66
|
+
eReference "ePackage", :resolveProxies => false, :eOpposite => "EPackage.eFactoryInstance", :transient => true, :lowerBound => 1, :eType => "EPackage"
|
|
67
|
+
end
|
|
68
|
+
eClass "EOperation", :eSuperTypes => ["ETypedElement"], :instanceClassName => "RGen::ECore::EOperation" do
|
|
69
|
+
eReference "eContainingClass", :eOpposite => "EClass.eOperations", :eType => "EClass"
|
|
70
|
+
eReference "eParameters", :containment => true, :resolveProxies => false, :eOpposite => "EParameter.eOperation", :upperBound => -1, :eType => "EParameter"
|
|
71
|
+
eReference "eExceptions", :upperBound => -1, :eType => "EClassifier"
|
|
72
|
+
end
|
|
73
|
+
eClass "EPackage", :eSuperTypes => ["ENamedElement"], :instanceClassName => "RGen::ECore::EPackage" do
|
|
74
|
+
eAttribute "nsPrefix", :eType => ""
|
|
75
|
+
eAttribute "nsURI", :eType => ""
|
|
76
|
+
eReference "eClassifiers", :containment => true, :eOpposite => "EClassifier.ePackage", :upperBound => -1, :eType => "EClassifier"
|
|
77
|
+
eReference "eSubpackages", :containment => true, :eOpposite => "eSuperPackage", :upperBound => -1, :eType => "EPackage"
|
|
78
|
+
eReference "eSuperPackage", :eOpposite => "eSubpackages", :eType => "EPackage"
|
|
79
|
+
eReference "eFactoryInstance", :eOpposite => "EFactory.ePackage", :eType => "EFactory"
|
|
80
|
+
end
|
|
81
|
+
eClass "EParameter", :eSuperTypes => ["ETypedElement"], :instanceClassName => "RGen::ECore::EParameter" do
|
|
82
|
+
eReference "eOperation", :eOpposite => "EOperation.eParameters", :eType => "EOperation"
|
|
83
|
+
eReference "eGenericType", :containment => true, :eOpposite => "EGenericType.eParameter", :eType => "EGenericType"
|
|
84
|
+
end
|
|
85
|
+
eClass "EReference", :eSuperTypes => ["EStructuralFeature"], :instanceClassName => "RGen::ECore::EReference" do
|
|
86
|
+
eAttribute "container", :changeable => false, :derived => true, :transient => true, :volatile => true, :eType => ""
|
|
87
|
+
eAttribute "containment", :defaultValueLiteral => "false", :eType => ""
|
|
88
|
+
eAttribute "resolveProxies", :defaultValueLiteral => "true", :eType => ""
|
|
89
|
+
eReference "eOpposite", :eType => "EReference"
|
|
90
|
+
eReference "eReferenceType", :changeable => false, :derived => true, :transient => true, :volatile => true, :lowerBound => 1, :eType => "EClass"
|
|
91
|
+
end
|
|
92
|
+
eClass "EStringToStringMapEntry", :instanceClassName => "RGen::ECore::EStringToStringMapEntry" do
|
|
93
|
+
eAttribute "key", :eType => ""
|
|
94
|
+
eAttribute "value", :eType => ""
|
|
95
|
+
end
|
|
96
|
+
eClass "EClass", :eSuperTypes => ["EClassifier"], :instanceClassName => "RGen::ECore::EClass" do
|
|
97
|
+
eAttribute "abstract", :defaultValueLiteral => "false", :eType => ""
|
|
98
|
+
eAttribute "interface", :defaultValueLiteral => "false", :eType => ""
|
|
99
|
+
eReference "eIDAttribute", :resolveProxies => false, :changeable => false, :derived => true, :transient => true, :volatile => true, :eType => "EAttribute"
|
|
100
|
+
eReference "eAllAttributes", :changeable => false, :derived => true, :transient => true, :volatile => true, :upperBound => -1, :eType => "EAttribute"
|
|
101
|
+
eReference "eAllContainments", :changeable => false, :derived => true, :transient => true, :volatile => true, :upperBound => -1, :eType => "EReference"
|
|
102
|
+
eReference "eAllOperations", :changeable => false, :derived => true, :transient => true, :volatile => true, :upperBound => -1, :eType => "EOperation"
|
|
103
|
+
eReference "eAllReferences", :changeable => false, :derived => true, :transient => true, :volatile => true, :upperBound => -1, :eType => "EReference"
|
|
104
|
+
eReference "eAllStructuralFeatures", :changeable => false, :derived => true, :transient => true, :volatile => true, :upperBound => -1, :eType => "EStructuralFeature"
|
|
105
|
+
eReference "eAllSuperTypes", :changeable => false, :derived => true, :transient => true, :volatile => true, :upperBound => -1, :eType => "EClass"
|
|
106
|
+
eReference "eAttributes", :changeable => false, :derived => true, :transient => true, :volatile => true, :upperBound => -1, :eType => "EAttribute"
|
|
107
|
+
eReference "eReferences", :changeable => false, :derived => true, :transient => true, :volatile => true, :upperBound => -1, :eType => "EReference"
|
|
108
|
+
eReference "eOperations", :containment => true, :resolveProxies => false, :eOpposite => "EOperation.eContainingClass", :upperBound => -1, :eType => "EOperation"
|
|
109
|
+
eReference "eStructuralFeatures", :containment => true, :resolveProxies => false, :eOpposite => "EStructuralFeature.eContainingClass", :upperBound => -1, :eType => "EStructuralFeature"
|
|
110
|
+
eReference "eSuperTypes", :eOpposite => "eSubTypes", :upperBound => -1, :eType => "EClass"
|
|
111
|
+
eReference "eSubTypes", :eOpposite => "eSuperTypes", :upperBound => -1, :eType => "EClass"
|
|
112
|
+
end
|
|
113
|
+
end
|