X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;ds=sidebyside;f=example.lisp;h=e16bba54835954ff78f905ec240ebbe67a40410e;hb=310528f335c81365343ca5503e4db4be062080a2;hp=9398cc6f171247f22d95a34f0d8eaba58315808e;hpb=7ffe31bff2d7daa3df28ed34fe439f7e541ffbb5;p=hyperobject.git diff --git a/example.lisp b/example.lisp index 9398cc6..e16bba5 100644 --- a/example.lisp +++ b/example.lisp @@ -9,24 +9,27 @@ ;;;; ;;;; A simple example file for hyperobjects ;;;; -;;;; $Id: example.lisp,v 1.2 2002/11/22 15:45:06 kevin Exp $ +;;;; $Id: example.lisp,v 1.6 2002/11/24 17:47:50 kevin Exp $ ;;;; ;;;; This file is Copyright (c) 2000-2002 by Kevin M. Rosenberg ;;;; ;;;; ************************************************************************* -(in-package :hyperobject-mop-user) +(in-package :hyperobject-user) (defclass person (hyperobject) - ((first-name :type string :initarg :first-name :reader first-name :initform nil) - (last-name :type string :initarg :last-name :reader last-name :initform nil + ((first-name :type string :initarg :first-name :reader first-name) + (last-name :type string :initarg :last-name :reader last-name :reference find-person-by-last-name) - (dob :type integer :initarg :dob :reader dob :initform 0 :format-func format-date) + (dob :type integer :initarg :dob :reader dob :print-formatter format-date) (resume :type cdata :initarg :resume :reader resume) - (addresses :initarg :addresses :reader addresses :initform nil :subobject t)) + (addresses :initarg :addresses :reader addresses :subobject t)) (:metaclass hyperobject-class) - (:title "Person")) + (:default-initargs :first-name nil :last-name nil :dob 0 :resume nil) + (:print-slots first-name last-name dob resume) + (:title "Person") + (:description "A Person")) (defun format-date (ut) (when (typep ut 'integer) @@ -41,24 +44,31 @@ hr min sec)))) (defclass address (hyperobject) - ((title :type string :initarg :title :reader title :initform nil) - (street :type string :initarg :street :reader street :initform nil) - (phones :initarg :phones :reader phones :initform nil :subobject t)) + ((title :type string :initarg :title :reader title) + (street :type string :initarg :street :reader street) + (phones :initarg :phones :reader phones :subobject t)) (:metaclass hyperobject-class) - (:title "Address")) + (:default-initargs :title nil :street nil) + (:title "Address") + (:print-slots title street) + (:description "An address")) (defclass phone (hyperobject) - ((phone-number :type string :initarg :phone-number :reader phone-number)) + ((title :type string :initarg :title :reader title) + (phone-number :type string :initarg :phone-number :reader phone-number)) (:metaclass hyperobject-class) - (:title "Phone Number")) + (:title "Phone Number") + (:default-initargs :title nil :phone-number nil) + (:print-slots title phone-number) + (:description "A phone number")) -(defparameter home-phone-1 (make-instance 'phone :phone-number "367-9812")) -(defparameter home-phone-2 (make-instance 'phone :phone-number "367-9813")) +(defparameter home-phone-1 (make-instance 'phone :title "Voice" :phone-number "367-9812")) +(defparameter home-phone-2 (make-instance 'phone :title "Fax" :phone-number "367-9813")) -(defparameter office-phone-1 (make-instance 'phone :phone-number "123-0001")) -(defparameter office-phone-2 (make-instance 'phone :phone-number "123-0002")) -(defparameter office-phone-3 (make-instance 'phone :phone-number "123-0005")) +(defparameter office-phone-1 (make-instance 'phone :title "Main line" :phone-number "123-0001")) +(defparameter office-phone-2 (make-instance 'phone :title "Staff line" :phone-number "123-0002")) +(defparameter office-phone-3 (make-instance 'phone :title "Fax" :phone-number "123-0005")) (defparameter home (make-instance 'address :title "Home" :street "321 Shady Lane" :phones (list home-phone-1 home-phone-2)))