MClass metric: Interface Depth in Inheritance Tree

Following the longest path composed only of implements edges from self to Object

Introduced properties

init defaultinit(model: Model, mainmodule: MModule, filter: nullable ModelFilter)

nitc :: CDITI :: defaultinit

Redefined properties

redef type SELF: CDITI

nitc $ CDITI :: SELF

Type of this instance, automatically specialized in every class
redef fun collect(mclasses: Collection[ELM])

nitc $ CDITI :: collect

Collect metric values on elements
redef fun desc: String

nitc $ CDITI :: desc

A long and understandable description about what is measured by this metric.
redef fun name: String

nitc $ CDITI :: name

The name of this metric (generally an acronym about the metric).

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 ELM: Object

nitc :: Metric :: ELM

Type of elements measured by this metric.
type RES: Map[ELM, VAL]

nitc :: Metric :: RES

Type of data representation used to associate elements and values.
type SELF: Object

core :: Object :: SELF

Type of this instance, automatically specialized in every class
type VAL: Object

nitc :: Metric :: VAL

Type of values used to measure elements.
fun [](element: ELM): VAL

nitc :: Metric :: []

The value calculated for the element
private var _filter: nullable ModelFilter

nitc :: MClassMetric :: _filter

Filter to apply
private var _mainmodule: MModule

nitc :: MClassMetric :: _mainmodule

Mainmodule for class linearization
private var _model: Model

nitc :: MClassMetric :: _model

Model used to collect and filter entities
private var _values_cache: Counter[ELM]

nitc :: IntMetric :: _values_cache

IntMetric uses a Counter to store values in intern.
abstract fun above_threshold: Set[ELM]

nitc :: Metric :: above_threshold

The set of element above the threshold
protected fun accept_json_serializer(v: JsonSerializer)

serialization :: Serializable :: accept_json_serializer

Refinable service to customize the serialization of this class to JSON
protected fun accept_msgpack_attribute_counter(v: AttributeCounter)

serialization :: Serializable :: accept_msgpack_attribute_counter

Hook to customize the behavior of the AttributeCounter
protected fun accept_msgpack_serializer(v: MsgPackSerializer)

serialization :: Serializable :: accept_msgpack_serializer

Hook to customize the serialization of this class to MessagePack
protected fun add_to_bundle(bundle: NativeBundle, key: JavaString)

serialization :: Serializable :: add_to_bundle

Called by []= to dynamically choose the appropriate method according
abstract fun avg: Float

nitc :: Metric :: avg

The values average
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.
abstract fun clear

nitc :: Metric :: clear

Clear all results for this metric
abstract fun collect(elements: Collection[ELM])

nitc :: Metric :: collect

Collect metric values on elements
fun core_serialize_to(serializer: Serializer)

serialization :: Serializable :: core_serialize_to

Actual serialization of self to serializer
init defaultinit(model: Model, mainmodule: MModule, filter: nullable ModelFilter)

nitc :: MClassMetric :: defaultinit

init defaultinit(model: Model, mainmodule: MModule, filter: nullable ModelFilter)

nitc :: CDITI :: defaultinit

abstract fun desc: String

nitc :: Metric :: desc

A long and understandable description about what is measured by this metric.
fun filter: nullable ModelFilter

nitc :: MClassMetric :: filter

Filter to apply
protected fun filter=(filter: nullable ModelFilter)

nitc :: MClassMetric :: filter=

Filter to apply
init from_deserializer(deserializer: Deserializer)

serialization :: Serializable :: from_deserializer

Create an instance of this class from the deserializer
fun get_class: CLASS

core :: Object :: get_class

The meta-object representing the dynamic type of self.
fun has_element(element: ELM): Bool

nitc :: Metric :: has_element

Does the element have a value for this metric?
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.
fun mainmodule: MModule

nitc :: MClassMetric :: mainmodule

Mainmodule for class linearization
protected fun mainmodule=(mainmodule: MModule)

