model: add `MModule::mproject` to simplify clients
[nit.git] / src / model / mdoc.nit
index 2817a1b..2f8d045 100644 (file)
@@ -30,6 +30,28 @@ class MDoc
 end
 
 redef class MEntity
-       # The documentation assiciated to the entity
+       # The documentation associated to the entity
        var mdoc: nullable MDoc is writable
+
+       # The documentation associated to the entity or their main nested entity.
+       #
+       # MProject fall-back to their root MGroup
+       # MGroup fall-back to their default_mmodule
+       # Other entities do not fall-back
+       #
+       # One may use `MDoc::original_mentity` to retrieve the original
+       # source of the documentation.
+       fun mdoc_or_fallback: nullable MDoc do return mdoc
+
+       # Is the entity deprecated?
+       #
+       # Used for warnings and in documentation.
+       # Has no other specific effect.
+       var deprecation: nullable MDeprecationInfo = null is writable
+end
+
+# Information about a deprecated entity
+class MDeprecationInfo
+       # Explanation about the deprecation
+       var mdoc: nullable MDoc = null is writable
 end