rgen 0.5.4 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- 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"
|