X-Git-Url: http://nitlanguage.org diff --git a/src/model/model_base.nit b/src/model/model_base.nit index a51ec29..ae5553d 100644 --- a/src/model/model_base.nit +++ b/src/model/model_base.nit @@ -23,10 +23,20 @@ class Model end # A named and possibly documented entity in the model. -# This class is usefull to generalize presentation of entities to the human. +# This class is useful to generalize presentation of entities to the human. abstract class MEntity # The short (unqualified) name of this model entity fun name: String is abstract + + # A Model Entity has a direct link to its model + fun model: Model is abstract +end + +# Something that represents a concern +abstract class MConcern + super MEntity + # The concern that contains `self` or null if `self` is the root of the concern hierarchy + fun parent_concern: nullable MConcern is abstract end # A visibility (for modules, class and properties) @@ -36,6 +46,7 @@ end # * `public_visibility` # * `protected_visibility` # * `none_visibility` +# * `private_visiblity` # # Note this class is basically an enum. # FIXME: use a real enum once user-defined enums are available @@ -61,8 +72,13 @@ class MVisibility end end +# The visibility level `intrude` fun intrude_visibility: MVisibility do return once new MVisibility("intrude", 5) +# The visibility level `public` fun public_visibility: MVisibility do return once new MVisibility("public", 4) +# The visibility level `protected` fun protected_visibility: MVisibility do return once new MVisibility("protected", 3) +# The visibility level `private` fun private_visibility: MVisibility do return once new MVisibility("private", 2) +# The visibility level `none` (no visibility) fun none_visibility: MVisibility do return once new MVisibility("none", 1)