Mercurial > hg > amuse
diff implementations/geerdes/methods.lisp @ 288:d1e5bbcc5ea4
Rationalise base and geerdes classes, constructors and methods.
Ignore-this: d9d4d88566a6d110844d91d4c70513cd
Towards a more standardised interface. Some of these changes (generalised
constructors and reader functions) are necessary for amuse-database-admin
functionality and some other CHARM-like things.
darcs-hash:20090716154406-16a00-8a9b4fb1fc1f5ba75af66a1bbd87e1bb68e02493.gz
author | j.forth <j.forth@gold.ac.uk> |
---|---|
date | Thu, 16 Jul 2009 16:44:06 +0100 |
parents | 4a03a1478c02 |
children |
line wrap: on
line diff
--- a/implementations/geerdes/methods.lisp Thu Jul 16 15:58:07 2009 +0100 +++ b/implementations/geerdes/methods.lisp Thu Jul 16 16:44:06 2009 +0100 @@ -1,14 +1,6 @@ (cl:in-package #:amuse-geerdes) -;;; Compositions - -;; identifiers -(defun g-id (cat-id) - "Make a geerdes-identifier based on a catalogue id" - (make-instance 'geerdes-identifier-cat-id :cat-id cat-id)) -(defun g-id-file-id (file-id) - "Make a geerdes-identifier based on a catalogue id" - (make-instance 'geerdes-identifier-file-id :file-id file-id)) +;; Identifiers (defgeneric cat-id (object) (:documentation "Return a database catalogue id for object (for @@ -16,7 +8,7 @@ (defgeneric file-id (object) (:documentation "Return a database file id for object (for Geerdes data, this is a unique integer identifier)")) -(defgeneric (setf cat-id) (value object)) +(defgeneric (setf cat-id) (value object)) ;; FIXME: why? (defgeneric (setf file-id) (value object)) (defmethod cat-id ((object geerdes-composition)) @@ -36,6 +28,18 @@ (defmethod (setf file-id) (value (object geerdes-identifier-file-id)) (setf (slot-value object 'file-id) value)) +;; Identifier accessors for CHARM constituents + +(defmethod composition-id ((o geerdes-composition-identifier)) + "Composition-id is file-id in geerdes." + (file-id o)) + +(defmethod composition-id ((o geerdes-composition)) + (file-id o)) + +(defmethod event-id ((o geerdes-event)) + (event-id (identifier o))) + ;; Specialised constructors (defmethod make-composition-identifier ((package (eql *package*)) @@ -44,7 +48,8 @@ ;; Composition -(defmethod get-composition ((identifier geerdes-identifier)) +(defmethod get-composition ((identifier + geerdes-composition-identifier)) (let* ((composition (get-geerdes-composition identifier))) (%initialise-notes composition) (%initialise-constituents composition)))