Mercurial > hg > amuse
diff base/conditions.lisp @ 24:8d2b1662f658
base/*.lisp: move files in amuse-base to subdirectory.
darcs-hash:20061215161617-aa3d6-1b63bd555b02ec02aa2db12d335e8b726e2108cd.gz
author | m.pearce <m.pearce@gold.ac.uk> |
---|---|
date | Fri, 15 Dec 2006 16:16:17 +0000 |
parents | |
children | b16472d7823f |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/base/conditions.lisp Fri Dec 15 16:16:17 2006 +0000 @@ -0,0 +1,34 @@ +(cl:in-package #:amuse) + +;; Some conditions we might want to be able to signal + +(define-condition undefined-action (condition) + ;; This condition would apply to an attempt to perform a meaningless + ;; operation on an object. This may, initially, include things that + ;; are a pain to implement but should really be used when it's + ;; genuinely unclear what an operation means in the given + ;; context. In such cases, a condition handler might be the best + ;; approach anyway. + ((operation :initarg :operation + :reader undefined-action-operation) + (datatype :initarg :datatype + :reader undefined-action-datatype)) + (:report (lambda (condition stream) + (format stream "The consequence of performing ~A on and object of type ~A is undefined" + (undefined-action-operation condition) + (undefined-action-datatype condition))))) + +(define-condition insufficient-information (condition) + ;; It should be possible to construct genuinely minimal musical + ;; structures. When the information in these is insufficient to + ;; answer a query, this condition should be raised. + ((operation :initarg :operation + :reader insufficient-information-operation) + (datatype :initarg :datatype + :reader insufficient-information-datatype)) + (:report (lambda (condition stream) + (format stream "The ~A object does not contain enough information to perform ~A" + (insufficient-information-datatype condition) + (insufficient-information-operation condition))))) + +