r4995: Auto commit for Debian build
[hyperobject.git] / rules.lisp
index cdffc345a271a684edc82944d95d989937cd9bc5..fcce008806921189179c701c6d6793582a08ad0a 100644 (file)
@@ -7,10 +7,9 @@
 ;;;; Programmer:    Kevin M. Rosenberg
 ;;;; Date Started:  Apr 2000
 ;;;;
-;;;; $Id: rules.lisp,v 1.15 2003/04/22 15:41:33 kevin Exp $
-;;;;
-;;;; This file is Copyright (c) 2000-2002 by Kevin M. Rosenberg
+;;;; $Id: rules.lisp,v 1.45 2003/05/17 05:39:35 kevin Exp $
 ;;;;
+;;;; This file is Copyright (c) 2000-2003 by Kevin M. Rosenberg
 ;;;; *************************************************************************
  
 (in-package :hyperobject)
        (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))
-
-(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)
-
-    (esd-value-constraint slot)
-    #+ignore
-    (slot-value slot 'value-constraint)
-    (call-next-method)
-    #+ignore
-    (let ((func (esd-value-constraint slot)))
-      (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)))))))
-
+;;#-ho-no-svuc
 #+ignore
-(defmethod slot-value-using-class :around ((cl hyperobject-class) obj
-                                          (slot standard-effective-slot-definition))
-  (let ((value (call-next-method)))
-    (cmsg-c :verbose "slot value: class: ~s, obj: ~s, slot: ~s" cl (class-of obj) slot)
-    value))
+(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 (esd-value-constraint slot)))
+    (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)))))))