r3453: *** empty log message ***
[hyperobject.git] / mop-example.lisp
index ce275d52f4a6e6dc5e666d46a48d7528313f7f24..278d4a7813f0fd673f3b81ff33a30dcdc701d5c8 100644 (file)
@@ -9,7 +9,7 @@
 ;;;;
 ;;;; A simple example file for hyperobjects
 ;;;;
-;;;; $Id: mop-example.lisp,v 1.1 2002/11/22 10:49:24 kevin Exp $
+;;;; $Id: mop-example.lisp,v 1.2 2002/11/22 14:58:16 kevin Exp $
 ;;;;
 ;;;; This file is Copyright (c) 2000-2002 by Kevin M. Rosenberg
 ;;;;
 
 
 (defclass person (hyperobject)
-  ((first-name :type string :initarg :first-name :reader first-name)
-   (last-name :type string :initarg :last-name :reader last-name)
-   (dob :type integer :initarg :dob :reader dob)
-   (resume :initarg :resume :reader resume)
-   (addresses :initarg :addresses :reader addresses))
+  ((first-name :type string :initarg :first-name :reader first-name :initform nil)
+   (last-name :type string :initarg :last-name :reader last-name :initform nil
+             :reference find-person-by-last-name)
+   (dob :type integer :initarg :dob :reader dob :initform 0 :format-func format-date)
+   (resume :type cdata :initarg :resume :reader resume)
+   (addresses :initarg :addresses :reader addresses :initform nil :subobject t))
   (:metaclass hyperobject-class)
-  (:default-initargs 
-   :first-name nil :last-name nil :resume nil :dob 0 :addresses nil)
-  (:title "Person")
-  (:subobjects-lists (addresses address))
-  (:fields (first-name  :string) (last-name :string) (dob :integer format-date)
-          (resume :cdata))
-  (:ref-fields (last-name find-person-by-last-name)))
+  (:title "Person"))
 
 (defun format-date (ut)
   (when (typep ut 'integer)
                hr min sec))))
 
 (defclass address (hyperobject)
-  ((title :type string :initarg :title :reader title)
-   (street :type string :initarg :street :reader street)
-   (phones :initarg :phones :reader phones))
+  ((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))
   (:metaclass hyperobject-class)
-  (:default-initargs :title nil :street nil :phones nil)
-  (:title "Address")
-  (:subobjects-lists (phones phone))
-  (:fields (title :string) (street  :string)))
-
+  (:title "Address"))
 
 (defclass phone (hyperobject)
   ((phone-number :type string :initarg :phone-number :reader phone-number))
   (:metaclass hyperobject-class)
-  (:title "Phone Number")
-  (:fields (phone-number :string)))
+  (:title "Phone Number"))
 
 
 (defparameter home-phone-1 (make-instance 'phone :phone-number "367-9812"))