Class: RGen::MetamodelBuilder::MMBase

Inherits:
Object
  • Object
show all
Extended by:
ECore::ECoreInterface, BuilderExtensions, ModuleExtension
Includes:
BuilderRuntime, DataTypes
Defined in:
lib/puppet/vendor/rgen/lib/rgen/metamodel_builder.rb

Overview

Use this class as a start for new metamodel elements (i.e. Ruby classes) by inheriting for it.

See MetamodelBuilder for an example.

Direct Known Subclasses

ArrayExtensionsTest::MMBaseClass, DefaultMM::MNS::Room, DefaultMM::Person, EnvironmentTest::ClassSuperA, EnvironmentTest::ClassSuperB, HouseMetamodel::House, HouseMetamodel::MeetingPlace, HouseMetamodel::Person, HouseMetamodel::Rooms::Room, JsonTest::TestMM::TestNode, JsonTest::TestMMData::Data, JsonTest::TestMMSubpackage::SubPackage::Data, JsonTest::TestMMSubpackage::SubPackage::Data2, MetamodelBuilderTest::TestMetamodel::AClassMM, MetamodelBuilderTest::TestMetamodel::AClassOO, MetamodelBuilderTest::TestMetamodel::AbstractClass, MetamodelBuilderTest::TestMetamodel::AnnotatedModule::AnnotatedClass, MetamodelBuilderTest::TestMetamodel::BClassMM, MetamodelBuilderTest::TestMetamodel::BClassOO, MetamodelBuilderTest::TestMetamodel::ClassA, MetamodelBuilderTest::TestMetamodel::ClassB, MetamodelBuilderTest::TestMetamodel::ClassC, MetamodelBuilderTest::TestMetamodel::ContainedClass, MetamodelBuilderTest::TestMetamodel::ContainerClass, MetamodelBuilderTest::TestMetamodel::HasManyTestClass, MetamodelBuilderTest::TestMetamodel::HasOneTestClass, MetamodelBuilderTest::TestMetamodel::ManyAttrClass, MetamodelBuilderTest::TestMetamodel::ManyClass, MetamodelBuilderTest::TestMetamodel::ManyClass2, MetamodelBuilderTest::TestMetamodel::OneClass, MetamodelBuilderTest::TestMetamodel::OneClass2, MetamodelBuilderTest::TestMetamodel::OppositeRefAssocA, MetamodelBuilderTest::TestMetamodel::OppositeRefAssocB, MetamodelBuilderTest::TestMetamodel::SimpleClass, MetamodelBuilderTest::TestMetamodel::SomePackage::ClassA, MetamodelBuilderTest::TestMetamodel::SomePackage::SubPackage::ClassB, MetamodelBuilderTest::TestMetamodel::SomeSuperClass, MetamodelOrderTest::Class1, MetamodelOrderTest::TestMM1::Class11, MetamodelOrderTest::TestMM1::Class12, MetamodelOrderTest::TestMM1::Class13, MetamodelOrderTest::TestMM1::Module11::Class111, MetamodelOrderTest::TestMM1::Module11::Module112::Class1121, MetamodelOrderTest::TestMM1::Module11::Module112::Class1122, ModelBuilderTest::TestMetamodel::TestA, ModelBuilderTest::TestMetamodel::TestB, ModelBuilderTest::TestMetamodel::TestC, ModelFragmentTest::TestMetamodel::SimpleClass, ModelSerializerTest::AmbiguousRoleMM::A, ModelSerializerTest::AmbiguousRoleMM::B, PatternMatcherTest::TestMM::Node, Puppet::Pops::Binder::Bindings::BindingsModelObject, Puppet::Pops::Model::PopsObject, QualifiedNameProviderTest::AbstractTestNode, QualifiedNameResolverTest::TestNode, QualifiedNameResolverTest::TestNode2, QualifiedNameResolverTest::TestNode3, ECore::EModelElement, ECore::EObject, ECore::EStringToStringMapEntry, ReferenceResolverTest::ClassA, ReferenceResolverTest::ClassB, ReferenceResolverTest::ClassC, ReferenceResolverTest::TestNode, ReferenceResolverTest::TestNode2, StatemachineMetamodel::Condition::Condition, StatemachineMetamodel::State, StatemachineMetamodel::Statemachine, StatemachineMetamodel::Transition, TemplateContainerTest::CCodeMM::CArray, TemplateContainerTest::CCodeMM::PrimitiveInitValue, UML13::ActionInstance, UML13::Call, UML13::Element, UML13::ElementImport, UML13::ElementResidence, UML13::EnumerationLiteral, UML13::Expression, UML13::Multiplicity, UML13::MultiplicityRange, UML13::TemplateParameter, UML13EA::ActionInstance, UML13EA::Call, UML13EA::Element, UML13EA::ElementImport, UML13EA::ElementResidence, UML13EA::EnumerationLiteral, UML13EA::Expression, UML13EA::Multiplicity, UML13EA::MultiplicityRange, UML13EA::TemplateParameter, UML13EA::XmiIdProvider

Constant Summary

Constants included from DataTypes

DataTypes::Boolean, DataTypes::Long

Class Method Summary collapse

Instance Method Summary collapse

Methods included from BuilderExtensions

_abstract_class, _add_metamodel_description, _metamodel_description, abstract, contains_many, contains_many_uni, contains_one, contains_one_uni, has_attr, has_many, has_many_attr, has_one, inherited, many_to_many, many_to_one, one_to_many, one_to_one

Methods included from Util::NameHelper

#camelize, #className, #firstToLower, #firstToUpper, #normalize, #saneClassName, #saneMethodName

Methods included from ModuleExtension

_annotations, _constantOrder, annotation, extended, final_method, method_added

Methods included from ECore::ECoreInterface

_set_ecore_internal, clear_ecore_cache, ecore

Methods included from BuilderRuntime

#_add_contained_element, #_assignmentTypeError, #_remove_contained_element, #_set_container, #addGeneric, #disconnectContainer, #eAllContents, #eContainer, #eContainingFeature, #eContents, #eIsSet, #eUnset, #getGeneric, #getGenericAsArray, #hasManyMethods, #is_a?, #removeGeneric, #setGeneric, #setNilOrRemoveAllGeneric, #setNilOrRemoveGeneric, #setOrAddGeneric

Constructor Details

#initialize(arg = nil) ⇒ MMBase

Returns a new instance of MMBase.

Raises:

  • (StandardError)


187
188
189
190
# File 'lib/puppet/vendor/rgen/lib/rgen/metamodel_builder.rb', line 187

def initialize(arg=nil)
	raise StandardError.new("Class #{self.class} is abstract") if self.class._abstract_class 
   arg.each_pair { |k,v| setGeneric(k, v) } if arg.is_a?(Hash)
end

Class Method Details

.method_added(m) ⇒ Object



197
198
199
# File 'lib/puppet/vendor/rgen/lib/rgen/metamodel_builder.rb', line 197

def self.method_added(m)
  raise "Do not add methods to model classes directly, add them to the ClassModule instead"
end

Instance Method Details

#inspectObject

Object#inspect causes problems on most models



193
194
195
# File 'lib/puppet/vendor/rgen/lib/rgen/metamodel_builder.rb', line 193

def inspect
  self.class.name
end