The diagram of the core classes is:
-class--------------- | mbfl_default_object |------------------------------- --------------------- | ^ | | superclass | | | -metaclass---------- | | mbfl_default_class |<--+-------------- | -------------------- | | | ^ | | metaclass | metaclass | metaclass | superclass | | | | | ------ | | | | | -metaclass------------------- | | | mbfl_default_abstract_class | ------------ | ----------------------------- | ^ | | | ------------------------------------------
The object mbfl_default_class
is the default metaclass of classes in MBFL; we define new
classes by instantiating mbfl_default_class
or one of its subclasses; an instance of
mbfl_default_class
can only be a subclass of mbfl_default_object
.
The class mbfl_default_class
also has a metaclass: it is mbfl_default_class
itself. The superclass of mbfl_default_class
is mbfl_default_object
.
An instance of mbfl_default_class
is a Bash index array with the following layout:
datavar[0] ⇒ _(METACLASS) datavar[1] ⇒ _(PARENT_CLASS) datavar[2] ⇒ class name as string datavar[3] ⇒ N = fields number datavar[4] ⇒ field 0 name as string datavar[5] ⇒ field 1 name as string ... datavar[4+N-1] ⇒ field N-1 name as string
being a mbfl_default_object
an array element with key ‘0’ is always present and its
value is the instance’s class. We instantiate mbfl_default_class
by using its instance
constructor, which is the function mbfl_default_class_define()
.
If we define the class colour
as follows:
mbfl_default_class_declare(COLOUR) mbfl_default_class_define _(COLOUR) _(mbfl_default_object) 'colour' red green blue
the layout of the colour
array is:
datavar[0] ⇒ _(mbfl_default_class) datavar[1] ⇒ _(mbfl_default_object) datavar[2] ⇒ 'colour' datavar[3] ⇒ 3 datavar[4] ⇒ 'red' datavar[5] ⇒ 'green' datavar[6] ⇒ 'blue'
This document describes version 3.0.0-devel.9 of Marcos Bash Functions Library.