(slot-writablep <имя-класса> <имя-слота>)
(slot-initablep <имя-класса> <имя-слота>)
(slot-publicp <имя-класса> <имя-слота>)
(slot-direct-accessp <имя-класса> <имя-слота>)
В случае положительного результата проверки функции возвращают значение TRUE иначе — false. В случае если указанный класс или слот не существует, перечисленные функции генерируют сообщение об ошибке. Функция slot-writablep проверяет возможность записи в слот. Функция slot-initablep предназначена для проверки возможности инициализации слота. Для выяснения, передается ли слот по наследованию (грань visibility имеет значение public), предназначена функция siot-publicp. Функция slot-direct-accessp служит для проверки, возможен ли прямой доступ к указанному слоту.
Для определения, существует ли указанный обработчик у заданного класса, предназначена функция message-handler-existp.
Определение 15.76. Функция message-handler-existp
(message-handler-existp <имя-класса>
<имя-обработчика-сообщения>
[<тип-обработчика-сообщения>])
<тип-обработчика-сообщения>::= around | before | primary | after
|
|
Эта функция возвращает значение true, если указанный обработчик сообщений существует (обработчик должен быть определен непосредственно у заданного класса, а не получен при помощи наследования). Иначе возвращает значение false. В качестве необязательного третьего параметра может быть задан тип обработчика. Если этого не сделано, по умолчанию анализируются только обработчики сообщений primary.
Пара функций class-superclasses и class-subclasses предназначена для получения списка всех суперклассов и подклассов указанного класса.
Определение 15.77. Функции class-superclasses и class-subclasses
(class-superclasses <имя-класса> [inherit])
(class-subclasses <имя-класса> [inherit])
При использовании необязательного флага inherit функция class-superclasses генерирует список всех суперклассов. В противном случае возвращается список только прямых суперклассов (классов, от которых заданный класс унаследован непосредственно). Если в функции class-subclasses использован параметр inherit, то функция отображает всех наследников указанного класса, иначе только прямых наследников.
Варианты использования функций class-superclasses и class-subclasses представлены в примере 15.29 и на рис. 15.26.