Class Persistent-Association-End-Direct-Slot-Definition

Part of:

package cl-perec, class persistent-association-end-slot-definition, class persistent-direct-slot-definition

Direct Superclass

persistent-association-end-slot-definition
persistent-direct-slot-definitionClass for persistent direct slot definitions.

Slot

always-checked-type
When type-check is :always then this type will be checked whenever a new value is set during the transaction.
Initform:(compute-as* nil (compute-always-checked-type -self-)), Initargs::always-checked-type; Accessors:always-checked-type-of; Type:list.
associated-classInitform:(compute-as* nil (awhen (normalized-type-for (slot-definition-type -self-)) (if (set-type-p it) (find-class (set-type-class-for it)) (find-class it)))), Initargs::associated-class; Accessors:associated-class-of; Type:persistent-class.
associationInitargs::association; Accessors:association-of.
association-end-queryInitform:(compute-as* nil (compute-association-end-query -self-)), Initargs::association-end-query; Accessors:association-end-query-of.
cache
All prefetched slots are cached slots but the opposite may not be true. When a cached slot is loaded it's value will be stored in the CLOS instance for fast subsequent read operations. Also whenever a cached slot is set the value will be remembered. The default cached slot semantics can be overriden on a per direct slot basis.
Initargs::cache; Accessors:cache-p; Type:boolean.
cardinality-kind
Valid values are :1, :n according to min a max cardinality.
Initform:(compute-as* nil (if (and (slot-boundp -self- 'max-cardinality) (eq (max-cardinality-of -self-) 1)) 1 n)), Initargs::cardinality-kind; Accessors:cardinality-kind-of; Type:symbol.
index
True means the slot value will be indexed in the underlying RDBMS.
Initargs::index; Accessors:index-p; Type:boolean.
initargs
Initargs::initargs; Accessors:slot-definition-initargs.
initfunction
Initargs::initfunction; Accessors:slot-definition-initfunction.
max-cardinality
The maximum number of instances present in an association for this end. Unbound means the maximum number is not defined.
Initargs::max-cardinality; Accessors:max-cardinality-of; Type:integer.
min-cardinality
The minimum number of instances present in an association for this end.
Initargs::min-cardinality; Accessors:min-cardinality-of; Type:integer.
name
Initargs::name; Accessors:slot-definition-name.
other-association-endInitform:(compute-as* nil (bind ((class (associated-class-of (first (direct-slots-of -self-))))) (ensure-finalized class) (other-effective-association-end-for class -self-))), Initargs::other-association-end; Accessors:other-association-end-of; Type:persistent-association-end-direct-slot-definition.
prefetch
Prefetched slots are loaded from and stored into the database at once. A prefetched slot must be in a table which can be accessed using a where clause matching to the id of the instance thus it must be in a data table. The default prefetched slot semantics can be overriden on a per direct slot basis.
Initargs::prefetch; Accessors:prefetch-p; Type:boolean.
primary-association-end
True iff this end is the primary association end of its association.
Initform:(compute-as* nil (eq (slot-definition-name -self-) (slot-definition-name (primary-association-end-of (association-of -self-))))), Initargs::primary-association-end; Accessors:primary-association-end-p; Type:boolean.
secondary-association-end
True iff this end is the secondary association end of its association.
Initform:(compute-as* nil (eq (slot-definition-name -self-) (slot-definition-name (secondary-association-end-of (association-of -self-))))), Initargs::secondary-association-end; Accessors:secondary-association-end-p; Type:boolean.
type-check
On commit type check means that during the transaction the slot may have null and/or unbound value and the type check will be done when the transaction commits.
Initargs::type-check; Accessors:type-check-of; Type:(member always on-commit).
unique
True means the slot value will be enforced to be unique among instances in the underlying RDBMS.
Initargs::unique; Accessors:unique-p; Type:boolean.

Direct Method

compute-persistent-effective-slot-definition-option

Other Method

compute-always-checked-type
sql-column-reference-for
sql-column-references-for