Class: RGen::MetamodelBuilder::MMBase

Inherits:
Object
  • Object
show all
Extended by:
ECore::ECoreInterface, BuilderExtensions, ModuleExtension
Includes:
BuilderRuntime, DataTypes
Defined in:
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.

Constant Summary

Constants included from DataTypes

DataTypes::Boolean

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

#_assignmentTypeError, #_set_container, #addGeneric, #eContainer, #eContainingFeature, #eIsSet, #eUnset, #getGeneric, #getGenericAsArray, #hasManyMethods, #is_a?, #removeGeneric, #setGeneric, #setOrAddGeneric

Constructor Details

#initialize(arg = nil) ⇒ MMBase

Returns a new instance of MMBase.

Raises:

  • (StandardError)


187
188
189
190
# File '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/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/rgen/metamodel_builder.rb', line 193

def inspect
  self.class.name
end