6

Root

La classe Root implémente les messages de base du modèle So-o. Toutes les autres classes héritent de la classe Root.

Tout le code de la classe Root de So-o est dans le fichier Root.js.

  1. import { defclass } from 'So-o';
  2. import * as OL from 'OL';

Importe la fonction defclass de So-o et toutes les fonctions définies par l'Object Layer.

  1. defclass('Root',
  2.     // superclass
  3.     null,
  4.     // revision
  5.     1,
  6.     // class properties
  7.     null,
  8.     // instance properties
  9.     null,

La classe Root est la seule classe qui n'hérite d'aucune superclasse. Elle n'a pas de propriétés de classe ou d'instance. Elle implémente tous les messages de base du modèle So-o.

MÉTHODES DE CLASSE

get
set
SYNOPSIS

get(self, attr)

set(self, attr, val)

DESCRIPTION

get retourne la valeur de la propriété attr de self.

set met la valeur de la propriété attr de self à val.

IMPORTANT : Copiez le contenu d'un attribut qui est un tableau ou un objet si vous voulez le modifier sans changer la valeur de l'attribut.

CODE
  1.     {   'get':          (self, attr) => OL.class_get(self, attr),
  2.         'set':          (self, attr, val) => OL.class_set(self, attr, val),

get et set retournent le résultat des fonctions class_get et class_set de l'Object Layer.

make
new
SYNOPSIS

make(self)

new(self[, arg ...])

DESCRIPTION

make retourne une nouvelle instance de self.

new crée une instance de self, lui envoie le message init avec les paramètres du message suivant self et retourne la nouvelle instance initialisée.

IMPORTANT : Créez toujours une instance avec new.

CODE
  1.         'new':          (self, ...args) => OL.object_send_message(OL.class_send_message(self, 'make'), 'init', args),
  2.         'make':         (self) => OL.class_make(self),

make retourne le résultat de la fonction class_make de l'Object Layer.

new crée une instance en envoyant make à self, lui envoie init avec les paramètres du message suivant self et retourne la nouvelle instance.

free
SYNOPSIS

free(self)

DESCRIPTION

free libère l'espace occupé par self.

La méthode free définie par la classe Root ne fait rien.

NOTE : free pourrait être automatiquement envoyé par l'Object Layer à une classe qui n'est plus référencée.

CODE
  1.         'free':         (self) => undefined,

free ne fait rien et retourne undefined.

initialize
SYNOPSIS

initialize(self)

DESCRIPTION

initialize est automatiquement envoyé à une nouvelle classe par defclass. La méthode initialize définie par la classe Root ne fait rien.

initialize est généralement redéfini par une classe qui doit initialiser ses propriétés de classe.

CODE
  1.         'initialize':   (self) => self,

initialize ne fait rien et retourne self.

class
name
revision
superclass
SYNOPSIS

class(self)

name(self)

revision(self)

superclass(self)

DESCRIPTION

class retourne la classe de la classe self, i.e. self.

name retourne le nom de la classe self.

revision retourne le numéro de révision de la classe self.

superclass retourne la superclasse de la classe self, null si self est Root, la classe Root.

CODE
  1.         'class':        (self) => self,
  2.         'name':         (self) => OL.class_name(self),
  3.         'revision':     (self) => OL.class_revision(self),
  4.         'superclass':   (self) => OL.class_superclass(self),

class retourne self. name, revision et superclass retournent le résultat des fonctions class_name, class_revision et class_superclass de l'Object Layer.

classMessages
instanceMessages
SYNOPSIS

classMessages(self, inherit = true)

instanceMessages(self, inherit = true)

DESCRIPTION

classMessages retourne les messages de classe de self dans un tableau. Si inherit vaut true, classMessages retourne aussi les messages de classe hérités de toutes les superclasses de self.

instanceMessages retourne les messages d'instance de self dans un tableau. Si inherit vaut true, instanceMessages retourne aussi les messages d'instance hérités de toutes les superclasses de self.

CODE
  1.         'classMessages':
  2.             (self, inherit = true) => {
  3.                 let messages = OL.class_class_messages(self);
  4.  
  5.                 if (messages)
  6.                     messages = Object.keys(messages);
  7.  
  8.                 if (inherit) {
  9.                     let sc = OL.class_superclass(self);
  10.  
  11.                     if (sc) {
  12.                         let inherited = OL.class_send_message(sc, 'classMessages');
  13.  
  14.                         if (inherited)
  15.                             messages = messages ? [... new Set([...messages, ...inherited])] : inherited;
  16.                     }
  17.                 }
  18.  
  19.                 return messages && messages.length > 0 ? messages : null;
  20.             },
  21.         'instanceMessages':
  22.             (self, inherit = true) => {
  23.                 let messages = OL.class_instance_messages(self);
  24.  
  25.                 if (messages)
  26.                     messages = Object.keys(messages);
  27.  
  28.                 if (inherit) {
  29.                     let sc = OL.class_superclass(self);
  30.  
  31.                     if (sc) {
  32.                         let inherited = OL.class_send_message(sc, 'instanceMessages');
  33.  
  34.                         if (inherited)
  35.                             messages = messages ? [... new Set([...messages, ...inherited])] : inherited;
  36.                     }
  37.                 }
  38.  
  39.                 return messages && messages.length > 0 ? messages : null;
  40.             },

classMessages met messages à la liste des messages de classe de self, ajoute les messages de classe des superclasses de self, en supprimant les doublons, si inherit vaut true puis retourne messages. instanceMessages met messages à la liste des messages d'instance de self, ajoute les messages d'instance des superclasses de self, en supprimant les doublons, si inherit vaut true puis retourne messages.

classProperties
instanceProperties
SYNOPSIS

classProperties(self, inherit = true)

instanceProperties(self, inherit = true)

DESCRIPTION

classProperties retourne les propriétés de classe de self dans un tableau. Si inherit vaut true, classProperties retourne aussi les propriétés de classe héritées de toutes les superclasses de self.

instanceProperties retourne les propriétés d'instance de self dans un tableau. Si inherit vaut true, instanceProperties retourne aussi les propriétés d'instance héritées de toutes les superclasses de self.

CODE
  1.         'classProperties':
  2.             (self, inherit = true) => {
  3.                 let properties = OL.class_class_properties(self);
  4.  
  5.                 if (properties)
  6.                     properties = [... properties];
  7.  
  8.                 if (inherit) {
  9.                     let sc = OL.class_superclass(self);
  10.  
  11.                     if (sc) {
  12.                         let inherited_properties = OL.class_send_message(sc, 'classProperties');
  13.    
  14.                         if (inherited_properties)
  15.                             properties = properties ? [... new Set([...properties, ...inherited_properties])] : inherited_properties;
  16.                     }
  17.                 }
  18.  
  19.                 return properties && properties.length > 0 ? properties : null;
  20.             },
  21.         'instanceProperties':
  22.             (self, inherit = true) => {
  23.                 let properties = OL.class_instance_properties(self);
  24.  
  25.                 if (properties)
  26.                     properties = [... properties];
  27.  
  28.                 if (inherit) {
  29.                     let sc = OL.class_superclass(self);
  30.  
  31.                     if (sc) {
  32.                         let inherited_properties = OL.class_send_message(sc, 'instanceProperties');
  33.    
  34.                         if (inherited_properties)
  35.                             properties = properties ? [... new Set([...properties, ...inherited_properties])] : inherited_properties;
  36.                     }
  37.                 }
  38.  
  39.                 return properties && properties.length > 0 ? properties : null;
  40.             },

classProperties met properties à la liste des propriétés de classe de self, ajoute les propriétés de classe des superclasses de self, en supprimant les doublons, si inherit vaut true puis retourne properties. instanceProperties met properties à la liste des propriétés d'instance de self, ajoute les propriétés d'instance des superclasses de self, en supprimant les doublons, si inherit vaut true puis retourne properties.

classMethodFor
instanceMethodFor
SYNOPSIS

classMethodFor(self, msg)

instanceMethodFor(self, msg)

DESCRIPTION

classMethodFor retourne la fonction qui implémente le message de classe msg de self.

instanceMethodFor retourne la fonction qui implémente le message d'instance msg de self.

CODE
  1.         'classMethodFor':           (self, msg) => OL.class_find_class_method(self, msg),
  2.         'instanceMethodFor':        (self, msg) => OL.class_find_instance_method(self, msg),

classMethodFor et instanceMethodFor retournent le résultat des fonctions class_find_class_method et class_find_instance_method class_add_instance_message et class_remove_instance_message de l'Object Layer.

addClassMessage
removeClassMessage
addInstanceMessage
removeInstanceMessage
SYNOPSIS

addClassMessage(self, msg)

removeClassMessage(self, msg)

addInstanceMessage(self, msg)

removeInstanceMessage(self, msg)

DESCRIPTION

addClassMessage ajoute le message de classe msg à self.

removeClassMessage retire le message de classe msg à self.

addInstanceMessage ajoute le message d'instance msg à self.

removeInstanceMessage retire le message d'instance msg à self.

CODE
  1.         'addClassMessage':          (self, msg, f) => OL.class_add_class_message(self, msg, f),
  2.         'removeClassMessage':       (self, msg) => OL.class_remove_class_message(self, msg),
  3.         'addInstanceMessage':       (self, msg, f) => OL.class_add_instance_message(self, msg, f),
  4.         'removeInstanceMessage':    (self, msg) => OL.class_remove_instance_message(self, msg),

addClassMessage, removeClassMessage, addInstanceMessage et removeInstanceMessage retournent le résultat des fonctions class_add_class_message, class_remove_class_message, class_add_instance_message et class_remove_instance_message de l'Object Layer.

addClassProperty
removeClassProperty
addInstanceProperty
removeInstanceProperty
SYNOPSIS

addClassProperty(self, prop)

removeClassProperty(self, prop)

addInstanceProperty(self, prop)

removeInstanceProperty(self, prop)

DESCRIPTION

addClassProperty ajoute la propriété de classe prop à self.

removeClassProperty retire la propriété de classe prop à self.

addInstanceProperty ajoute la propriété d'instance prop à self.

removeInstanceProperty retire la propriété d'instance prop à self.

CODE
  1.         'addClassProperty':         (self, prop) => OL.class_add_class_property(self, prop),
  2.         'removeClassProperty':      (self, prop) => OL.class_remove_class_property(self, prop),
  3.         'addInstanceProperty':      (self, prop) => OL.class_add_instance_property(self, prop),
  4.         'removeInstanceProperty':   (self, prop) => OL.class_remove_instance_property(self, prop),

addClassProperty, removeClassProperty, addInstanceProperty et removeInstanceProperty retournent le résultat des fonctions class_add_class_property, class_remove_class_property, class_add_instance_property et class_remove_instance_property de l'Object Layer.

perform
SYNOPSIS

perform(self, msg, args = false)

DESCRIPTION

perform retourne le résultat de l'envoi du message msg à self avec args en argument. args est un tableau. Par défaut, le message n'a pas d'argument.

CODE
  1.         'perform':  (self, msg, args = false) => OL.class_send_message(self, msg, args),

perform retourne le résultat de l'envoi de msg et de args à self.

read
write
SYNOPSIS

read(self, data)

write(self)

DESCRIPTION

write retourne la sérialisation des propriétés de self.

read initialise les propriétés de self avec data. data est un objet sérialisé.

CODE
  1.         'read':     (self, sdata) => {
  2.                         let properties = OL.class_send_message(self, 'classProperties');
  3.  
  4.                         if (!properties)
  5.                             return self;
  6.  
  7.                         let data = JSON.parse(sdata);
  8.                        
  9.                         if (typeof data !== 'object')
  10.                             throw new TypeError();
  11.  
  12.                         let attributes = {};
  13.  
  14.                         for (let p of properties) {
  15.                             if (data.hasOwnProperty(p))
  16.                                 attributes[p] = data[p];
  17.                         }
  18.                            
  19.                         return OL.class_set_attributes(self, attributes);
  20.                     },
  21.         'write':    (self) => JSON.stringify(OL.class_attributes(self)),

write appelle la fonction JSON.stringify avec en argument la liste des attributs de self et retourne le résultat. read obtient la liste des propriétés de self, appelle la fonction JSON.parse avec data en argument, vérifie que le résultat est un objet, puis initialise chaque attribut de self avec la valeur correspondante extraite de cet objet.

error
doesNotContain
doesNotRecognize
notImplemented
subclassResponsibility
SYNOPSIS

error(self, err[, arg ...])

doesNotContain(self, prop)

doesNotRecognize(self, msg)

notImplemented(self, msg)

subclassResponsibility(self, msg)

DESCRIPTION

error affiche sur la console un message d'erreur dont le texte est formaté en remplaçant chaque champ {n} contenu dans la chaîne de caractères err par le paramètre correspondant suivant err en les numérotant à partir de 0.

doesNotContain envoie le message error à self avec en argument la constante Root.InvalidClassProperty, le nom de la classe self et prop.

doesNotRecognize envoie le message error à self avec en argument Root.InvalidClassMessage, le nom de la classe self et msg.

notImplemented envoie le message error à self avec en argument la constante Root.NotImplemented, le nom de la classe self et msg.

Root.subclassResponsibility envoie le message error à self avec en argument la constante SubclassResponsibility, le nom de la classe self et msg.

doesNotContain et doesNotRecognize sont envoyés par l'Object Layer. notImplemented est généralement envoyé par une méthode qui n'est pas encore codée alors que subclassResponsibility est envoyé par une méthode qui doit être implémentée par une sous-classe d'une classe abstraite.

CODE
  1.         'error':    (self, err, ...args) => {
  2.                         let errmsg = err;
  3.  
  4.                         for (let i = 0; i < args.length; i++)
  5.                             errmsg = errmsg.replace(new RegExp(`\\{${i}\\}`, 'gi'), args[i]);
  6.  
  7.                         console.error(errmsg);
  8.  
  9.                         return self;
  10.                     },
  11.         'doesNotContain':           (self, prop) => OL.class_send_message(self, 'error', [Root.InvalidClassProperty, OL.class_name(self), prop]),
  12.         'doesNotRecognize':         (self, msg) => OL.class_send_message(self, 'error', [Root.InvalidClassMessage, OL.class_name(self), msg]),
  13.         'notImplemented':           (self, msg) => OL.class_send_message(self, 'error', [Root.NotImplemented, OL.class_name(self), msg]),
  14.         'subclassResponsibility':   (self, msg) => OL.class_send_message(self, 'error', [Root.SubclassResponsibility, OL.class_name(self), msg]),
  15.     },

error formate le message d'erreur errmsg en remplaçant successivement dans err les expressions au format {n} par les arguments suivants err et l'affiche sur le flot de sortie en erreur de la console. doesNotContain, doesNotRecognize, notImplemented et subclassResponsibility envoient le message error à self avec en argument la constante du message d'erreur correspondant et ses paramètres.

MÉTHODES D'INSTANCE

get
set
SYNOPSIS

get(self, attr)

set(self, attr, val)

DESCRIPTION

get retourne la valeur de la propriété attr de self.

set met la valeur de la propriété attr de self à val.

IMPORTANT : Copiez le contenu d'un attribut qui est un tableau ou un objet si vous voulez le modifier sans changer la valeur de l'attribut.

CODE
  1.     {   'get':          (self, attr) => OL.object_get(self, attr),
  2.         'set':          (self, attr, val) => OL.object_set(self, attr, val),

get et set retournent le résultat des fonctions object_get et object_set de l'Object Layer.

init
SYNOPSIS

init(self[, arg ...])

DESCRIPTION

init est automatiquement envoyé à une nouvelle instance par new. La méthode init définie par la classe Root ne fait rien.

init est généralement redéfini par une classe qui doit initialiser ses propriétés d'instance.

CODE
  1.         'init':         (self) => self,

init ne fait rien et retourne self.

free
SYNOPSIS

free(self)

DESCRIPTION

free libère l'espace occupé par self.

La méthode free définie par la classe Root ne fait rien.

NOTE : free pourrait être automatiquement envoyé par l'Object Layer à une instance qui n'est plus référencée.

CODE
  1.         'free':         (self) => undefined,

free ne fait rien et retourne undefined.

class
superclass
messages
properties
SYNOPSIS

class(self)

superclass(self)

messages(self, inherit = true)

properties(self, inherit = true)

DESCRIPTION

class retourne la classe de self.

superclass retourne la superclasse de la classe de self, i.e. null si self est une instance de la classe Root.

messages retourne les messages reconnus par self dans un tableau. Si inherit vaut true, messages retourne aussi les messages hérités de toutes les superclasses de $self. inherit vaut true par défaut.

properties retourne les propriétés de self dans un tableau. Si inherit vaut true, properties retourne aussi les propriétés héritées de toutes les superclasses de self. inherit vaut true par défaut.

CODE
  1.         'class':        (self) => OL.object_class(self),
  2.         'superclass':   (self) => OL.class_superclass(OL.object_class(self)),
  3.         'messages':     (self, inherit = true) => OL.class_send_message(OL.object_class(self), 'instanceMessages', [inherit]),
  4.         'properties':   (self, inherit = true) => OL.class_send_message(OL.object_class(self), 'instanceProperties', [inherit]),

class retourne le résultat de la fonction object_class de l'Object Layer. superclass retourne le résultat de la fonction class_superclass avec en argument la classe de self. messages envoie le message instanceMessages à la classe de self avec inherit en argument. properties envoie le message instanceProperties à la classe de self avec inherit en argument.

isKindOf
methodFor
respondsTo
assume
SYNOPSIS

isKindOf(self, c)

methodFor(self, msg)

respondsTo(self, msg)

assume(self, c)

DESCRIPTION

isKindOf retourne true si self est une instance de la classe ou d'une sous-classe de c ou false dans le cas contraire.

methodFor retourne la fonction qui implémente le message msg pour self ou false si self ne répond pas à msg.

respondsTo retourne true si self a une méthode pour le message msg, false dans le cas contraire.

assume change la classe de self à c. Les valeurs des propriétés de la classe précédente de self qui ne font pas partie de la classe class sont conservées mais elles ne sont pas accessibles.

CODE
  1.         'respondsTo':   (self, msg) => OL.class_find_instance_method_class(OL.object_class(self), msg) ? true : false,
  2.         'methodFor':    (self, msg) => OL.class_find_instance_method(OL.object_class(self), msg),
  3.         'isKindOf':     (self, c) => OL.class_is_kind_of(OL.object_class(self), c),
  4.         'assume':       (self, c) => OL.object_assume(self, c),

isKindOf retourne le résultat de la fonction class_is_kind_of de l'Object Layer avec en argument la classe de self et c. methodFor retourne le résultat de la fonction class_find_instance_method avec en argument la classe de self et msg. respondsTo retourne true si le résultat de la fonction class_find_instance_method avec en argument la classe de self et msg n'est pas false, true dans le cas contraire. assume appelle la fonction object_assume avec c en argument.

copy
SYNOPSIS

copy(self)

DESCRIPTION

copy retourne une copie de self. IMPORTANT : object_copy ne duplique pas les valeurs des attributs de self. Si une classe a des propriétés qui sont des tableaux ou des objets, une redéfinition de la méthode est nécessaire.

CODE
  1.         'copy':         (self) => OL.object_copy(self),

copy retourne le résultat de la fonction object_copy de l'Object Layer.

toString
SYNOPSIS

toString(self)

DESCRIPTION

toString retourne une représentation lisible de self. La méthode toString de la classe Root retourne une chaîne de caractères vide.

CODE
  1.         'toString':     (self) => '',

toString retourne une chaîne de caractères vide.

delegate
setDelegate
SYNOPSIS

delegate(self, msg = false[, arg ...])

setDelegate(self, $delegate)

DESCRIPTION

delegate retourne le résultat de l'envoi du message msg et des arguments arg suivant msg au délégué de self. Si self n'a pas de délégué ou si le délégué de self ne répond pas au message msg, delegate retourne false. Si msg vaut false, delegate retourne le délégué de self.

setDelegate initialise la propriété delegate de self avec $delegate.

NOTE : Envoyer delegate ou setDelegate à une instance qui n'a pas la propriété delegate envoie le message doesNotContain à l'instance.

CODE
  1.         'delegate':     (self, msg = false, ...args) => {
  2.                             let delegate = OL.object_get(self, 'delegate');
  3.  
  4.                             if (!msg)
  5.                                 return delegate;
  6.  
  7.                             if (!delegate)
  8.                                 return false;
  9.  
  10.                             if (!OL.object_send_message(delegate, 'respondsTo', [msg]))
  11.                                 return false;
  12.            
  13.                             return OL.object_send_message(delegate, msg, args);
  14.                         },
  15.         'setDelegate':  (self, delegate) => {
  16.                             if (! (delegate === null || (typeof delegate === 'object' && delegate instanceof OL.Instance)))
  17.                                 throw new TypeError();
  18.  
  19.                             return OL.object_set(self, 'delegate', delegate);
  20.                         },

delegate met delegate à la valeur de la propriété delegate de self, retourne delegate si msg vaut false, retourne false si delegate vaut null ou si delegate ne répond pas à msg, retourne le résultat de l'envoi de msg avec les arguments de delegate suivants msg à delegate. setDelegate vérifie que delegate est null ou un objet puis met la propriété delegate de self à delegate.

perform
SYNOPSIS

perform(self, msg, args = false)

DESCRIPTION

perform retourne le résultat de l'envoi du message msg à self avec args en argument. args est un tableau. Par défaut, le message n'a pas d'argument.

CODE
  1.         'perform':  (self, msg, args = false) => OL.object_send_message(self, msg, args),

perform retourne le résultat de l'envoi de msg et de args à self.

read
write
SYNOPSIS

read(self, data)

write(self)

DESCRIPTION

write retourne la sérialisation des propriétés de self.

read initialise les propriétés de self avec data. data est un objet sérialisé.

CODE
  1.         'read':     (self, sdata) => {
  2.                         let properties = OL.class_send_message(OL.object_class(self), 'instanceProperties');
  3.  
  4.                         if (!properties)
  5.                             return self;
  6.  
  7.                         let data = JSON.parse(sdata);
  8.                        
  9.                         if (typeof data !== 'object')
  10.                             throw new TypeError();
  11.  
  12.                         let attributes = {};
  13.  
  14.                         for (let p of properties) {
  15.                             if (data.hasOwnProperty(p))
  16.                                 attributes[p] = data[p];
  17.                         }
  18.                            
  19.                         return OL.object_set_attributes(self, attributes);
  20.                     },
  21.         'write':    (self) => JSON.stringify(OL.object_attributes(self)),

write appelle la fonction JSON.stringify avec en argument la liste des attributs de self et retourne le résultat. read obtient la liste des propriétés de self, appelle la fonction JSON.parse avec data en argument, vérifie que le résultat est un objet, puis initialise chaque attribut de self avec la valeur correspondante extraite de cet objet.

error
doesNotContain
doesNotRecognize
notImplemented
subclassResponsibility
SYNOPSIS

error(self, err[, arg ...])

doesNotContain(self, prop)

doesNotRecognize(self, msg)

notImplemented(self, msg)

subclassResponsibility(self, msg)

DESCRIPTION

error affiche sur la console un message d'erreur dont le texte est formaté en remplaçant chaque champ {n} contenu dans la chaîne de caractères err par le paramètre correspondant suivant err en les numérotant à partir de 0.

doesNotContain envoie le message error à self avec en argument la constante Root.InvalidClassProperty, le nom de la classe de self et prop.

doesNotRecognize envoie le message error à self avec en argument Root.InvalidClassMessage, le nom de la classe de self et msg.

notImplemented envoie le message error à self avec en argument la constante Root.NotImplemented, le nom de la classe de self et msg.

Root.subclassResponsibility envoie le message error à self avec en argument la constante SubclassResponsibility, le nom de la classe self et msg.

doesNotContain et doesNotRecognize sont envoyés par l'Object Layer. notImplemented est généralement envoyé par une méthode qui n'est pas encore codée alors que subclassResponsibility est envoyé par une méthode qui doit être implémentée par une sous-classe d'une classe abstraite.

CODE
  1.         'error':    (self, err, ...args) => {
  2.                         let errmsg = err;
  3.  
  4.                         for (let i = 0; i < args.length; i++)
  5.                             errmsg = errmsg.replace(new RegExp(`\\{${i}\\}`, 'gi'), args[i]);
  6.  
  7.                         console.error(errmsg);
  8.  
  9.                         return self;
  10.                     },
  11.         'doesNotContain':           (self, prop) => OL.object_send_message(self, 'error', [Root.InvalidInstanceProperty, OL.class_name(OL.object_class(self)), prop]),
  12.         'doesNotRecognize':         (self, msg) => OL.object_send_message(self, 'error', [Root.InvalidInstanceMessage, OL.class_name(OL.object_class(self)), msg]),
  13.         'notImplemented':           (self, msg) => OL.object_send_message(self, 'error', [Root.NotImplemented, OL.class_name(OL.object_class(self)), msg]),
  14.         'subclassResponsibility':   (self, msg) => OL.object_send_message(self, 'error', [Root.SubclassResponsibility, OL.class_name(OL.object_class(self)), msg]),
  15.     }
  16. );

