The descriptions Reference Manual

Table of Contents

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

The descriptions Reference Manual

This is the descriptions Reference Manual, generated automatically by Declt version 2.3 "Robert April" on Tue Feb 20 08:34:14 2018 GMT+0.


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

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


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

2 Systems

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


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

2.1 descriptions

Author

Mariano Montone

License

MIT

Description

A domain model meta level description library

Dependencies
Source

descriptions.asd (file)

Component

src (module)


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

3 Modules

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


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

3.1 descriptions/src

Parent

descriptions (system)

Location

src/

Components

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

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 files   [Contents][Index]

4.1.1 descriptions.asd

Location

descriptions.asd

Systems

descriptions (system)


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

4.1.2 descriptions/src/package.lisp

Parent

src (module)

Location

src/package.lisp

Packages

descriptions


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

4.1.3 descriptions/src/descriptions.lisp

Dependency

package.lisp (file)

Parent

src (module)

Location

src/descriptions.lisp

Exported Definitions
Internal Definitions

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

4.1.4 descriptions/src/mop.lisp

Dependency

descriptions.lisp (file)

Parent

src (module)

Location

src/mop.lisp

Exported Definitions
Internal Definitions

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

5 Packages

Packages are listed by definition order.


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

5.1 descriptions

Source

package.lisp (file)

Nicknames
Use List
Exported Definitions
Internal Definitions

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

6 Definitions

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


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

6.1 Exported definitions


