rgen 0.5.4 → 0.6.0
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.
- data/CHANGELOG +28 -0
- data/Rakefile +3 -4
- data/lib/ea_support/uml13_ea_metamodel.rb +3 -3
- data/lib/ea_support/uml13_ea_to_uml13.rb +33 -2
- data/lib/ea_support/uml13_to_uml13_ea.rb +7 -0
- data/lib/mmgen/mm_ext/ecore_mmgen_ext.rb +4 -4
- data/lib/mmgen/templates/metamodel_generator.tpl +143 -143
- data/lib/rgen/ecore/ecore.rb +11 -1
- data/lib/rgen/ecore/ecore_interface.rb +47 -0
- data/lib/rgen/ecore/ecore_to_ruby.rb +166 -0
- data/lib/rgen/ecore/{ecore_transformer.rb → ruby_to_ecore.rb} +11 -11
- data/lib/rgen/environment.rb +15 -2
- data/lib/rgen/fragment/dump_file_cache.rb +63 -0
- data/lib/rgen/fragment/fragmented_model.rb +139 -0
- data/lib/rgen/fragment/model_fragment.rb +268 -0
- data/lib/rgen/instantiator/abstract_xml_instantiator.rb +44 -72
- data/lib/rgen/instantiator/default_xml_instantiator.rb +2 -2
- data/lib/rgen/instantiator/ecore_xml_instantiator.rb +16 -1
- data/lib/rgen/instantiator/json_instantiator.rb +16 -2
- data/lib/rgen/instantiator/nodebased_xml_instantiator.rb +118 -138
- data/lib/rgen/instantiator/qualified_name_resolver.rb +5 -1
- data/lib/rgen/instantiator/reference_resolver.rb +126 -24
- data/lib/rgen/instantiator/xmi11_instantiator.rb +6 -2
- data/lib/rgen/metamodel_builder.rb +18 -6
- data/lib/rgen/metamodel_builder/builder_extensions.rb +431 -407
- data/lib/rgen/metamodel_builder/builder_runtime.rb +8 -8
- data/lib/rgen/metamodel_builder/constant_order_helper.rb +4 -4
- data/lib/rgen/metamodel_builder/data_types.rb +5 -1
- data/lib/rgen/metamodel_builder/intermediate/feature.rb +167 -0
- data/lib/rgen/metamodel_builder/module_extension.rb +2 -2
- data/lib/rgen/model_builder.rb +10 -5
- data/lib/rgen/model_builder/builder_context.rb +17 -1
- data/lib/rgen/serializer/opposite_reference_filter.rb +18 -0
- data/lib/rgen/serializer/qualified_name_provider.rb +45 -0
- data/lib/rgen/template_language/template_container.rb +3 -1
- data/lib/rgen/{auto_class_creator.rb → util/auto_class_creator.rb} +6 -1
- data/lib/rgen/util/cached_glob.rb +67 -0
- data/lib/rgen/util/file_cache_map.rb +104 -0
- data/lib/rgen/util/file_change_detector.rb +78 -0
- data/lib/rgen/{method_delegation.rb → util/method_delegation.rb} +18 -3
- data/lib/rgen/{model_comparator.rb → util/model_comparator.rb} +17 -5
- data/lib/rgen/{model_comparator_base.rb → util/model_comparator_base.rb} +6 -1
- data/lib/rgen/{model_dumper.rb → util/model_dumper.rb} +6 -1
- data/lib/rgen/{name_helper.rb → util/name_helper.rb} +6 -1
- data/lib/rgen/util/pattern_matcher.rb +329 -0
- data/lib/transformers/uml13_to_ecore.rb +103 -60
- data/test/ecore_self_test.rb +43 -42
- data/test/json_test.rb +15 -0
- data/test/metamodel_builder_test.rb +361 -206
- data/test/metamodel_from_ecore_test.rb +45 -0
- data/test/metamodel_order_test.rb +10 -4
- data/test/metamodel_roundtrip_test.rb +2 -2
- data/test/metamodel_roundtrip_test/TestModel_Regenerated.rb +1 -1
- data/test/metamodel_roundtrip_test/houseMetamodel_Regenerated.ecore +50 -50
- data/test/method_delegation_test.rb +9 -9
- data/test/model_builder/ecore_internal.rb +19 -9
- data/test/model_builder/serializer_test.rb +1 -1
- data/test/reference_resolver_test.rb +79 -12
- data/test/rgen_test.rb +2 -0
- data/test/template_language_test.rb +7 -0
- data/test/template_language_test/templates/callback_indent_test/a.tpl +12 -0
- data/test/template_language_test/templates/callback_indent_test/b.tpl +5 -0
- data/test/testmodel/ea_testmodel_regenerated.xml +588 -583
- data/test/transformer_test.rb +3 -3
- data/test/util/file_cache_map_test.rb +91 -0
- data/test/util/file_cache_map_test/testdir/fileA +1 -0
- data/test/util_test.rb +4 -0
- data/test/xml_instantiator_test.rb +139 -135
- metadata +49 -104
- data/lib/rgen/ecore/ecore_instantiator.rb +0 -31
- data/lib/rgen/metamodel_builder/metamodel_description.rb +0 -232
- data/redist/xmlscan/ChangeLog +0 -1301
- data/redist/xmlscan/README +0 -34
- data/redist/xmlscan/THANKS +0 -11
- data/redist/xmlscan/doc/changes.html +0 -74
- data/redist/xmlscan/doc/changes.rd +0 -80
- data/redist/xmlscan/doc/en/conformance.html +0 -136
- data/redist/xmlscan/doc/en/conformance.rd +0 -152
- data/redist/xmlscan/doc/en/manual.html +0 -356
- data/redist/xmlscan/doc/en/manual.rd +0 -402
- data/redist/xmlscan/doc/ja/conformance.ja.html +0 -118
- data/redist/xmlscan/doc/ja/conformance.ja.rd +0 -134
- data/redist/xmlscan/doc/ja/manual.ja.html +0 -325
- data/redist/xmlscan/doc/ja/manual.ja.rd +0 -370
- data/redist/xmlscan/doc/src/Makefile +0 -41
- data/redist/xmlscan/doc/src/conformance.rd.src +0 -256
- data/redist/xmlscan/doc/src/langsplit.rb +0 -110
- data/redist/xmlscan/doc/src/manual.rd.src +0 -614
- data/redist/xmlscan/install.rb +0 -41
- data/redist/xmlscan/lib/xmlscan/encoding.rb +0 -311
- data/redist/xmlscan/lib/xmlscan/htmlscan.rb +0 -289
- data/redist/xmlscan/lib/xmlscan/namespace.rb +0 -352
- data/redist/xmlscan/lib/xmlscan/parser.rb +0 -299
- data/redist/xmlscan/lib/xmlscan/scanner.rb +0 -1109
- data/redist/xmlscan/lib/xmlscan/version.rb +0 -22
- data/redist/xmlscan/lib/xmlscan/visitor.rb +0 -158
- data/redist/xmlscan/lib/xmlscan/xmlchar.rb +0 -441
- data/redist/xmlscan/memo/CONFORMANCE +0 -1249
- data/redist/xmlscan/memo/PRODUCTIONS +0 -195
- data/redist/xmlscan/memo/contentspec.ry +0 -335
- data/redist/xmlscan/samples/chibixml.rb +0 -105
- data/redist/xmlscan/samples/getxmlchar.rb +0 -122
- data/redist/xmlscan/samples/rexml.rb +0 -159
- data/redist/xmlscan/samples/xmlbench.rb +0 -88
- data/redist/xmlscan/samples/xmlbench/parser/chibixml.rb +0 -22
- data/redist/xmlscan/samples/xmlbench/parser/nqxml.rb +0 -29
- data/redist/xmlscan/samples/xmlbench/parser/rexml.rb +0 -62
- data/redist/xmlscan/samples/xmlbench/parser/xmlparser.rb +0 -22
- data/redist/xmlscan/samples/xmlbench/parser/xmlscan-0.0.10.rb +0 -62
- data/redist/xmlscan/samples/xmlbench/parser/xmlscan-chibixml.rb +0 -22
- data/redist/xmlscan/samples/xmlbench/parser/xmlscan-rexml.rb +0 -22
- data/redist/xmlscan/samples/xmlbench/parser/xmlscan.rb +0 -99
- data/redist/xmlscan/samples/xmlbench/xmlbench-lib.rb +0 -116
- data/redist/xmlscan/samples/xmlconftest.rb +0 -200
- data/redist/xmlscan/test.rb +0 -7
- data/redist/xmlscan/tests/deftestcase.rb +0 -73
- data/redist/xmlscan/tests/runtest.rb +0 -47
- data/redist/xmlscan/tests/testall.rb +0 -14
- data/redist/xmlscan/tests/testencoding.rb +0 -438
- data/redist/xmlscan/tests/testhtmlscan.rb +0 -752
- data/redist/xmlscan/tests/testnamespace.rb +0 -457
- data/redist/xmlscan/tests/testparser.rb +0 -591
- data/redist/xmlscan/tests/testscanner.rb +0 -1749
- data/redist/xmlscan/tests/testxmlchar.rb +0 -143
- data/redist/xmlscan/tests/visitor.rb +0 -34
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
$:.unshift File.join(File.dirname(__FILE__),"..","test")
|
|
2
|
+
|
|
3
|
+
require 'metamodel_builder_test'
|
|
4
|
+
require 'rgen/ecore/ecore_to_ruby'
|
|
5
|
+
|
|
6
|
+
# this test suite runs all the tests of MetamodelBuilderTest with the TestMetamodel
|
|
7
|
+
# replaced by the result of feeding its ecore model through ECoreToRuby
|
|
8
|
+
#
|
|
9
|
+
class MetamodelFromEcoreTest < MetamodelBuilderTest
|
|
10
|
+
|
|
11
|
+
# clone the ecore model, because it will be modified below
|
|
12
|
+
test_ecore = Marshal.load(Marshal.dump(TestMetamodel.ecore))
|
|
13
|
+
# some EEnum types are not hooked into the EPackage because they do not
|
|
14
|
+
# appear with a constant assignment in TestMetamodel
|
|
15
|
+
# fix this by explicitly assigning the ePackage
|
|
16
|
+
# also fix the name of anonymous enums
|
|
17
|
+
test_ecore.eClassifiers.find{|c| c.name == "SimpleClass"}.
|
|
18
|
+
eAttributes.select{|a| a.name == "kind" || a.name == "kindWithDefault"}.each{|a|
|
|
19
|
+
a.eType.name = "KindType"
|
|
20
|
+
a.eType.ePackage = test_ecore}
|
|
21
|
+
test_ecore.eClassifiers.find{|c| c.name == "ManyAttrClass"}.
|
|
22
|
+
eAttributes.select{|a| a.name == "enums"}.each{|a|
|
|
23
|
+
a.eType.name = "ABCEnum"
|
|
24
|
+
a.eType.ePackage = test_ecore}
|
|
25
|
+
|
|
26
|
+
MetamodelFromEcore = RGen::ECore::ECoreToRuby.new.create_module(test_ecore)
|
|
27
|
+
|
|
28
|
+
def mm
|
|
29
|
+
MetamodelFromEcore
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
# alternative implementation for dynamic variant
|
|
33
|
+
def test_bad_default_value_literal
|
|
34
|
+
package = RGen::ECore::EPackage.new(:name => "Package1", :eClassifiers => [
|
|
35
|
+
RGen::ECore::EClass.new(:name => "Class1", :eStructuralFeatures => [
|
|
36
|
+
RGen::ECore::EAttribute.new(:name => "value", :eType => RGen::ECore::EInt, :defaultValueLiteral => "x")])])
|
|
37
|
+
mod = RGen::ECore::ECoreToRuby.new.create_module(package)
|
|
38
|
+
obj = mod::Class1.new
|
|
39
|
+
# the error is raised only when the feature is lazily constructed
|
|
40
|
+
assert_raise StandardError do
|
|
41
|
+
obj.value
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
|
|
@@ -4,7 +4,7 @@ require 'test/unit'
|
|
|
4
4
|
require 'rgen/ecore/ecore'
|
|
5
5
|
require 'rgen/array_extensions'
|
|
6
6
|
|
|
7
|
-
class
|
|
7
|
+
class MetamodelOrderTest < Test::Unit::TestCase
|
|
8
8
|
include RGen::ECore
|
|
9
9
|
|
|
10
10
|
module TestMM1
|
|
@@ -77,7 +77,7 @@ class MetamodelReflectionTest < Test::Unit::TestCase
|
|
|
77
77
|
|
|
78
78
|
TestMM1::Module11.extend(RGen::MetamodelBuilder::ModuleExtension)
|
|
79
79
|
# this is a critical case: because of the previous extension of Module11 which is in a different
|
|
80
|
-
# hierarchy,
|
|
80
|
+
# hierarchy, DataType21 is looked for in Module11 and its parents; finally it is not
|
|
81
81
|
# found and the definition is ignored for order calculation
|
|
82
82
|
DataType21 = RGen::MetamodelBuilder::DataTypes::Enum.new(:name => "DataType21", :literals => {:b => 1})
|
|
83
83
|
|
|
@@ -95,6 +95,8 @@ class MetamodelReflectionTest < Test::Unit::TestCase
|
|
|
95
95
|
|
|
96
96
|
# if there is no other class or module after the last datatype, it won't show up in _constantOrder
|
|
97
97
|
# however, the order of eClassifiers can still be reconstructed
|
|
98
|
+
# note that this can not be tested if the test is executed as part of the whole testsuite
|
|
99
|
+
# since there will be classes and modules created within other test files
|
|
98
100
|
DataType22 = RGen::MetamodelBuilder::DataTypes::Enum.new(:name => "DataType22", :literals => {:b => 1})
|
|
99
101
|
end
|
|
100
102
|
|
|
@@ -102,7 +104,10 @@ class MetamodelReflectionTest < Test::Unit::TestCase
|
|
|
102
104
|
assert_equal ["Class11", "Module11", "DataType11", "Class12", "Class13"], TestMM1._constantOrder
|
|
103
105
|
assert_equal ["DataType111", "DataType112", "Class111", "DataType113", "Module112", "DataType114", "DataType115", "DataType116"], TestMM1::Module11._constantOrder
|
|
104
106
|
assert_equal ["Class1122"], TestMM1::Module11::Module112._constantOrder
|
|
105
|
-
|
|
107
|
+
if File.basename($0) == "metamodel_order_test.rb"
|
|
108
|
+
# this won't work if run in the whole test suite (see comment at DataType22)
|
|
109
|
+
assert_equal ["Module21", "Module22", "Module23"], TestMM2._constantOrder
|
|
110
|
+
end
|
|
106
111
|
end
|
|
107
112
|
|
|
108
113
|
def test_classifier_order
|
|
@@ -111,7 +116,8 @@ class MetamodelReflectionTest < Test::Unit::TestCase
|
|
|
111
116
|
assert_equal ["Class11", "DataType11", "Class12", "Class13"], TestMM1.ecore.eClassifiers.name
|
|
112
117
|
assert_equal ["DataType111", "DataType112", "Class111", "DataType113", "DataType114", "DataType115", "DataType116", "Class112"], TestMM1::Module11.ecore.eClassifiers.name
|
|
113
118
|
assert_equal ["Class1122", "Class1121"], TestMM1::Module11::Module112.ecore.eClassifiers.name
|
|
114
|
-
|
|
119
|
+
# no classifiers in TestMM2._constantOrder, so the datatypes can appear in arbitrary order
|
|
120
|
+
assert_equal ["DataType21","DataType22"], TestMM2.ecore.eClassifiers.name.sort
|
|
115
121
|
end
|
|
116
122
|
|
|
117
123
|
def test_subpackage_order
|
|
@@ -2,7 +2,7 @@ $:.unshift File.join(File.dirname(__FILE__),"..","lib")
|
|
|
2
2
|
|
|
3
3
|
require 'test/unit'
|
|
4
4
|
require 'rgen/array_extensions'
|
|
5
|
-
require 'rgen/model_comparator'
|
|
5
|
+
require 'rgen/util/model_comparator'
|
|
6
6
|
require 'mmgen/metamodel_generator'
|
|
7
7
|
require 'rgen/instantiator/ecore_xml_instantiator'
|
|
8
8
|
require 'rgen/serializer/xmi20_serializer'
|
|
@@ -12,7 +12,7 @@ class MetamodelRoundtripTest < Test::Unit::TestCase
|
|
|
12
12
|
TEST_DIR = File.dirname(__FILE__)+"/metamodel_roundtrip_test"
|
|
13
13
|
|
|
14
14
|
include MMGen::MetamodelGenerator
|
|
15
|
-
include RGen::ModelComparator
|
|
15
|
+
include RGen::Util::ModelComparator
|
|
16
16
|
|
|
17
17
|
module Regenerated
|
|
18
18
|
Inside = binding
|
|
@@ -60,7 +60,7 @@ end
|
|
|
60
60
|
HouseMetamodel::Person.has_many 'home', HouseMetamodel::House do
|
|
61
61
|
annotation 'containment' => 'Unspecified'
|
|
62
62
|
end
|
|
63
|
-
HouseMetamodel::House.has_one 'bathroom', HouseMetamodel::Rooms::Bathroom, :
|
|
63
|
+
HouseMetamodel::House.has_one 'bathroom', HouseMetamodel::Rooms::Bathroom, :lowerBound => 1, :transient => true
|
|
64
64
|
HouseMetamodel::House.one_to_one 'kitchen', HouseMetamodel::Rooms::Kitchen, 'house', :lowerBound => 1, :opposite_lowerBound => 1 do
|
|
65
65
|
annotation 'containment' => 'Unspecified'
|
|
66
66
|
opposite_annotation 'containment' => 'Unspecified'
|
|
@@ -1,20 +1,20 @@
|
|
|
1
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
2
|
<eClassifiers abstract="false" interface="false" instanceClassName="HouseMetamodel::MeetingPlace" name="MeetingPlace" eSubTypes="#//Rooms/Kitchen" xsi:type="ecore:EClass">
|
|
3
3
|
<eAnnotations source="testmodel" xsi:type="ecore:EAnnotation">
|
|
4
|
-
<details key="
|
|
4
|
+
<details key="complexity" value="1" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
5
5
|
<details key="date_created" value="2006-07-12 08:40:46" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
6
|
-
<details key="ea_stype" value="Class" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
7
6
|
<details key="date_modified" value="2006-07-12 08:44:02" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
8
|
-
<details key="tagged" value="0" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
9
7
|
<details key="ea_ntype" value="0" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
10
|
-
<details key="
|
|
11
|
-
<details key="
|
|
8
|
+
<details key="ea_stype" value="Class" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
9
|
+
<details key="gentype" value="Java" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
12
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"/>
|
|
13
12
|
<details key="package_name" value="HouseMetamodel" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
14
|
-
<details key="complexity" value="1" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
15
13
|
<details key="phase" value="1.0" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
14
|
+
<details key="status" value="Proposed" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
16
15
|
<details key="style" value="BackColor=-1;BorderColor=-1;BorderWidth=-1;FontColor=-1;VSwimLanes=0;HSwimLanes=0;BorderStyle=0;" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
17
|
-
<details key="
|
|
16
|
+
<details key="tagged" value="0" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
17
|
+
<details key="version" value="1.0" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
18
18
|
</eAnnotations>
|
|
19
19
|
</eClassifiers>
|
|
20
20
|
<eClassifiers abstract="false" interface="false" instanceClassName="HouseMetamodel::Person" name="Person" xsi:type="ecore:EClass">
|
|
@@ -26,20 +26,20 @@
|
|
|
26
26
|
</eAnnotations>
|
|
27
27
|
</eStructuralFeatures>
|
|
28
28
|
<eAnnotations xsi:type="ecore:EAnnotation">
|
|
29
|
-
<details key="
|
|
29
|
+
<details key="complexity" value="1" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
30
30
|
<details key="date_created" value="2006-06-27 08:34:23" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
31
|
-
<details key="ea_stype" value="Class" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
32
31
|
<details key="date_modified" value="2006-06-27 08:34:26" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
33
|
-
<details key="tagged" value="0" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
34
32
|
<details key="ea_ntype" value="0" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
35
|
-
<details key="
|
|
36
|
-
<details key="
|
|
33
|
+
<details key="ea_stype" value="Class" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
34
|
+
<details key="gentype" value="Java" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
37
35
|
<details key="isSpecification" value="false" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
36
|
+
<details key="package" value="EAPK_A1B83D59_CAE1_422c_BA5F_D3624D7156AD" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
38
37
|
<details key="package_name" value="HouseMetamodel" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
39
|
-
<details key="complexity" value="1" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
40
38
|
<details key="phase" value="1.0" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
39
|
+
<details key="status" value="Proposed" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
41
40
|
<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="
|
|
41
|
+
<details key="tagged" value="0" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
42
|
+
<details key="version" value="1.0" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
43
43
|
</eAnnotations>
|
|
44
44
|
</eClassifiers>
|
|
45
45
|
<eClassifiers abstract="false" interface="false" instanceClassName="HouseMetamodel::House" name="House" xsi:type="ecore:EClass">
|
|
@@ -47,17 +47,17 @@
|
|
|
47
47
|
<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"/>
|
|
48
48
|
<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">
|
|
49
49
|
<eAnnotations xsi:type="ecore:EAnnotation">
|
|
50
|
-
<details key="
|
|
50
|
+
<details key="collection" value="false" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
51
51
|
<details key="containment" value="Not Specified" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
52
|
-
<details key="
|
|
52
|
+
<details key="derived" value="0" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
53
53
|
<details key="duplicates" value="0" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
54
|
-
<details key="
|
|
55
|
-
<details key="type" value="String" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
56
|
-
<details key="styleex" value="volatile=0;" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
57
|
-
<details key="upperBound" value="1" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
58
|
-
<details key="ordered" value="0" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
54
|
+
<details key="ea_guid" value="{A8DF581B-9AC6-4f75-AB48-8FAEDFC6E068}" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
59
55
|
<details key="lowerBound" value="1" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
56
|
+
<details key="ordered" value="0" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
60
57
|
<details key="position" value="0" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
58
|
+
<details key="styleex" value="volatile=0;" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
59
|
+
<details key="type" value="String" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
60
|
+
<details key="upperBound" value="1" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
61
61
|
</eAnnotations>
|
|
62
62
|
</eStructuralFeatures>
|
|
63
63
|
<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"/>
|
|
@@ -68,21 +68,21 @@
|
|
|
68
68
|
</eStructuralFeatures>
|
|
69
69
|
<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"/>
|
|
70
70
|
<eAnnotations xsi:type="ecore:EAnnotation">
|
|
71
|
-
<details key="
|
|
72
|
-
<details key="status" value="Proposed" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
71
|
+
<details key="complexity" value="1" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
73
72
|
<details key="date_created" value="2005-09-16 19:52:18" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
74
|
-
<details key="ea_stype" value="Class" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
75
73
|
<details key="date_modified" value="2006-02-28 08:29:19" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
76
|
-
<details key="tagged" value="0" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
77
74
|
<details key="ea_ntype" value="0" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
78
|
-
<details key="
|
|
79
|
-
<details key="
|
|
75
|
+
<details key="ea_stype" value="Class" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
76
|
+
<details key="gentype" value="Java" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
80
77
|
<details key="isSpecification" value="false" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
78
|
+
<details key="package" value="EAPK_A1B83D59_CAE1_422c_BA5F_D3624D7156AD" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
81
79
|
<details key="package_name" value="HouseMetamodel" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
82
|
-
<details key="complexity" value="1" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
83
80
|
<details key="phase" value="1.0" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
81
|
+
<details key="status" value="Proposed" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
82
|
+
<details key="stereotype" value="dummy" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
84
83
|
<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="
|
|
84
|
+
<details key="tagged" value="0" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
85
|
+
<details key="version" value="1.0" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
86
86
|
</eAnnotations>
|
|
87
87
|
</eClassifiers>
|
|
88
88
|
<eClassifiers instanceClassName="HouseMetamodel::SexEnum" name="SexEnum" xsi:type="ecore:EEnum">
|
|
@@ -97,38 +97,38 @@
|
|
|
97
97
|
</eAnnotations>
|
|
98
98
|
</eStructuralFeatures>
|
|
99
99
|
<eAnnotations xsi:type="ecore:EAnnotation">
|
|
100
|
-
<details key="
|
|
100
|
+
<details key="complexity" value="1" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
101
101
|
<details key="date_created" value="2005-09-16 19:52:28" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
102
|
-
<details key="ea_stype" value="Class" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
103
102
|
<details key="date_modified" value="2006-06-22 21:15:25" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
104
|
-
<details key="tagged" value="0" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
105
103
|
<details key="ea_ntype" value="0" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
106
|
-
<details key="
|
|
107
|
-
<details key="
|
|
104
|
+
<details key="ea_stype" value="Class" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
105
|
+
<details key="gentype" value="Java" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
108
106
|
<details key="isSpecification" value="false" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
107
|
+
<details key="package" value="EAPK_F9D8C6E3_4DAD_4aa2_AD47_D0ABA4E93E08" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
109
108
|
<details key="package_name" value="Rooms" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
110
|
-
<details key="complexity" value="1" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
111
109
|
<details key="phase" value="1.0" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
110
|
+
<details key="status" value="Proposed" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
112
111
|
<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="
|
|
112
|
+
<details key="tagged" value="0" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
113
|
+
<details key="version" value="1.0" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
114
114
|
</eAnnotations>
|
|
115
115
|
</eClassifiers>
|
|
116
116
|
<eClassifiers abstract="false" interface="false" instanceClassName="HouseMetamodel::Rooms::Bathroom" name="Bathroom" eSuperTypes="#//Rooms/Room" xsi:type="ecore:EClass">
|
|
117
117
|
<eAnnotations xsi:type="ecore:EAnnotation">
|
|
118
|
-
<details key="
|
|
118
|
+
<details key="complexity" value="1" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
119
119
|
<details key="date_created" value="2006-06-27 08:32:25" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
120
|
-
<details key="ea_stype" value="Class" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
121
120
|
<details key="date_modified" value="2006-06-27 08:34:23" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
122
|
-
<details key="tagged" value="0" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
123
121
|
<details key="ea_ntype" value="0" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
124
|
-
<details key="
|
|
125
|
-
<details key="
|
|
122
|
+
<details key="ea_stype" value="Class" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
123
|
+
<details key="gentype" value="Java" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
126
124
|
<details key="isSpecification" value="false" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
125
|
+
<details key="package" value="EAPK_F9D8C6E3_4DAD_4aa2_AD47_D0ABA4E93E08" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
127
126
|
<details key="package_name" value="Rooms" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
128
|
-
<details key="complexity" value="1" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
129
127
|
<details key="phase" value="1.0" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
128
|
+
<details key="status" value="Proposed" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
130
129
|
<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="
|
|
130
|
+
<details key="tagged" value="0" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
131
|
+
<details key="version" value="1.0" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
132
132
|
</eAnnotations>
|
|
133
133
|
</eClassifiers>
|
|
134
134
|
<eClassifiers abstract="false" interface="false" instanceClassName="HouseMetamodel::Rooms::Kitchen" name="Kitchen" eSuperTypes="#//MeetingPlace #//Rooms/Room" xsi:type="ecore:EClass">
|
|
@@ -138,20 +138,20 @@
|
|
|
138
138
|
</eAnnotations>
|
|
139
139
|
</eStructuralFeatures>
|
|
140
140
|
<eAnnotations xsi:type="ecore:EAnnotation">
|
|
141
|
-
<details key="
|
|
141
|
+
<details key="complexity" value="1" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
142
142
|
<details key="date_created" value="2005-11-30 19:26:13" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
143
|
-
<details key="ea_stype" value="Class" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
144
143
|
<details key="date_modified" value="2006-06-22 21:15:34" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
145
|
-
<details key="tagged" value="0" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
146
144
|
<details key="ea_ntype" value="0" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
147
|
-
<details key="
|
|
148
|
-
<details key="
|
|
145
|
+
<details key="ea_stype" value="Class" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
146
|
+
<details key="gentype" value="Java" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
149
147
|
<details key="isSpecification" value="false" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
148
|
+
<details key="package" value="EAPK_F9D8C6E3_4DAD_4aa2_AD47_D0ABA4E93E08" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
150
149
|
<details key="package_name" value="Rooms" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
151
|
-
<details key="complexity" value="1" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
152
150
|
<details key="phase" value="1.0" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
151
|
+
<details key="status" value="Proposed" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
153
152
|
<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="
|
|
153
|
+
<details key="tagged" value="0" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
154
|
+
<details key="version" value="1.0" xsi:type="ecore:EStringToStringMapEntry"/>
|
|
155
155
|
</eAnnotations>
|
|
156
156
|
</eClassifiers>
|
|
157
157
|
</eSubpackages>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
$:.unshift File.dirname(__FILE__) + "/../lib"
|
|
2
2
|
|
|
3
3
|
require 'test/unit'
|
|
4
|
-
require 'rgen/method_delegation'
|
|
4
|
+
require 'rgen/util/method_delegation'
|
|
5
5
|
|
|
6
6
|
class MethodDelegationTest < Test::Unit::TestCase
|
|
7
7
|
include RGen
|
|
@@ -82,12 +82,12 @@ class MethodDelegationTest < Test::Unit::TestCase
|
|
|
82
82
|
|
|
83
83
|
def test_const_missing
|
|
84
84
|
surroundingModule = Module.nesting.first
|
|
85
|
-
MethodDelegation.registerDelegate(ConstPathElement, surroundingModule, "const_missing")
|
|
85
|
+
Util::MethodDelegation.registerDelegate(ConstPathElement, surroundingModule, "const_missing")
|
|
86
86
|
|
|
87
87
|
assert_equal "SomeArbitraryConst", SomeArbitraryConst.to_s
|
|
88
88
|
assert_equal "AnotherConst::A::B::C", AnotherConst::A::B::C.to_s
|
|
89
89
|
|
|
90
|
-
MethodDelegation.unregisterDelegate(ConstPathElement, surroundingModule, "const_missing")
|
|
90
|
+
Util::MethodDelegation.unregisterDelegate(ConstPathElement, surroundingModule, "const_missing")
|
|
91
91
|
assert_raise NameError do
|
|
92
92
|
SomeArbitraryConst
|
|
93
93
|
end
|
|
@@ -97,8 +97,8 @@ class MethodDelegationTest < Test::Unit::TestCase
|
|
|
97
97
|
delegate1 = TestDelegate.new
|
|
98
98
|
delegate2 = TestDelegate.new
|
|
99
99
|
|
|
100
|
-
MethodDelegation.registerDelegate(delegate1, delegator, method)
|
|
101
|
-
MethodDelegation.registerDelegate(delegate2, delegator, method)
|
|
100
|
+
Util::MethodDelegation.registerDelegate(delegate1, delegator, method)
|
|
101
|
+
Util::MethodDelegation.registerDelegate(delegate2, delegator, method)
|
|
102
102
|
|
|
103
103
|
assert delegator.respond_to?(:_methodDelegates)
|
|
104
104
|
if newMethod
|
|
@@ -145,8 +145,8 @@ class MethodDelegationTest < Test::Unit::TestCase
|
|
|
145
145
|
assert_equal 2, delegate2.callcount
|
|
146
146
|
|
|
147
147
|
# calling unregister with a non existing method has no effect
|
|
148
|
-
MethodDelegation.unregisterDelegate(delegate1, delegator, "xxx")
|
|
149
|
-
MethodDelegation.unregisterDelegate(delegate1, delegator, method)
|
|
148
|
+
Util::MethodDelegation.unregisterDelegate(delegate1, delegator, "xxx")
|
|
149
|
+
Util::MethodDelegation.unregisterDelegate(delegate1, delegator, method)
|
|
150
150
|
|
|
151
151
|
checkCallOriginal(delegator, method, originalResult, newMethod)
|
|
152
152
|
# delegate1 not called any more
|
|
@@ -154,7 +154,7 @@ class MethodDelegationTest < Test::Unit::TestCase
|
|
|
154
154
|
# delegate2 is still called
|
|
155
155
|
assert_equal 3, delegate2.callcount
|
|
156
156
|
|
|
157
|
-
MethodDelegation.unregisterDelegate(delegate2, delegator, method)
|
|
157
|
+
Util::MethodDelegation.unregisterDelegate(delegate2, delegator, method)
|
|
158
158
|
|
|
159
159
|
checkCallOriginal(delegator, method, originalResult, newMethod)
|
|
160
160
|
# both delegates not called any more
|
|
@@ -175,4 +175,4 @@ class MethodDelegationTest < Test::Unit::TestCase
|
|
|
175
175
|
assert_equal originalResult, result
|
|
176
176
|
end
|
|
177
177
|
end
|
|
178
|
-
end
|
|
178
|
+
end
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
ePackage "ECore", :eSuperPackage => "" do
|
|
2
2
|
eClass "EObject", :abstract => false, :interface => false, :eSubTypes => ["EAnnotation"], :instanceClassName => "RGen::ECore::EObject"
|
|
3
|
-
eClass "EModelElement", :abstract => false, :interface => false, :eSubTypes => ["EAnnotation", "ENamedElement", "EFactory"], :instanceClassName => "RGen::ECore::EModelElement" do
|
|
3
|
+
eClass "EModelElement", :abstract => false, :interface => false, :eSubTypes => ["EAnnotation", "ENamedElement", "ETypeArgument", "EFactory"], :instanceClassName => "RGen::ECore::EModelElement" do
|
|
4
4
|
eReference "eAnnotations", :containment => true, :resolveProxies => false, :eOpposite => "EAnnotation.eModelElement", :upperBound => -1, :eType => "EAnnotation"
|
|
5
5
|
end
|
|
6
6
|
eClass "EAnnotation", :abstract => false, :interface => false, :instanceClassName => "RGen::ECore::EAnnotation" do
|
|
@@ -10,10 +10,10 @@ ePackage "ECore", :eSuperPackage => "" do
|
|
|
10
10
|
eReference "contents", :containment => true, :resolveProxies => false, :upperBound => -1, :eType => "EObject"
|
|
11
11
|
eReference "references", :upperBound => -1, :eType => "EObject"
|
|
12
12
|
end
|
|
13
|
-
eClass "ENamedElement", :abstract => false, :interface => false, :eSubTypes => ["ETypedElement", "EEnumLiteral", "EPackage"], :instanceClassName => "RGen::ECore::ENamedElement" do
|
|
13
|
+
eClass "ENamedElement", :abstract => false, :interface => false, :eSubTypes => ["EClassifier", "ETypedElement", "EEnumLiteral", "EPackage"], :instanceClassName => "RGen::ECore::ENamedElement" do
|
|
14
14
|
eAttribute "name", :eType => ""
|
|
15
15
|
end
|
|
16
|
-
eClass "ETypedElement", :abstract => false, :interface => false, :eSubTypes => ["EParameter"], :instanceClassName => "RGen::ECore::ETypedElement" do
|
|
16
|
+
eClass "ETypedElement", :abstract => false, :interface => false, :eSubTypes => ["EOperation", "EStructuralFeature", "EParameter"], :instanceClassName => "RGen::ECore::ETypedElement" do
|
|
17
17
|
eAttribute "lowerBound", :defaultValueLiteral => "0", :eType => ""
|
|
18
18
|
eAttribute "ordered", :defaultValueLiteral => "true", :eType => ""
|
|
19
19
|
eAttribute "unique", :defaultValueLiteral => "true", :eType => ""
|
|
@@ -22,7 +22,7 @@ ePackage "ECore", :eSuperPackage => "" do
|
|
|
22
22
|
eAttribute "required", :changeable => false, :derived => true, :transient => true, :volatile => true, :eType => ""
|
|
23
23
|
eReference "eType", :eType => "EClassifier"
|
|
24
24
|
end
|
|
25
|
-
eClass "EStructuralFeature", :abstract => false, :interface => false, :
|
|
25
|
+
eClass "EStructuralFeature", :abstract => false, :interface => false, :eSubTypes => ["EAttribute"], :instanceClassName => "RGen::ECore::EStructuralFeature" do
|
|
26
26
|
eAttribute "changeable", :defaultValueLiteral => "true", :eType => ""
|
|
27
27
|
eAttribute "defaultValue", :changeable => false, :derived => true, :transient => true, :volatile => true, :eType => ""
|
|
28
28
|
eAttribute "defaultValueLiteral", :eType => ""
|
|
@@ -32,19 +32,28 @@ ePackage "ECore", :eSuperPackage => "" do
|
|
|
32
32
|
eAttribute "volatile", :defaultValueLiteral => "false", :eType => ""
|
|
33
33
|
eReference "eContainingClass", :eOpposite => "EClass.eStructuralFeatures", :eType => "EClass"
|
|
34
34
|
end
|
|
35
|
-
eClass "EAttribute", :abstract => false, :interface => false, :
|
|
35
|
+
eClass "EAttribute", :abstract => false, :interface => false, :instanceClassName => "RGen::ECore::EAttribute" do
|
|
36
36
|
eAttribute "iD", :defaultValueLiteral => "false", :eType => ""
|
|
37
37
|
eReference "eAttributeType", :changeable => false, :derived => true, :transient => true, :volatile => true, :lowerBound => 1, :eType => "EDataType"
|
|
38
38
|
end
|
|
39
|
-
eClass "EClassifier", :abstract => false, :interface => false, :
|
|
39
|
+
eClass "EClassifier", :abstract => false, :interface => false, :eSubTypes => ["EClass"], :instanceClassName => "RGen::ECore::EClassifier" do
|
|
40
40
|
eAttribute "defaultValue", :changeable => false, :derived => true, :transient => true, :volatile => true, :eType => ""
|
|
41
41
|
eAttribute "instanceClass", :changeable => false, :derived => true, :transient => true, :volatile => true, :eType => ""
|
|
42
42
|
eAttribute "instanceClassName", :eType => ""
|
|
43
43
|
eReference "ePackage", :eOpposite => "EPackage.eClassifiers", :eType => "EPackage"
|
|
44
44
|
end
|
|
45
|
-
eClass "EDataType", :abstract => false, :interface => false, :eSubTypes => ["EEnum"], :instanceClassName => "RGen::ECore::EDataType" do
|
|
45
|
+
eClass "EDataType", :abstract => false, :interface => false, :eSuperTypes => ["EClassifier"], :eSubTypes => ["EGenericType", "EEnum"], :instanceClassName => "RGen::ECore::EDataType" do
|
|
46
46
|
eAttribute "serializable", :eType => ""
|
|
47
47
|
end
|
|
48
|
+
eClass "EGenericType", :abstract => false, :interface => false, :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", :abstract => false, :interface => false, :instanceClassName => "RGen::ECore::ETypeArgument" do
|
|
54
|
+
eReference "eClassifier", :eType => "EDataType"
|
|
55
|
+
eReference "eGenericType", :eOpposite => "EGenericType.eTypeArguments", :eType => "EGenericType"
|
|
56
|
+
end
|
|
48
57
|
eClass "EEnum", :abstract => false, :interface => false, :instanceClassName => "RGen::ECore::EEnum" do
|
|
49
58
|
eReference "eLiterals", :containment => true, :resolveProxies => false, :eOpposite => "EEnumLiteral.eEnum", :upperBound => -1, :eType => "EEnumLiteral"
|
|
50
59
|
end
|
|
@@ -56,7 +65,7 @@ ePackage "ECore", :eSuperPackage => "" do
|
|
|
56
65
|
eClass "EFactory", :abstract => false, :interface => false, :instanceClassName => "RGen::ECore::EFactory" do
|
|
57
66
|
eReference "ePackage", :resolveProxies => false, :eOpposite => "EPackage.eFactoryInstance", :transient => true, :lowerBound => 1, :eType => "EPackage"
|
|
58
67
|
end
|
|
59
|
-
eClass "EOperation", :abstract => false, :interface => false, :
|
|
68
|
+
eClass "EOperation", :abstract => false, :interface => false, :instanceClassName => "RGen::ECore::EOperation" do
|
|
60
69
|
eReference "eContainingClass", :eOpposite => "EClass.eOperations", :eType => "EClass"
|
|
61
70
|
eReference "eParameters", :containment => true, :resolveProxies => false, :eOpposite => "EParameter.eOperation", :upperBound => -1, :eType => "EParameter"
|
|
62
71
|
eReference "eExceptions", :upperBound => -1, :eType => "EClassifier"
|
|
@@ -71,6 +80,7 @@ ePackage "ECore", :eSuperPackage => "" do
|
|
|
71
80
|
end
|
|
72
81
|
eClass "EParameter", :abstract => false, :interface => false, :instanceClassName => "RGen::ECore::EParameter" do
|
|
73
82
|
eReference "eOperation", :eOpposite => "EOperation.eParameters", :eType => "EOperation"
|
|
83
|
+
eReference "eGenericType", :containment => true, :eOpposite => "EGenericType.eParameter", :eType => "EGenericType"
|
|
74
84
|
end
|
|
75
85
|
eClass "EReference", :abstract => false, :interface => false, :eSuperTypes => ["EStructuralFeature"], :instanceClassName => "RGen::ECore::EReference" do
|
|
76
86
|
eAttribute "container", :changeable => false, :derived => true, :transient => true, :volatile => true, :eType => ""
|
|
@@ -83,7 +93,7 @@ ePackage "ECore", :eSuperPackage => "" do
|
|
|
83
93
|
eAttribute "key", :eType => ""
|
|
84
94
|
eAttribute "value", :eType => ""
|
|
85
95
|
end
|
|
86
|
-
eClass "EClass", :abstract => false, :interface => false, :
|
|
96
|
+
eClass "EClass", :abstract => false, :interface => false, :instanceClassName => "RGen::ECore::EClass" do
|
|
87
97
|
eAttribute "abstract", :eType => ""
|
|
88
98
|
eAttribute "interface", :eType => ""
|
|
89
99
|
eReference "eIDAttribute", :resolveProxies => false, :changeable => false, :derived => true, :transient => true, :volatile => true, :eType => "EAttribute"
|