X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=mop-example.lisp;h=278d4a7813f0fd673f3b81ff33a30dcdc701d5c8;hb=c3f7ae77695d2e8ab2378890c10eaf09b0021dfc;hp=ce275d52f4a6e6dc5e666d46a48d7528313f7f24;hpb=63b552ae64bb098d42c4f23c2850a03ff707f12a;p=hyperobject.git diff --git a/mop-example.lisp b/mop-example.lisp index ce275d5..278d4a7 100644 --- a/mop-example.lisp +++ b/mop-example.lisp @@ -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 ;;;; @@ -19,19 +19,14 @@ (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) @@ -46,21 +41,16 @@ 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"))