error formate le message d'erreur errmsg en remplaçant successivement dans err les expressions au format {n} par les arguments suivants err et l'affiche sur le flot de sortie en erreur de la console. doesNotContain, doesNotRecognize, notImplemented et subclassResponsibility envoient le message error à self avec en argument la constante du message d'erreur correspondant et ses paramètres.

  1. Root.InvalidClassProperty = '{0}::{1} Invalid class property';
  2. Root.InvalidClassMessage = '{0}::{1} Invalid class message';
  3. Root.InvalidInstanceProperty = '{0}::{1} Invalid instance property';
  4. Root.InvalidInstanceMessage = '{0}::{1} Invalid instance message';
  5.  
  6. Root.NotImplemented = '{0}::{1} Not implemented';
  7. Root.SubclassResponsibility = '{0}::{1} Subclass responsibility';

Définit les messages d'erreurs affichés par les méthodes de classe et les méthodes d'instance doesNotContain, doesNotRecognize, notImplemented et subclassResponsibility.

VOIR AUSSI

Interface, Object Layer

Commentaires

Votre commentaire :
[p] [b] [i] [u] [s] [quote] [pre] [br] [code] [url] [email] strip aide 2000

Entrez un maximum de 2000 caractères.
Améliorez la présentation de votre texte avec les balises de formatage suivantes :
[p]paragraphe[/p], [b]gras[/b], [i]italique[/i], [u]souligné[/u], [s]barré[/s], [quote]citation[/quote], [pre]tel quel[/pre], [br]à la ligne,
[url]http://www.izend.org[/url], [url=http://www.izend.org]site[/url], [email]izend@izend.org[/email], [email=izend@izend.org]izend[/email],
[code]commande[/code], [code=langage]code source en c, java, php, html, javascript, xml, css, sql, bash, dos, make, etc.[/code].