A MEntity that can hold annotations from it's source code

We do not introduce these services in MEntity to avoid semantics confusion. At this stage, the annotation concept is only relevant to source code related mentities such as MModules, MClassDefs and MPropdefs.

Introduced properties

private var _annotations: Set[String]

nitc :: AnnotatedMEntity :: _annotations

Names of the annotations found on self declaration
fun annotations: Set[String]

nitc :: AnnotatedMEntity :: annotations

Names of the annotations found on self declaration
protected fun annotations=(annotations: Set[String])

nitc :: AnnotatedMEntity :: annotations=

Names of the annotations found on self declaration
fun has_annotation(annotation: String): Bool

nitc :: AnnotatedMEntity :: has_annotation

Does self contains annotation in its declaration?

Redefined properties

redef type SELF: AnnotatedMEntity

nitc $ AnnotatedMEntity :: SELF

Type of this instance, automatically specialized in every class

All properties

fun !=(other: nullable Object): Bool

core :: Object :: !=

Have self and other different values?
fun ==(other: nullable Object): Bool

core :: Object :: ==

Have self and other the same value?
type CLASS: Class[SELF]

core :: Object :: CLASS

The type of the class of self.
type SELF: Object

core :: Object :: SELF

Type of this instance, automatically specialized in every class
private var _annotations: Set[String]

nitc :: AnnotatedMEntity :: _annotations

Names of the annotations found on self declaration
fun annotations: Set[String]

nitc :: AnnotatedMEntity :: annotations

Names of the annotations found on self declaration
protected fun annotations=(annotations: Set[String])

nitc :: AnnotatedMEntity :: annotations=

Names of the annotations found on self declaration
protected fun class_factory(name: String): CLASS

core :: Object :: class_factory

Implementation used by get_class to create the specific class.
fun class_name: String

core :: Object :: class_name

The class name of the object.
fun get_class: CLASS

core :: Object :: get_class

The meta-object representing the dynamic type of self.
fun has_annotation(annotation: String): Bool

nitc :: AnnotatedMEntity :: has_annotation

Does self contains annotation in its declaration?
fun hash: Int

core :: Object :: hash

The hash code of the object.
init init

core :: Object :: init

fun inspect: String

core :: Object :: inspect

Developer readable representation of self.
protected fun inspect_head: String

core :: Object :: inspect_head

Return "CLASSNAME:#OBJECTID".
intern fun is_same_instance(other: nullable Object): Bool

core :: Object :: is_same_instance

Return true if self and other are the same instance (i.e. same identity).
fun is_same_serialized(other: nullable Object): Bool

core :: Object :: is_same_serialized

Is self the same as other in a serialization context?
intern fun is_same_type(other: Object): Bool

core :: Object :: is_same_type

Return true if self and other have the same dynamic type.
private intern fun native_class_name: CString

core :: Object :: native_class_name

The class name of the object in CString format.
intern fun object_id: Int

core :: Object :: object_id

An internal hash code for the object based on its identity.
fun output

core :: Object :: output

Display self on stdout (debug only).
intern fun output_class_name

core :: Object :: output_class_name

Display class name on stdout (debug only).
fun serialization_hash: Int

core :: Object :: serialization_hash

Hash value use for serialization
intern fun sys: Sys

core :: Object :: sys

Return the global sys object, the only instance of the Sys class.
abstract fun to_jvalue(env: JniEnv): JValue

core :: Object :: to_jvalue

fun to_s: String

core :: Object :: to_s

User readable representation of self.
package_diagram nitc::AnnotatedMEntity AnnotatedMEntity core::Object Object nitc::AnnotatedMEntity->core::Object nitc::MModule MModule nitc::MModule->nitc::AnnotatedMEntity nitc::MClassDef MClassDef nitc::MClassDef->nitc::AnnotatedMEntity nitc::MPropDef MPropDef nitc::MPropDef->nitc::AnnotatedMEntity nitc::MMethodDef MMethodDef nitc::MMethodDef->nitc::MPropDef nitc::MAttributeDef MAttributeDef nitc::MAttributeDef->nitc::MPropDef nitc::MVirtualTypeDef MVirtualTypeDef nitc::MVirtualTypeDef->nitc::MPropDef nitc::MInnerClassDef MInnerClassDef nitc::MInnerClassDef->nitc::MPropDef nitc::MMethodDef... ... nitc::MMethodDef...->nitc::MMethodDef nitc::MAttributeDef... ... nitc::MAttributeDef...->nitc::MAttributeDef nitc::MVirtualTypeDef... ... nitc::MVirtualTypeDef...->nitc::MVirtualTypeDef nitc::MInnerClassDef... ... nitc::MInnerClassDef...->nitc::MInnerClassDef

Parents

interface Object

core :: Object

The root of the class hierarchy.

Children

class MClassDef

nitc :: MClassDef

A definition (an introduction or a refinement) of a class in a module
class MModule

nitc :: MModule

A Nit module is usually associated with a Nit source file.
abstract class MPropDef

nitc :: MPropDef

A definition of a property (local property)

Descendants

class MAttributeDef

nitc :: MAttributeDef

A local definition of an attribute
class MInnerClassDef

nitc :: MInnerClassDef

An inner class definition.
class MMethodDef

nitc :: MMethodDef

A local definition of a method
class MVirtualTypeDef

nitc :: MVirtualTypeDef

A local definition of a virtual type

Class definitions

nitc $ AnnotatedMEntity
# A MEntity that can hold annotations from it's source code
#
# We do not introduce these services in MEntity to avoid semantics confusion.
# At this stage, the annotation concept is only relevant to source code related
# mentities such as MModules, MClassDefs and MPropdefs.
abstract class AnnotatedMEntity

	# Names of the annotations found on `self` declaration
	var annotations: Set[String] = new HashSet[String]

	# Does `self` contains `annotation` in its declaration?
	fun has_annotation(annotation: String): Bool do return annotations.has(annotation)
end
src/frontend/parse_annotations.nit:93,1--105,3