The descriptions Reference Manual

Next: , Previous: , Up: (dir)   [Contents][Index]

The descriptions Reference Manual

This is the descriptions Reference Manual, generated automatically by Declt version 4.0 beta 2 "William Riker" on Mon Aug 15 04:26:27 2022 GMT+0.

Table of Contents


1 Introduction

{} descriptions

Build Status

Overview

{} descriptions is a meta level descriptions library for Common Lisp.

It is inspired by Smalltalk Maggrite, as well as Lisp On Lines.

Documentation

HTML documentation

PDF manual

Install

Download the source code from https://github.com/mmontone/descriptions and point .asd system definition files from ./sbcl/system (ln -s <system definition file path>) and then evaluate:

(require :descriptions)

from your lisp listener.

You will also need to satisfy these system dependencies:

The easiest way of installing those packages is via Quicklisp.

This library is under the MIT licence.

Getting started

{} descriptions is a very dynamic meta-description library similar to Smalltalk Maggrite and Lisp On Lines. Meta description of the application's domain model is done defining descriptions for the different aspects is desired to represent. This helps automate the generation of different views, editors, serialization schemas, validation procedures for the domain model objects and to avoid very repetitive and error-prone work when those objects change its shape.

Domain model meta descriptions consist of the definition of description objects for its different aspects (viewing, editing, validation, persistence, serialization, etc). Description objects are a collections of attributes, can inherit from each other, and are composable.

Let's go through an example to see how this works.

Say we have a person model object:

(defclass person ()
  ((id :accessor id)
   (username :initarg :username
	     :accessor username)
   (fullname :initarg :fullname
             :accessor fullname)
   (email :initarg :email
          :accessor email)
   (password :initarg :password
	     :accessor password)))

We would like to print instances of that model on the screen. So first we define a {person} description that just describes which attributes person model objecs possess and their "types".

