Mercurial > hg > amuse
diff implementations/geerdes/methods.lisp @ 217:d8f650e3796e
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
committer: Jamie Forth <j.forth@gold.ac.uk>
author | j.forth <j.forth@gold.ac.uk> |
---|---|
date | Thu, 24 Feb 2011 11:23:18 +0000 |
parents | 619194befdd4 |
children |
line wrap: on
line diff
--- a/implementations/geerdes/methods.lisp Thu Feb 24 11:23:18 2011 +0000 +++ b/implementations/geerdes/methods.lisp Thu Feb 24 11:23:18 2011 +0000 @@ -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)))