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)))