[yaclml tal support for `persistent-objects's
clinton@unknownlamer.org**20090429045131
 Ignore-this: b345d275637911ddda72aa32f406f222
 Same methods as for `standard-object's in yaclml but specialized on
 `persistent-object' allowing Elephant classes to be passed directly
 into a tal environment.
] {
hunk ./golgonooza.elephant.asd 12
+			 (:file "elephant-tal" :depends-on ("elephant-packages"))
addfile ./src/elephant/elephant-tal.lisp
hunk ./src/elephant/elephant-tal.lisp 1
+;; elephant-tal.lisp 
+
+;; Author: Clinton Ebadi <clinton@unknownlamer.org>
+;; Author: Edward Marco Baringer <mb@bese.it>
+
+;; Minor tal extension for persistent classes adapted from yaclml
+
+(in-package :org.unknownlamer.golgonooza.elephant)
+
+(defmethod yaclml:fetch-tal-value (name (obj persistent-object))
+  (if (and (slot-exists-p obj name)
+           (slot-boundp obj name))
+      (values (slot-value obj name) t)
+      (values nil nil)))
+
+(defmethod (setf yaclml:fetch-tal-value) (value name (obj persistent-object))
+  (if (slot-exists-p obj name)
+      (setf (slot-value obj name) value)
+      (error 'yaclml::unfound-tal-variable :variable-name value :environment obj)))
+
+;; Copyright (c) 2002-2005, Edward Marco Baringer
+;; All rights reserved. 
+;; 
+;; Redistribution and use in source and binary forms, with or without
+;; modification, are permitted provided that the following conditions are
+;; met:
+;; 
+;;  - Redistributions of source code must retain the above copyright
+;;    notice, this list of conditions and the following disclaimer.
+;; 
+;;  - Redistributions in binary form must reproduce the above copyright
+;;    notice, this list of conditions and the following disclaimer in the
+;;    documentation and/or other materials provided with the distribution.
+;;
+;;  - Neither the name of Edward Marco Baringer, nor BESE, nor the names
+;;    of its contributors may be used to endorse or promote products
+;;    derived from this software without specific prior written permission.
+;; 
+;; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+;; "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+;; LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+;; A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT
+;; OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+;; SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+;; LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+;; DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+;; THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+;; (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+;; OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
}