(define-description {person} ()
  ((username =>string
	     :reader #'username
	     :writer #'(setf username))
   (email =>email
	  :reader #'email
	  :writer #'(setf email))
   (fullname =>string
	     :reader #'fullname
	     :writer #'(setf fullname))
   (password =>password
	     :reader #'password
	     :writer #'(setf password)))
  :documentation "A person description")

Descriptions names are enclosed between brackets { } as a naming convention. Also, notice that the attribute types (=>string, =>email, =>password), begin with =>. Attributes types begin with => as a naming convention.

Now we can use the information on the attributes of a person, and its types, to print a description of a person on the screen. To do that we define a new description that indicates which person slots we would like to print, and in which order.

(define-description {person-view} ({person})
  ((fullname =>view :label "Full name")
   (username =>view)
   (email =>view :label "E-mail")
   (password =>view :view nil)))

We can see that the password is disabled for viewing, that "Full name" and "E-mail" are used for labels, and that fullname, username, email and password are to be displayed in that order.

We can see that in action:

(display-object (make-instance 'person :username "mmontone"
			       :email "mariano@copyleft.no"
			       :password "lalala"
			       :fullname "Mariano Montone")
		{person-view})

prints:

Full name: "Mariano Montone"
Username: "mmontone"
E-mail: "mariano@copyleft.no"

Descriptions composition

Descriptions can be composed using inheritance. Multiple inheritance is supported and they are implemented on top of a prototype based object system, so they can be composed in run time on the fly.

Attributes composition

When inheriting from other descriptions, attributes with the same name are collapsed into one containing all the attribute properties.

For example, consider the basic {person} description we had before. We can ask for an attribute name and type, but asking if that attribute is going to be displayed throws an error, because that attribute property does not belong to the {person} description, but the {person-view} description we saw before.

{}> (attribute-name (get-attribute {person} 'fullname))
FULLNAME
{}> (attribute-type (get-attribute {person} 'fullname))
#<Object =>STRING {1005A0A0A3}>
{}> (attribute-view (get-attribute {person} 'fullname))
;; Error

But if we ask the same to the {person-view} description, we can access to all the attributes properties.

{}> (attribute-name (get-attribute {person-view} 'fullname))
FULLNAME
{}> (attribute-type (get-attribute {person-view} 'fullname))
#<Object =>STRING {1005A0A0A3}>
{}> (attribute-view (get-attribute {person-view} 'fullname))
T

This makes the approach layered, with each description describing different aspects of the same model and extending other more basic descriptions.

Descriptions composition

As we mentioned before, descriptions can be composed on the fly thanks to the prototype object system the library is implemented in.

For example, we can create new descriptions with the make-description function, passing the descriptions we want to compose as parents:

(let ((description (make-description :parents
				     (list {person-validation} {person-repl-editing}))))
  (let ((person (make-instance 'person)))
      (edit-object person description)
      (validate-object person description)
      (describe person)))

A prettier way of doing it is using the description name as a function:

(let ((description ({person-validation} {person-repl-editing})))
    (let ((person (make-instance 'person)))
      (edit-object person description)
      (validate-object person description)
      (describe person)))

We can also choose not to compose descriptions, but work with them separately on the different aspects of the model objects:

(let ((person (make-instance 'person)))
  (edit-object person {person-repl-editing})
  (validate-object person {person-validation})
  (describe person)
  (print
   (with-output-to-string (s)
     (serialize-object person {person-serialization} s))))

Implementation

{} descriptions is implemented as a thin layer over Sheeple prototypes. As a consequence, descriptions and its attributes can be easily be combined in run time.

Why not just use metaclasses instead?

It is not possible to achieve quite the same with metaclasses. They do not allow to keep the metamodel independent of the actual implementation of the class. It should be possible to exchange descriptions on the fly, and even use multiple descriptions at the same time for the same underlying domain object.

Metaclasses have their own specific power though, and may be good to use them in combination with descriptions.

References


2 Systems

The main system appears first, followed by any subsystem dependency.


Previous: , Up: Systems   [Contents][Index]

2.1 descriptions

A domain model meta level description library

Author

Mariano Montone

License

MIT

Dependencies
  • alexandria (system).
  • anaphora (system).
  • sheeple (system).
  • closer-mop (system).
Source

descriptions.asd.

Child Component

src (module).


3 Modules

Modules are listed depth-first from the system components tree.


Previous: , Up: Modules   [Contents][Index]

3.1 descriptions/src

Source

descriptions.asd.

Parent Component

descriptions (system).

Child Components

4 Files

Files are sorted by type and then listed depth-first from the systems components trees.


Previous: , Up: Files   [Contents][Index]

4.1 Lisp


Next: , Previous: , Up: Lisp   [Contents][Index]

4.1.1 descriptions/descriptions.asd

Source

descriptions.asd.

Parent Component

descriptions (system).

ASDF Systems

descriptions.


4.1.2 descriptions/src/package.lisp

Source

descriptions.asd.

Parent Component

src (module).

Packages

descriptions.


4.1.3 descriptions/src/descriptions.lisp

Dependency

package.lisp (file).

Source

descriptions.asd.

Parent Component

src (module).

Public Interface
Internals

4.1.4 descriptions/src/mop.lisp

Dependency

descriptions.lisp (file).

Source

descriptions.asd.

Parent Component

src (module).

Public Interface
Internals

5 Packages

Packages are listed by definition order.


Previous: , Up: Packages   [Contents][Index]

5.1 descriptions

Source

package.lisp.

Nicknames
  • {}
  • desc
Use List
  • alexandria.
  • anaphora.
  • common-lisp.
  • sheeple.
Public Interface
Internals

6 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


Next: , Previous: , Up: Definitions   [Contents][Index]

6.1 Public Interface


Next: , Previous: , Up: Public Interface   [Contents][Index]

6.1.1 Special variables

Special Variable: =>
Package

descriptions.

Special Variable: =>boolean

Boolean attribute

Package

descriptions.

Special Variable: =>email

Email attribute

Package

descriptions.

Special Variable: =>integer

Integer attribute

Package

descriptions.

Special Variable: =>keyword

Keyword attribute

Package

descriptions.

Special Variable: =>multiple-option
Package

descriptions.

Special Variable: =>password

Password attribute

Package

descriptions.

Special Variable: =>single-option
Package

descriptions.

Special Variable: =>string

String attribute

Package

descriptions.

Special Variable: =>symbol

Symbol attribute

Package

descriptions.

Special Variable: =>to-many-relation
Package

descriptions.

Special Variable: =>to-one-relation
Package

descriptions.

Special Variable: =>valued
Package

descriptions.

Special Variable: =>view
Package

descriptions.

Special Variable: {description}
Package

descriptions.


6.1.2 Macros

Macro: => (type-spec &rest property-values)

Attribute builder macro

Package

descriptions.

Source

descriptions.lisp.

Macro: define-attribute (name parents properties &rest options)

Define an attribute type

:param name: the attribute type name.
:param parents: the attribute type parents. :param properties: list of properties.
:param options: options, like :documentation, etc

Package

descriptions.

Source

descriptions.lisp.

Macro: define-described-class (name direct-superclasses direct-slots &rest options)
Package

descriptions.

Source

mop.lisp.

Macro: define-description (name parents attributes &rest options)

Define a new description

Package

descriptions.

Source

descriptions.lisp.

Macro: with-described-object (attributes (object &optional description) &body body)
Package

descriptions.

Source

descriptions.lisp.

Macro: with-description-attributes (attributes description &body body)

Run body with description attributes bound

Package

descriptions.

Source

descriptions.lisp.


6.1.3 Ordinary functions

Function: =>boolean (&rest property-values)

Create a =>BOOLEAN attribute. Takes a plist of property values for the created attribute

Package

descriptions.

Source

descriptions.lisp.

Function: =>email (&rest property-values)

Create a =>EMAIL attribute. Takes a plist of property values for the created attribute

Package

descriptions.

Source

descriptions.lisp.

Function: =>integer (&rest property-values)

Create a =>INTEGER attribute. Takes a plist of property values for the created attribute

Package

descriptions.

Source

descriptions.lisp.

Function: =>keyword (&rest property-values)

Create a =>KEYWORD attribute. Takes a plist of property values for the created attribute

Package

descriptions.

Source

descriptions.lisp.

Function: =>multiple-option (&rest property-values)

Create a =>MULTIPLE-OPTION attribute. Takes a plist of property values for the created attribute

Package

descriptions.

Source

descriptions.lisp.

Function: =>password (&rest property-values)

Create a =>PASSWORD attribute. Takes a plist of property values for the created attribute

Package

descriptions.

Source

descriptions.lisp.

Function: =>single-option (&rest property-values)

Create a =>SINGLE-OPTION attribute. Takes a plist of property values for the created attribute

Package

descriptions.

Source

descriptions.lisp.

Function: =>string (&rest property-values)

Create a =>STRING attribute. Takes a plist of property values for the created attribute

Package

descriptions.

Source

descriptions.lisp.

Function: =>symbol (&rest property-values)

Create a =>SYMBOL attribute. Takes a plist of property values for the created attribute

Package

descriptions.

Source

descriptions.lisp.

Function: =>to-many-relation (&rest property-values)

Create a =>TO-MANY-RELATION attribute. Takes a plist of property values for the created attribute

Package

descriptions.

Source

descriptions.lisp.

Function: =>to-one-relation (&rest property-values)

Create a =>TO-ONE-RELATION attribute. Takes a plist of property values for the created attribute

Package

descriptions.

Source

descriptions.lisp.

Function: =>valued (&rest property-values)

Create a =>VALUED attribute. Takes a plist of property values for the created attribute

Package

descriptions.

Source

descriptions.lisp.

Function: =>view (&rest property-values)

Create a =>VIEW attribute. Takes a plist of property values for the created attribute

Package

descriptions.

Source

descriptions.lisp.

Function: add-attribute (description attribute &key reader writer accessor)
Package

descriptions.

Source

descriptions.lisp.

Function: attribute-documentation (attribute)
Package

descriptions.

Source

descriptions.lisp.

Function: attribute-properties (attribute)
Package

descriptions.

Source

descriptions.lisp.

Function: description-attributes (description)

Obtain a description attributes. :param description: the description.

Package

descriptions.

Source

descriptions.lisp.

Function: display-object (object &optional description stream)
Package

descriptions.

Source

descriptions.lisp.

Function: get-attribute (description attribute-name)
Package

descriptions.

Source

descriptions.lisp.

Function: make-attribute (attribute-type &rest property-values)

Create an attribute.

:param attribute-type: The attribute type :property-values: A plist of attribute properties values

Package

descriptions.

Source

descriptions.lisp.

Function: make-description (&key parents attributes)
Package

descriptions.

Source

descriptions.lisp.

Function: undefinedp (value)
Package

descriptions.

Source

descriptions.lisp.


6.1.4 Generic functions

Generic Reader: default-description (object)
Package

descriptions.

Methods
Reader Method: default-description ((described-object-class described-object-class))

automatically generated reader method

Source

mop.lisp.

Target Slot

default-description.

Reader Method: default-description ((described-object described-object))

automatically generated reader method

Source

mop.lisp.

Target Slot

default-description.

Generic Writer: (setf default-description) (object)
Package

descriptions.

Methods
Writer Method: (setf default-description) ((described-object-class described-object-class))

automatically generated writer method

Source

mop.lisp.

Target Slot

default-description.

Writer Method: (setf default-description) ((described-object described-object))

automatically generated writer method

Source

mop.lisp.

Target Slot

default-description.


6.1.5 Standalone methods

Method: compute-effective-slot-definition ((class described-object-class) name direct-slots)
Package

sb-mop.

Source

mop.lisp.

Method: direct-slot-definition-class ((class described-object-class) &rest initargs)
Package

sb-mop.

Source

mop.lisp.

Method: effective-slot-definition-class ((class described-object-class) &rest initargs)
Package

sb-mop.

Source

mop.lisp.

Method: shared-initialize :after ((obj described-object) slot-names &rest args)

Initialize the default object description

Source

mop.lisp.

Method: shared-initialize :around ((class described-object-class) slot-names &rest args &key direct-superclasses)

Ensures we inherit from described-object.

Source

mop.lisp.

Method: validate-superclass ((class described-object-class) (superclass standard-class))
Package

sb-mop.

Source

mop.lisp.


6.1.6 Classes

Class: described-object
Package

descriptions.

Source

mop.lisp.

Direct methods
Direct slots
Slot: default-description
Initargs

:default-description

Readers

default-description.

Writers

(setf default-description).

Slot: parent-descriptions
Initform

(list descriptions:{description})

Initargs

:parent-descriptions

Readers

parent-descriptions.

Writers

(setf parent-descriptions).

Slot: default-description-name
Initargs

:default-description-name

Readers

default-description-name.

Writers

(setf default-description-name).

Class: described-object-class
Package

descriptions.

Source

mop.lisp.

Direct superclasses

standard-class.

Direct methods
Direct slots
Slot: default-description
Initargs

:default-description

Readers

default-description.

Writers

(setf default-description).


6.2 Internals


Next: , Previous: , Up: Internals   [Contents][Index]

6.2.1 Special variables

Special Variable: %undefined%
Package

descriptions.

Source

descriptions.lisp.

Special Variable: =>option
Package

descriptions.

Special Variable: =>reference
Package

descriptions.

Special Variable: =>relation
Package

descriptions.


6.2.2 Symbol macros

Symbol Macro: +undefined+
Package

descriptions.

Source

descriptions.lisp.


6.2.3 Ordinary functions

Function: =>option (&rest property-values)

Create a =>OPTION attribute. Takes a plist of property values for the created attribute

Package

descriptions.

Source

descriptions.lisp.

Function: =>reference (&rest property-values)

Create a =>REFERENCE attribute. Takes a plist of property values for the created attribute

Package

descriptions.

Source

descriptions.lisp.

Function: =>relation (&rest property-values)

Create a =>RELATION attribute. Takes a plist of property values for the created attribute

Package

descriptions.

Source

descriptions.lisp.

Function: copy-undefined (instance)
Package

descriptions.

Source

descriptions.lisp.

Function: make-undefined (&key)
Package

descriptions.

Source

descriptions.lisp.

Function: plist-keys (plist)
Package

descriptions.

Source

mop.lisp.

Function: plist-values (plist)
Package

descriptions.

Source

mop.lisp.

Function: symbol->keyword (symbol)
Package

descriptions.

Source

descriptions.lisp.

Function: undefined-p (object)
Package

descriptions.

Source

descriptions.lisp.


Next: , Previous: , Up: Internals   [Contents][Index]

6.2.4 Generic functions

Generic Reader: default-description-name (object)
Package

descriptions.

Methods
Reader Method: default-description-name ((described-object described-object))

automatically generated reader method

Source

mop.lisp.

Target Slot

default-description-name.

Generic Writer: (setf default-description-name) (object)
Package

descriptions.

Methods
Writer Method: (setf default-description-name) ((described-object described-object))

automatically generated writer method

Source

mop.lisp.

Target Slot

default-description-name.

Generic Function: described-p (object)
Package

descriptions.

Methods
Method: described-p (slot)
Source

mop.lisp.

Reader Method: described-p ((described-object-slot-mixin described-object-slot-mixin))

automatically generated reader method

Source

mop.lisp.

Target Slot

described-p.

Generic Writer: (setf described-p) (object)
Package

descriptions.

Methods
Writer Method: (setf described-p) ((described-object-slot-mixin described-object-slot-mixin))

automatically generated writer method

Source

mop.lisp.

Target Slot

described-p.

Generic Function: described-slot-p (slot)
Package

descriptions.

Source

mop.lisp.

Methods
Method: described-slot-p (slot)
Method: described-slot-p ((slot described-object-slot-mixin))
Generic Reader: parent-descriptions (object)
Package

descriptions.

Methods
Reader Method: parent-descriptions ((described-object described-object))

automatically generated reader method

Source

mop.lisp.

Target Slot

parent-descriptions.

Generic Writer: (setf parent-descriptions) (object)
Package

descriptions.

Methods
Writer Method: (setf parent-descriptions) ((described-object described-object))

automatically generated writer method

Source

mop.lisp.

Target Slot

parent-descriptions.

Generic Function: slot-attribute (object)
Package

descriptions.

Methods
Method: slot-attribute (slot)
Source

mop.lisp.

Reader Method: slot-attribute ((described-object-slot-mixin described-object-slot-mixin))

automatically generated reader method

Source

mop.lisp.

Target Slot

attribute.

Generic Writer: (setf slot-attribute) (object)
Package

descriptions.

Methods
Writer Method: (setf slot-attribute) ((described-object-slot-mixin described-object-slot-mixin))

automatically generated writer method

Source

mop.lisp.

Target Slot

attribute.

Generic Function: slot-attribute-name (slot)
Package

descriptions.

Methods
Method: slot-attribute-name (slot)
Source

mop.lisp.


Next: , Previous: , Up: Internals   [Contents][Index]

6.2.5 Structures

Structure: undefined
Package

descriptions.

Source

descriptions.lisp.

Direct superclasses

structure-object.


Previous: , Up: Internals   [Contents][Index]

6.2.6 Classes

Class: described-object-direct-slot-definition
Package

descriptions.

Source

mop.lisp.

Direct superclasses
Class: described-object-effective-slot-definition
Package

descriptions.

Source

mop.lisp.

Direct superclasses
Class: described-object-slot-mixin
Package

descriptions.

Source

mop.lisp.

Direct subclasses
Direct methods
Direct slots
Slot: attribute
Initargs

:attribute

Readers

slot-attribute.

Writers

(setf slot-attribute).

Slot: described-p
Initform

t

Initargs

:described-p

Readers

described-p.

Writers

(setf described-p).


Appendix A Indexes


Next: , Previous: , Up: Indexes   [Contents][Index]

A.1 Concepts


Next: , Previous: , Up: Indexes   [Contents][Index]

A.2 Functions

Jump to:   (   =  
A   C   D   E   F   G   M   P   S   U   V   W  
Index Entry  Section

(
(setf default-description): Public generic functions
(setf default-description): Public generic functions
(setf default-description): Public generic functions
(setf default-description-name): Private generic functions
(setf default-description-name): Private generic functions
(setf described-p): Private generic functions
(setf described-p): Private generic functions
(setf parent-descriptions): Private generic functions
(setf parent-descriptions): Private generic functions
(setf slot-attribute): Private generic functions
(setf slot-attribute): Private generic functions

=
=>: Public macros
=>boolean: Public ordinary functions
=>email: Public ordinary functions
=>integer: Public ordinary functions
=>keyword: Public ordinary functions
=>multiple-option: Public ordinary functions
=>option: Private ordinary functions
=>password: Public ordinary functions
=>reference: Private ordinary functions
=>relation: Private ordinary functions
=>single-option: Public ordinary functions
=>string: Public ordinary functions
=>symbol: Public ordinary functions
=>to-many-relation: Public ordinary functions
=>to-one-relation: Public ordinary functions
=>valued: Public ordinary functions
=>view: Public ordinary functions

A
add-attribute: Public ordinary functions
attribute-documentation: Public ordinary functions
attribute-properties: Public ordinary functions

C
compute-effective-slot-definition: Public standalone methods
copy-undefined: Private ordinary functions

D
default-description: Public generic functions
default-description: Public generic functions
default-description: Public generic functions
default-description-name: Private generic functions
default-description-name: Private generic functions
define-attribute: Public macros
define-described-class: Public macros
define-description: Public macros
described-p: Private generic functions
described-p: Private generic functions
described-p: Private generic functions
described-slot-p: Private generic functions
described-slot-p: Private generic functions
described-slot-p: Private generic functions
description-attributes: Public ordinary functions
direct-slot-definition-class: Public standalone methods
display-object: Public ordinary functions

E
effective-slot-definition-class: Public standalone methods

F
Function, =>boolean: Public ordinary functions
Function, =>email: Public ordinary functions
Function, =>integer: Public ordinary functions
Function, =>keyword: Public ordinary functions
Function, =>multiple-option: Public ordinary functions
Function, =>option: Private ordinary functions
Function, =>password: Public ordinary functions
Function, =>reference: Private ordinary functions
Function, =>relation: Private ordinary functions
Function, =>single-option: Public ordinary functions
Function, =>string: Public ordinary functions
Function, =>symbol: Public ordinary functions
Function, =>to-many-relation: Public ordinary functions
Function, =>to-one-relation: Public ordinary functions
Function, =>valued: Public ordinary functions
Function, =>view: Public ordinary functions
Function, add-attribute: Public ordinary functions
Function, attribute-documentation: Public ordinary functions
Function, attribute-properties: Public ordinary functions
Function, copy-undefined: Private ordinary functions
Function, description-attributes: Public ordinary functions
Function, display-object: Public ordinary functions
Function, get-attribute: Public ordinary functions
Function, make-attribute: Public ordinary functions
Function, make-description: Public ordinary functions
Function, make-undefined: Private ordinary functions
Function, plist-keys: Private ordinary functions
Function, plist-values: Private ordinary functions
Function, symbol->keyword: Private ordinary functions
Function, undefined-p: Private ordinary functions
Function, undefinedp: Public ordinary functions

G
Generic Function, (setf default-description): Public generic functions
Generic Function, (setf default-description-name): Private generic functions
Generic Function, (setf described-p): Private generic functions
Generic Function, (setf parent-descriptions): Private generic functions
Generic Function, (setf slot-attribute): Private generic functions
Generic Function, default-description: Public generic functions
Generic Function, default-description-name: Private generic functions
Generic Function, described-p: Private generic functions
Generic Function, described-slot-p: Private generic functions
Generic Function, parent-descriptions: Private generic functions
Generic Function, slot-attribute: Private generic functions
Generic Function, slot-attribute-name: Private generic functions
get-attribute: Public ordinary functions

M
Macro, =>: Public macros
Macro, define-attribute: Public macros
Macro, define-described-class: Public macros
Macro, define-description: Public macros
Macro, with-described-object: Public macros
Macro, with-description-attributes: Public macros
make-attribute: Public ordinary functions
make-description: Public ordinary functions
make-undefined: Private ordinary functions
Method, (setf default-description): Public generic functions
Method, (setf default-description): Public generic functions
Method, (setf default-description-name): Private generic functions
Method, (setf described-p): Private generic functions
Method, (setf parent-descriptions): Private generic functions
Method, (setf slot-attribute): Private generic functions
Method, compute-effective-slot-definition: Public standalone methods
Method, default-description: Public generic functions
Method, default-description: Public generic functions
Method, default-description-name: Private generic functions
Method, described-p: Private generic functions
Method, described-p: Private generic functions
Method, described-slot-p: Private generic functions
Method, described-slot-p: Private generic functions
Method, direct-slot-definition-class: Public standalone methods
Method, effective-slot-definition-class: Public standalone methods
Method, parent-descriptions: Private generic functions
Method, shared-initialize: Public standalone methods
Method, shared-initialize: Public standalone methods
Method, slot-attribute: Private generic functions
Method, slot-attribute: Private generic functions
Method, slot-attribute-name: Private generic functions
Method, validate-superclass: Public standalone methods

P
parent-descriptions: Private generic functions
parent-descriptions: Private generic functions
plist-keys: Private ordinary functions
plist-values: Private ordinary functions

S
shared-initialize: Public standalone methods
shared-initialize: Public standalone methods
slot-attribute: Private generic functions
slot-attribute: Private generic functions
slot-attribute: Private generic functions
slot-attribute-name: Private generic functions
slot-attribute-name: Private generic functions
symbol->keyword: Private ordinary functions

U
undefined-p: Private ordinary functions
undefinedp: Public ordinary functions

V
validate-superclass: Public standalone methods

W
with-described-object: Public macros
with-description-attributes: Public macros

Jump to:   (   =  
A   C   D   E   F   G   M   P   S   U   V   W  

Next: , Previous: , Up: Indexes   [Contents][Index]

A.3 Variables

Jump to:   %   +   =   {  
A   D   P   S  
Index Entry  Section

%
%undefined%: Private special variables

+
+undefined+: Private symbol macros

=
=>: Public special variables
=>boolean: Public special variables
=>email: Public special variables
=>integer: Public special variables
=>keyword: Public special variables
=>multiple-option: Public special variables
=>option: Private special variables
=>password: Public special variables
=>reference: Private special variables
=>relation: Private special variables
=>single-option: Public special variables
=>string: Public special variables
=>symbol: Public special variables
=>to-many-relation: Public special variables
=>to-one-relation: Public special variables
=>valued: Public special variables
=>view: Public special variables

{
{description}: Public special variables

A
attribute: Private classes

D
default-description: Public classes
default-description: Public classes
default-description-name: Public classes
described-p: Private classes

P
parent-descriptions: Public classes

S
Slot, attribute: Private classes
Slot, default-description: Public classes
Slot, default-description: Public classes
Slot, default-description-name: Public classes
Slot, described-p: Private classes
Slot, parent-descriptions: Public classes
Special Variable, %undefined%: Private special variables
Special Variable, =>: Public special variables
Special Variable, =>boolean: Public special variables
Special Variable, =>email: Public special variables
Special Variable, =>integer: Public special variables
Special Variable, =>keyword: Public special variables
Special Variable, =>multiple-option: Public special variables
Special Variable, =>option: Private special variables
Special Variable, =>password: Public special variables
Special Variable, =>reference: Private special variables
Special Variable, =>relation: Private special variables
Special Variable, =>single-option: Public special variables
Special Variable, =>string: Public special variables
Special Variable, =>symbol: Public special variables
Special Variable, =>to-many-relation: Public special variables
Special Variable, =>to-one-relation: Public special variables
Special Variable, =>valued: Public special variables
Special Variable, =>view: Public special variables
Special Variable, {description}: Public special variables
Symbol Macro, +undefined+: Private symbol macros

Jump to:   %   +   =   {  
A   D   P   S  

Previous: , Up: Indexes   [Contents][Index]

A.4 Data types

Jump to:   C   D   F   M   P   S   U  
Index Entry  Section

C
Class, described-object: Public classes
Class, described-object-class: Public classes
Class, described-object-direct-slot-definition: Private classes
Class, described-object-effective-slot-definition: Private classes
Class, described-object-slot-mixin: Private classes

D
described-object: Public classes
described-object-class: Public classes
described-object-direct-slot-definition: Private classes
described-object-effective-slot-definition: Private classes
described-object-slot-mixin: Private classes
descriptions: The descriptions system
descriptions: The descriptions package
descriptions.asd: The descriptions/descriptions․asd file
descriptions.lisp: The descriptions/src/descriptions․lisp file

F
File, descriptions.asd: The descriptions/descriptions․asd file
File, descriptions.lisp: The descriptions/src/descriptions․lisp file
File, mop.lisp: The descriptions/src/mop․lisp file
File, package.lisp: The descriptions/src/package․lisp file

M
Module, src: The descriptions/src module
mop.lisp: The descriptions/src/mop․lisp file

P
Package, descriptions: The descriptions package
package.lisp: The descriptions/src/package․lisp file

S
src: The descriptions/src module
Structure, undefined: Private structures
System, descriptions: The descriptions system

U
undefined: Private structures

Jump to:   C   D   F   M   P   S   U