X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=examples%2Fperson.lisp;h=5a91b6a674d832242fc98854ba6040c76da0801d;hb=0817a8721cbefca2205dcde535ff6b164033abef;hp=63a174b4f9eec111ab77d61c5a3fc3c54a166751;hpb=26c877202b0bdc969a8fcdd1c77515a6ef797ad6;p=hyperobject.git diff --git a/examples/person.lisp b/examples/person.lisp index 63a174b..5a91b6a 100644 --- a/examples/person.lisp +++ b/examples/person.lisp @@ -9,7 +9,7 @@ ;;;; ;;;; A simple example file for hyperobjects ;;;; -;;;; $Id: person.lisp,v 1.3 2002/12/13 22:15:30 kevin Exp $ +;;;; $Id$ ;;;; ;;;; This file is Copyright (c) 2000-2002 by Kevin M. Rosenberg ;;;; @@ -18,25 +18,27 @@ (in-package :hyperobject-user) (defclass person (hyperobject) - ((first-name :value-type (varchar 20) :initarg :first-name :reader first-name + ((first-name :value-type (varchar 20) :initarg :first-name :accessor first-name :value-constraint stringp :null-allowed nil) - (last-name :value-type (varchar 30) :initarg :last-name :reader last-name + (last-name :value-type (varchar 30) :initarg :last-name :accessor last-name :value-constraint stringp :hyperlink find-person-by-last-name :null-allowed nil) (full-name :value-type string :stored nil) - (dob :value-type integer :initarg :dob :reader dob :print-formatter format-date + (dob :value-type integer :initarg :dob :accessor dob :print-formatter format-date :value-constraint integerp :input-filter convert-to-date) - (resume :value-type string :initarg :resume :reader resume + (resume :value-type string :initarg :resume :accessor resume :value-constraint stringp) - (addresses :value-type (list-of subobject) :initarg :addresses :reader addresses)) +;; (addresses :value-type (list-of subobject) :initarg :addresses :accessor addresses)) + (addresses :subobject t :initarg :addresses :accessor addresses)) (:metaclass hyperobject-class) (:default-initargs :first-name "" :last-name "" :dob 0 :resume nil) (:default-print-slots first-name last-name dob resume) (:user-name "Person") + (:user-name-plural "Persons") (:description "A Person") (:direct-rules - ((:rule-1 (:depends-on '(last-name first-name)) - (setf full-name (concatentate 'string first-name " " last-name)))))) + (:rule-1 (:dependants (last-name first-name) :volatile full-name) + (setf full-name (concatenate 'string first-name " " last-name))))) (defun format-date (ut) (when (typep ut 'integer) @@ -51,24 +53,25 @@ hr min sec)))) (defclass address (hyperobject) - ((title :value-type (varchar 20) :initarg :title :reader title + ((title :value-type (varchar 20) :initarg :title :accessor title :value-constraint stringp) - (street :value-type (varchar 30) :initarg :street :reader street + (street :value-type (varchar 30) :initarg :street :accessor street :value-constraint stringp) - (phones :value-type (list-oj subobject) :initarg :phones :reader phones) + (phones :subobject t :initarg :phones :accessor phones)) (:metaclass hyperobject-class) (:default-initargs :title nil :street nil) - (:user-name "Address") + (:user-name "Address" "Addresses") (:default-print-slots title street) (:description "An address")) (defclass phone (hyperobject) - ((title :value-type (varchar 20) :initarg :title :reader title + ((title :value-type (varchar 20) :initarg :title :accessor title :value-constraint stringp) - (phone-number :value-type (varchar 16) :initarg :phone-number :reader phone-number + (phone-number :value-type (varchar 16) :initarg :phone-number :accessor phone-number :value-constraint stringp)) (:metaclass hyperobject-class) (:user-name "Phone Number") + (:user-name-plural "Phone Numbers") (:default-initargs :title nil :phone-number nil) (:default-print-slots title phone-number) (:description "A phone number"))