r4602: Auto commit for Debian build
authorKevin M. Rosenberg <kevin@rosenberg.net>
Tue, 22 Apr 2003 18:42:58 +0000 (18:42 +0000)
committerKevin M. Rosenberg <kevin@rosenberg.net>
Tue, 22 Apr 2003 18:42:58 +0000 (18:42 +0000)
rules.lisp

index e6c50f917d4a8c3db8d43b93f2a29d1acd4f337a..8a3bac7e830fd8141846cf62e04b50ac213d9ca9 100644 (file)
@@ -7,7 +7,7 @@
 ;;;; Programmer:    Kevin M. Rosenberg
 ;;;; Date Started:  Apr 2000
 ;;;;
-;;;; $Id: rules.lisp,v 1.22 2003/04/22 15:58:07 kevin Exp $
+;;;; $Id: rules.lisp,v 1.23 2003/04/22 18:42:58 kevin Exp $
 ;;;;
 ;;;; This file is Copyright (c) 2000-2002 by Kevin M. Rosenberg
 ;;;;
        (cmsg-c :debug "firing rule: ~W" (source-code rule))
        (funcall (func rule) obj)))))
 
-
-(defmethod (setf slot-value-using-class) 
-    :around (new-value (cl hyperobject-class) obj
-                      (slot standard-effective-slot-definition))
-    (call-next-method))
-
-;; this does not work on gerd-pcl in cmu 18e+
 #+ignore
-(defmethod (setf slot-value-using-class) 
-    :around (new-value (cl hyperobject-class) obj
-                      (slot standard-effective-slot-definition))
-    #+ignore
-    (cmsg-c :verbose "Setf slot value: class: ~s, obj: ~s, slot: ~s, value: ~s" cl (class-of obj) slot new-value)
+(defmethod (setf slot-value-using-class) :around
+    (new-value (cl hyperobject-class) obj (slot hyperobject-esd))
+  (call-next-method))
 
-    
-    (let ((func (slot-value slot 'value-constraint)))
-      (cond
-       ((and func (not (funcall func new-value)))
-        (warn "Rejected change to value of slot ~a of object ~a"
-              (slot-definition-name slot) obj)
-        (slot-value obj (slot-definition-name slot)))
-       (t
-        (prog1
-            (call-next-method)
-          (when (direct-rules cl)
-            (fire-class-rules cl obj slot))))))
-    )
+;; this does not work on gerd-pcl in cmu 18e+
+;;#+ignore
+(defmethod (setf slot-value-using-class) :around 
+    (new-value (cl hyperobject-class) obj (slot hyperobject-esd))
+  #+ignore
+  (cmsg-c :verbose "Setf slot value: class: ~s, obj: ~s, slot: ~s, value: ~s" cl (class-of obj) slot new-value)
+  
+  
+  (let ((func (slot-value slot 'value-constraint)))
+    (cond
+      ((and func (not (funcall func new-value)))
+       (warn "Rejected change to value of slot ~a of object ~a"
+            (slot-definition-name slot) obj)
+       (slot-value obj (slot-definition-name slot)))
+      (t
+       (prog1
+          (call-next-method)
+        (when (direct-rules cl)
+          (fire-class-rules cl obj slot)))))))
 
 #+ignore
-(defmethod slot-value-using-class :around ((cl hyperobject-class) obj
-                                          (slot standard-effective-slot-definition))
+(defmethod (setf slot-value-using-class) :around
+    (new-value (cl hyperobject-class) obj (slot hyperobject-esd))
   (let ((value (call-next-method)))
     (cmsg-c :verbose "slot value: class: ~s, obj: ~s, slot: ~s" cl (class-of obj) slot)
     value))