Next: , Previous: , Up: Exported definitions   [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


Next: , Previous: , Up: Exported definitions   [Contents][Index]

6.1.2 Macros

Macro: => TYPE-SPEC &rest PROPERTY-VALUES

Attribute builder macro

Package

descriptions

Source

descriptions.lisp (file)

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 (file)

Macro: define-described-class NAME DIRECT-SUPERCLASSES DIRECT-SLOTS &rest OPTIONS
Package

descriptions

Source

mop.lisp (file)

Macro: define-description NAME PARENTS ATTRIBUTES &rest OPTIONS

Define a new description

Package

descriptions

Source

descriptions.lisp (file)

Macro: with-described-object ATTRIBUTES (OBJECT &optional DESCRIPTION) &body BODY
Package

descriptions

Source

descriptions.lisp (file)

Macro: with-description-attributes ATTRIBUTES DESCRIPTION &body BODY

Run body with description attributes bound

Package

descriptions

Source

descriptions.lisp (file)


Next: , Previous: , Up: Exported definitions   [Contents][Index]

6.1.3 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 (file)

Function: =>email &rest PROPERTY-VALUES

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

Package

descriptions

Source

descriptions.lisp (file)

Function: =>integer &rest PROPERTY-VALUES

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

Package

descriptions

Source

descriptions.lisp (file)

Function: =>keyword &rest PROPERTY-VALUES

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

Package

descriptions

Source

descriptions.lisp (file)

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 (file)

Function: =>password &rest PROPERTY-VALUES

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

Package

descriptions

Source

descriptions.lisp (file)

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 (file)

Function: =>string &rest PROPERTY-VALUES

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

Package

descriptions

Source

descriptions.lisp (file)

Function: =>symbol &rest PROPERTY-VALUES

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

Package

descriptions

Source

descriptions.lisp (file)

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 (file)

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 (file)

Function: =>valued &rest PROPERTY-VALUES

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

Package

descriptions

Source

descriptions.lisp (file)

Function: =>view &rest PROPERTY-VALUES

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

Package

descriptions

Source

descriptions.lisp (file)

Function: add-attribute DESCRIPTION ATTRIBUTE &key READER WRITER ACCESSOR
Package

descriptions

Source

descriptions.lisp (file)

Function: attribute-documentation ATTRIBUTE
Package

descriptions

Source

descriptions.lisp (file)

Function: attribute-formatter &rest ARGS
Function: (setf attribute-formatter) &rest ARGS
Package

descriptions

Source

/home/quickbuilder/quicklisp/dists/quicklisp/software/sheeple-20150302-git/src/messages.lisp

Function: attribute-label &rest ARGS
Function: (setf attribute-label) &rest ARGS
Package

descriptions

Source

/home/quickbuilder/quicklisp/dists/quicklisp/software/sheeple-20150302-git/src/messages.lisp

Function: attribute-name &rest ARGS
Function: (setf attribute-name) &rest ARGS
Package

descriptions

Source

/home/quickbuilder/quicklisp/dists/quicklisp/software/sheeple-20150302-git/src/messages.lisp

Function: attribute-options &rest ARGS
Function: (setf attribute-options) &rest ARGS
Package

descriptions

Source

/home/quickbuilder/quicklisp/dists/quicklisp/software/sheeple-20150302-git/src/messages.lisp

Function: attribute-properties ATTRIBUTE
Package

descriptions

Source

descriptions.lisp (file)

Function: attribute-reader &rest ARGS
Function: (setf attribute-reader) &rest ARGS
Package

descriptions

Source

/home/quickbuilder/quicklisp/dists/quicklisp/software/sheeple-20150302-git/src/messages.lisp

Function: attribute-reference &rest ARGS
Function: (setf attribute-reference) &rest ARGS
Package

descriptions

Source

/home/quickbuilder/quicklisp/dists/quicklisp/software/sheeple-20150302-git/src/messages.lisp

Function: attribute-serialize &rest ARGS
Function: (setf attribute-serialize) &rest ARGS
Package

descriptions

Source

/home/quickbuilder/quicklisp/dists/quicklisp/software/sheeple-20150302-git/src/messages.lisp

Function: attribute-sorted &rest ARGS
Function: (setf attribute-sorted) &rest ARGS
Package

descriptions

Source

/home/quickbuilder/quicklisp/dists/quicklisp/software/sheeple-20150302-git/src/messages.lisp

Function: attribute-sorter &rest ARGS
Function: (setf attribute-sorter) &rest ARGS
Package

descriptions

Source

/home/quickbuilder/quicklisp/dists/quicklisp/software/sheeple-20150302-git/src/messages.lisp

Function: attribute-type &rest ARGS
Function: (setf attribute-type) &rest ARGS
Package

descriptions

Source

/home/quickbuilder/quicklisp/dists/quicklisp/software/sheeple-20150302-git/src/messages.lisp

Function: attribute-undefinedp &rest ARGS
Package

descriptions

Source

/home/quickbuilder/quicklisp/dists/quicklisp/software/sheeple-20150302-git/src/messages.lisp

Function: attribute-value &rest ARGS
Function: (setf attribute-value) &rest ARGS
Package

descriptions

Source

/home/quickbuilder/quicklisp/dists/quicklisp/software/sheeple-20150302-git/src/messages.lisp

Function: attribute-view &rest ARGS
Function: (setf attribute-view) &rest ARGS
Package

descriptions

Source

/home/quickbuilder/quicklisp/dists/quicklisp/software/sheeple-20150302-git/src/messages.lisp

Function: attribute-writer &rest ARGS
Function: (setf attribute-writer) &rest ARGS
Package

descriptions

Source

/home/quickbuilder/quicklisp/dists/quicklisp/software/sheeple-20150302-git/src/messages.lisp

Function: description-attributes DESCRIPTION

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

Package

descriptions

Source

descriptions.lisp (file)

Function: description-name &rest ARGS
Function: (setf description-name) &rest ARGS
Package

descriptions

Source

/home/quickbuilder/quicklisp/dists/quicklisp/software/sheeple-20150302-git/src/messages.lisp

Function: display-object OBJECT &optional DESCRIPTION STREAM
Package

descriptions

Source

descriptions.lisp (file)

Function: get-attribute DESCRIPTION ATTRIBUTE-NAME
Package

descriptions

Source

descriptions.lisp (file)

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 (file)

Function: make-description &key PARENTS ATTRIBUTES
Package

descriptions

Source

descriptions.lisp (file)

Function: undefinedp VALUE
Package

descriptions

Source

descriptions.lisp (file)


Next: , Previous: , Up: Exported definitions   [Contents][Index]

6.1.4 Generic functions

Generic Function: default-description OBJECT
Generic Function: (setf default-description) NEW-VALUE OBJECT
Package

descriptions

Methods
Method: default-description (DESCRIBED-OBJECT-CLASS described-object-class)

automatically generated reader method

Source

mop.lisp (file)

Method: (setf default-description) NEW-VALUE (DESCRIBED-OBJECT-CLASS described-object-class)

automatically generated writer method

Source

mop.lisp (file)

Method: default-description (DESCRIBED-OBJECT described-object)

automatically generated reader method

Source

mop.lisp (file)

Method: (setf default-description) NEW-VALUE (DESCRIBED-OBJECT described-object)

automatically generated writer method

Source

mop.lisp (file)


Previous: , Up: Exported definitions   [Contents][Index]

6.1.5 Classes

Class: described-object ()
Package

descriptions

Source

mop.lisp (file)

Direct superclasses

standard-object (class)

Direct methods
Direct slots
Slot: default-description
Initargs

:default-description

Readers

default-description (generic function)

Writers

(setf default-description) (generic function)

Slot: parent-descriptions
Initargs

:parent-descriptions

Initform

(list descriptions:{description})

Readers

parent-descriptions (generic function)

Writers

(setf parent-descriptions) (generic function)

Slot: default-description-name
Initargs

:default-description-name

Readers

default-description-name (generic function)

Writers

(setf default-description-name) (generic function)

Class: described-object-class ()
Package

descriptions

Source

mop.lisp (file)

Direct superclasses

standard-class (class)

Direct methods
  • shared-initialize (method)
  • compute-effective-slot-definition (method)
  • effective-slot-definition-class (method)
  • direct-slot-definition-class (method)
  • validate-superclass (method)
  • default-description (method)
  • default-description (method)
Direct slots
Slot: default-description
Initargs

:default-description

Readers

default-description (generic function)

Writers

(setf default-description) (generic function)


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

6.2 Internal definitions


Next: , Previous: , Up: Internal definitions   [Contents][Index]

6.2.1 Special variables

Special Variable: %undefined%
Package

descriptions

Source

descriptions.lisp (file)

Special Variable: =>option
Package

descriptions

Special Variable: =>reference
Package

descriptions

Special Variable: =>relation
Package

descriptions


Next: , Previous: , Up: Internal definitions   [Contents][Index]

6.2.2 Symbol macros

Symbol Macro: +undefined+
Package

descriptions

Source

descriptions.lisp (file)

Expansion

descriptions::%undefined%


Next: , Previous: , Up: Internal definitions   [Contents][Index]

6.2.3 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 (file)

Function: =>reference &rest PROPERTY-VALUES

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

Package

descriptions

Source

descriptions.lisp (file)

Function: =>relation &rest PROPERTY-VALUES

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

Package

descriptions

Source

descriptions.lisp (file)

Function: copy-undefined INSTANCE
Package

descriptions

Source

descriptions.lisp (file)

Function: make-undefined &key
Package

descriptions

Source

descriptions.lisp (file)

Function: plist-keys PLIST
Package

descriptions

Source

mop.lisp (file)

Function: plist-values PLIST
Package

descriptions

Source

mop.lisp (file)

Function: symbol->keyword SYMBOL
Package

descriptions

Source

descriptions.lisp (file)

Function: undefined-p OBJECT
Package

descriptions

Source

descriptions.lisp (file)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

6.2.4 Generic functions

Generic Function: default-description-name OBJECT
Generic Function: (setf default-description-name) NEW-VALUE OBJECT
Package

descriptions

Methods
Method: default-description-name (DESCRIBED-OBJECT described-object)

automatically generated reader method

Source

mop.lisp (file)

Method: (setf default-description-name) NEW-VALUE (DESCRIBED-OBJECT described-object)

automatically generated writer method

Source

mop.lisp (file)

Generic Function: described-p OBJECT
Generic Function: (setf described-p) NEW-VALUE OBJECT
Package

descriptions

Methods
Method: described-p SLOT
Source

mop.lisp (file)

Method: described-p (DESCRIBED-OBJECT-SLOT-MIXIN described-object-slot-mixin)

automatically generated reader method

Source

mop.lisp (file)

Method: (setf described-p) NEW-VALUE (DESCRIBED-OBJECT-SLOT-MIXIN described-object-slot-mixin)

automatically generated writer method

Source

mop.lisp (file)

Generic Function: described-slot-p SLOT
Package

descriptions

Source

mop.lisp (file)

Methods
Method: described-slot-p SLOT
Method: described-slot-p (SLOT described-object-slot-mixin)
Generic Function: parent-descriptions OBJECT
Generic Function: (setf parent-descriptions) NEW-VALUE OBJECT
Package

descriptions

Methods
Method: parent-descriptions (DESCRIBED-OBJECT described-object)

automatically generated reader method

Source

mop.lisp (file)

Method: (setf parent-descriptions) NEW-VALUE (DESCRIBED-OBJECT described-object)

automatically generated writer method

Source

mop.lisp (file)

Generic Function: slot-attribute OBJECT
Generic Function: (setf slot-attribute) NEW-VALUE OBJECT
Package

descriptions

Methods
Method: slot-attribute SLOT
Source

mop.lisp (file)

Method: slot-attribute (DESCRIBED-OBJECT-SLOT-MIXIN described-object-slot-mixin)

automatically generated reader method

Source

mop.lisp (file)

Method: (setf slot-attribute) NEW-VALUE (DESCRIBED-OBJECT-SLOT-MIXIN described-object-slot-mixin)

automatically generated writer method

Source

mop.lisp (file)

Generic Function: slot-attribute-name SLOT
Package

descriptions

Methods
Method: slot-attribute-name SLOT
Source

mop.lisp (file)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

6.2.5 Structures

Structure: undefined ()
Package

descriptions

Source

descriptions.lisp (file)

Direct superclasses

structure-object (structure)


Previous: , Up: Internal definitions   [Contents][Index]

6.2.6 Classes

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

descriptions

Source

mop.lisp (file)

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

descriptions

Source

mop.lisp (file)

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

descriptions

Source

mop.lisp (file)

Direct superclasses

standard-object (class)

Direct subclasses
Direct methods
Direct slots
Slot: attribute
Initargs

:attribute

Readers

slot-attribute (generic function)

Writers

(setf slot-attribute) (generic function)

Slot: described-p
Initargs

:described-p

Initform

t

Readers

described-p (generic function)

Writers

(setf described-p) (generic function)


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

Appendix A Indexes


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

A.1 Concepts

Jump to:   D   F   L   M  
Index Entry  Section

D
descriptions.asd: The descriptions<dot>asd file
descriptions/src: The descriptions/src module
descriptions/src/descriptions.lisp: The descriptions/src/descriptions<dot>lisp file
descriptions/src/mop.lisp: The descriptions/src/mop<dot>lisp file
descriptions/src/package.lisp: The descriptions/src/package<dot>lisp file

F
File, Lisp, descriptions.asd: The descriptions<dot>asd file
File, Lisp, descriptions/src/descriptions.lisp: The descriptions/src/descriptions<dot>lisp file
File, Lisp, descriptions/src/mop.lisp: The descriptions/src/mop<dot>lisp file
File, Lisp, descriptions/src/package.lisp: The descriptions/src/package<dot>lisp file

L
Lisp File, descriptions.asd: The descriptions<dot>asd file
Lisp File, descriptions/src/descriptions.lisp: The descriptions/src/descriptions<dot>lisp file
Lisp File, descriptions/src/mop.lisp: The descriptions/src/mop<dot>lisp file
Lisp File, descriptions/src/package.lisp: The descriptions/src/package<dot>lisp file

M
Module, descriptions/src: The descriptions/src module

Jump to:   D   F   L   M  

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

A.2 Functions

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

(
(setf attribute-formatter): Exported functions
(setf attribute-label): Exported functions
(setf attribute-name): Exported functions
(setf attribute-options): Exported functions
(setf attribute-reader): Exported functions
(setf attribute-reference): Exported functions
(setf attribute-serialize): Exported functions
(setf attribute-sorted): Exported functions
(setf attribute-sorter): Exported functions
(setf attribute-type): Exported functions
(setf attribute-value): Exported functions
(setf attribute-view): Exported functions
(setf attribute-writer): Exported functions
(setf default-description): Exported generic functions
(setf default-description): Exported generic functions
(setf default-description): Exported generic functions
(setf default-description-name): Internal generic functions
(setf default-description-name): Internal generic functions
(setf described-p): Internal generic functions
(setf described-p): Internal generic functions
(setf description-name): Exported functions
(setf parent-descriptions): Internal generic functions
(setf parent-descriptions): Internal generic functions
(setf slot-attribute): Internal generic functions
(setf slot-attribute): Internal generic functions

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

A
add-attribute: Exported functions
attribute-documentation: Exported functions
attribute-formatter: Exported functions
attribute-label: Exported functions
attribute-name: Exported functions
attribute-options: Exported functions
attribute-properties: Exported functions
attribute-reader: Exported functions
attribute-reference: Exported functions
attribute-serialize: Exported functions
attribute-sorted: Exported functions
attribute-sorter: Exported functions
attribute-type: Exported functions
attribute-undefinedp: Exported functions
attribute-value: Exported functions
attribute-view: Exported functions
attribute-writer: Exported functions

C
copy-undefined: Internal functions

D
default-description: Exported generic functions
default-description: Exported generic functions
default-description: Exported generic functions
default-description-name: Internal generic functions
default-description-name: Internal generic functions
define-attribute: Exported macros
define-described-class: Exported macros
define-description: Exported macros
described-p: Internal generic functions
described-p: Internal generic functions
described-p: Internal generic functions
described-slot-p: Internal generic functions
described-slot-p: Internal generic functions
described-slot-p: Internal generic functions
description-attributes: Exported functions
description-name: Exported functions
display-object: Exported functions

F
Function, (setf attribute-formatter): Exported functions
Function, (setf attribute-label): Exported functions
Function, (setf attribute-name): Exported functions
Function, (setf attribute-options): Exported functions
Function, (setf attribute-reader): Exported functions
Function, (setf attribute-reference): Exported functions
Function, (setf attribute-serialize): Exported functions
Function, (setf attribute-sorted): Exported functions
Function, (setf attribute-sorter): Exported functions
Function, (setf attribute-type): Exported functions
Function, (setf attribute-value): Exported functions
Function, (setf attribute-view): Exported functions
Function, (setf attribute-writer): Exported functions
Function, (setf description-name): Exported functions
Function, =>boolean: Exported functions
Function, =>email: Exported functions
Function, =>integer: Exported functions
Function, =>keyword: Exported functions
Function, =>multiple-option: Exported functions
Function, =>option: Internal functions
Function, =>password: Exported functions
Function, =>reference: Internal functions
Function, =>relation: Internal functions
Function, =>single-option: Exported functions
Function, =>string: Exported functions
Function, =>symbol: Exported functions
Function, =>to-many-relation: Exported functions
Function, =>to-one-relation: Exported functions
Function, =>valued: Exported functions
Function, =>view: Exported functions
Function, add-attribute: Exported functions
Function, attribute-documentation: Exported functions
Function, attribute-formatter: Exported functions
Function, attribute-label: Exported functions
Function, attribute-name: Exported functions
Function, attribute-options: Exported functions
Function, attribute-properties: Exported functions
Function, attribute-reader: Exported functions
Function, attribute-reference: Exported functions
Function, attribute-serialize: Exported functions
Function, attribute-sorted: Exported functions
Function, attribute-sorter: Exported functions
Function, attribute-type: Exported functions
Function, attribute-undefinedp: Exported functions
Function, attribute-value: Exported functions
Function, attribute-view: Exported functions
Function, attribute-writer: Exported functions
Function, copy-undefined: Internal functions
Function, description-attributes: Exported functions
Function, description-name: Exported functions
Function, display-object: Exported functions
Function, get-attribute: Exported functions
Function, make-attribute: Exported functions
Function, make-description: Exported functions
Function, make-undefined: Internal functions
Function, plist-keys: Internal functions
Function, plist-values: Internal functions
Function, symbol->keyword: Internal functions
Function, undefined-p: Internal functions
Function, undefinedp: Exported functions

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

M
Macro, =>: Exported macros
Macro, define-attribute: Exported macros
Macro, define-described-class: Exported macros
Macro, define-description: Exported macros
Macro, with-described-object: Exported macros
Macro, with-description-attributes: Exported macros
make-attribute: Exported functions
make-description: Exported functions
make-undefined: Internal functions
Method, (setf default-description): Exported generic functions
Method, (setf default-description): Exported generic functions
Method, (setf default-description-name): Internal generic functions
Method, (setf described-p): Internal generic functions
Method, (setf parent-descriptions): Internal generic functions
Method, (setf slot-attribute): Internal generic functions
Method, default-description: Exported generic functions
Method, default-description: Exported generic functions
Method, default-description-name: Internal generic functions
Method, described-p: Internal generic functions
Method, described-p: Internal generic functions
Method, described-slot-p: Internal generic functions
Method, described-slot-p: Internal generic functions
Method, parent-descriptions: Internal generic functions
Method, slot-attribute: Internal generic functions
Method, slot-attribute: Internal generic functions
Method, slot-attribute-name: Internal generic functions

P
parent-descriptions: Internal generic functions
parent-descriptions: Internal generic functions
plist-keys: Internal functions
plist-values: Internal functions

S
slot-attribute: Internal generic functions
slot-attribute: Internal generic functions
slot-attribute: Internal generic functions
slot-attribute-name: Internal generic functions
slot-attribute-name: Internal generic functions
symbol->keyword: Internal functions

U
undefined-p: Internal functions
undefinedp: Exported functions

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

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

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

A.3 Variables

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

%
%undefined%: Internal special variables

+
+undefined+: Internal symbol macros

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

{
{description}: Exported special variables

A
attribute: Internal classes

D
default-description: Exported classes
default-description: Exported classes
default-description-name: Exported classes
described-p: Internal classes

P
parent-descriptions: Exported classes

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

Jump to:   %   +   =   {  
A   D   P   S  

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

A.4 Data types

Jump to:   C   D   P   S   U  
Index Entry  Section

C
Class, described-object: Exported classes
Class, described-object-class: Exported classes
Class, described-object-direct-slot-definition: Internal classes
Class, described-object-effective-slot-definition: Internal classes
Class, described-object-slot-mixin: Internal classes

D
described-object: Exported classes
described-object-class: Exported classes
described-object-direct-slot-definition: Internal classes
described-object-effective-slot-definition: Internal classes
described-object-slot-mixin: Internal classes
descriptions: The descriptions system
descriptions: The descriptions package

P
Package, descriptions: The descriptions package

S
Structure, undefined: Internal structures
System, descriptions: The descriptions system

U
undefined: Internal structures

Jump to:   C   D   P   S   U