nitc :: MClassMetric :: mainmodule=

Mainmodule for class linearization
abstract fun max: ELM

nitc :: Metric :: max

The element with the highest value
abstract fun min: ELM

nitc :: Metric :: min

The element with the lowest value
fun model: Model

nitc :: MClassMetric :: model

Model used to collect and filter entities
protected fun model=(model: Model)

nitc :: MClassMetric :: model=

Model used to collect and filter entities
protected fun msgpack_extra_array_items: Int

serialization :: Serializable :: msgpack_extra_array_items

Hook to request a larger than usual metadata array
abstract fun name: String

nitc :: Metric :: name

The name of this metric (generally an acronym about the metric).
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
fun serialize_msgpack(plain: nullable Bool): Bytes

serialization :: Serializable :: serialize_msgpack

Serialize self to MessagePack bytes
fun serialize_to(serializer: Serializer)

serialization :: Serializable :: serialize_to

Serialize self to serializer
fun serialize_to_json(plain: nullable Bool, pretty: nullable Bool): String

serialization :: Serializable :: serialize_to_json

Serialize self to JSON
private fun serialize_to_or_delay(v: Serializer)

serialization :: Serializable :: serialize_to_or_delay

Accept references or force direct serialization (using serialize_to)
fun sort: Array[ELM]

nitc :: Metric :: sort

Sort the metric keys by values
abstract fun std_dev: Float

nitc :: Metric :: std_dev

The values standard derivation
abstract fun sum: VAL

nitc :: Metric :: sum

The sum of all the values.
intern fun sys: Sys

core :: Object :: sys

Return the global sys object, the only instance of the Sys class.
fun threshold: Float

nitc :: Metric :: threshold

The value threshold above what elements are considered as 'interesting'
fun to_console(indent: Int, colors: Bool)

nitc :: Metric :: to_console

Pretty print the metric results in console
fun to_json: String

serialization :: Serializable :: to_json

Serialize self to plain JSON
abstract fun to_jvalue(env: JniEnv): JValue

core :: Object :: to_jvalue

fun to_pretty_json: String

serialization :: Serializable :: to_pretty_json

Serialize self to plain pretty JSON
fun to_s: String

core :: Object :: to_s

User readable representation of self.
abstract fun values: RES

nitc :: Metric :: values

Values for each element
protected fun values_cache: Counter[ELM]

nitc :: IntMetric :: values_cache

IntMetric uses a Counter to store values in intern.
protected fun values_cache=(values_cache: Counter[ELM])

nitc :: IntMetric :: values_cache=

IntMetric uses a Counter to store values in intern.
package_diagram nitc::CDITI CDITI nitc::MClassMetric MClassMetric nitc::CDITI->nitc::MClassMetric nitc::IntMetric IntMetric nitc::CDITI->nitc::IntMetric nitc::Metric Metric nitc::MClassMetric->nitc::Metric nitc::IntMetric->nitc::Metric ...nitc::Metric ... ...nitc::Metric->nitc::Metric

Ancestors

interface Metric

nitc :: Metric

A Metric is used to collect data about things
interface Object

core :: Object

The root of the class hierarchy.
interface Serializable

serialization :: Serializable

Instances of this class can be passed to Serializer::serialize

Parents

class IntMetric

nitc :: IntMetric

A Metric that collects integer data
abstract class MClassMetric

nitc :: MClassMetric

A metric about MClass

Class definitions

nitc $ CDITI
# MClass metric: Interface Depth in Inheritance Tree
#
# Following the longest path composed only of implements edges from self to Object
class CDITI
	super MClassMetric
	super IntMetric
	redef fun name do return "cditi"
	redef fun desc do return "depth in class tree following only interface_kind"

	redef fun collect(mclasses) do
		for mclass in mclasses do
			values[mclass] = mclass.diti(mainmodule)
		end
	end
end
src/metrics/inheritance_metrics.nit:489,1--503,3