Changeset 3675
- Timestamp:
- 07/29/08 12:06:05 (4 months ago)
- Files:
-
- trunk/projects/bos/m2/bos.m2.asd (modified) (2 diffs)
- trunk/projects/bos/m2/poi.lisp (modified) (3 diffs)
- trunk/projects/bos/m2/slot-strings.lisp (added)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/projects/bos/m2/bos.m2.asd
r3668 r3675 12 12 (:file "config" :depends-on ("packages")) 13 13 (:file "utils" :depends-on ("packages")) 14 (:file "news" :depends-on ("packages" " poi"))14 (:file "news" :depends-on ("packages" "slot-strings")) 15 15 (:file "tiled-index" :depends-on ("packages")) 16 16 (:file "mail-generator" :depends-on ("packages")) … … 25 25 (:file "allocation-cache" :depends-on ("allocation" "initialization-subsystem" 26 26 "packages" "utils")) 27 (:file "poi" :depends-on ("packages")) 27 (:file "slot-strings" :depends-on ("packages")) 28 (:file "poi" :depends-on ("packages" "slot-strings")) 28 29 (:file "import" :depends-on ("packages")) 29 30 (:file "map" :depends-on ("config" "packages" "tiled-index")) trunk/projects/bos/m2/poi.lisp
r3671 r3675 4 4 ;; Quadratmeter-Datenbank gespeichert werden. 5 5 6 ;; Die Implementation kurvt ein bisschen um den aktuellen Datastore7 ;; herum, da eine Àsthetische Implementation der mehrsprachigen8 ;; Strings MOP erforderlich machen wÃŒrde, die Umstellung des Datastore9 ;; auf MOP jedoch noch nicht fertig ist.10 11 6 (in-package :bos.m2) 12 13 ;; Multilinguale Strings als Slots, werden als Hashes im Objekt14 ;; gespeichert und ÃŒber slot-string bzw. (setf slot-string)15 ;; angesprochen.16 17 (defun make-string-hash-table ()18 (make-hash-table :test #'equal))19 20 (defun slot-string (object slot-name language &optional (not-found-value ""))21 (or (gethash language (slot-value object slot-name)) not-found-value))22 23 (defun set-slot-string (object slot-name language new-value)24 (unless (in-transaction-p)25 (error "attempt to set string in multi-language string slot ~a of object ~a outside of transaction" slot-name object))26 (setf (gethash language (slot-value object slot-name)) new-value))27 28 (defsetf slot-string set-slot-string)29 30 (deftransaction set-slot-string-values (object language &rest args)31 (loop for (slot-name value) on args by #'cddr32 do (setf (slot-string object slot-name language) value)))33 7 34 8 ;;; POI-Anwendungsklassen und Konstruktoren … … 76 50 ;;; poi 77 51 (define-persistent-class poi () 78 ((name :read :index-type string-unique-index 52 ((published :update :initform nil) 53 (name :read :index-type string-unique-index 79 54 :index-reader find-poi :index-values all-pois 80 55 :documentation "Symbolischer Name") … … 83 58 (description :update :initform (make-string-hash-table) :documentation "Beschreibungstext") 84 59 (area :update :initform nil :documentation "Polygon mit den POI-Koordinaten") 85 (icon :update :initform "palme" :documentation "Name des Icons") 86 (images :update :initform nil) 87 (airals :update :initform nil) 88 (panoramas :update :initform nil) 89 (movies :update :initform nil) 90 (published :update :initform nil))) 60 (icon :update :initform "palme" :documentation "Name des Icons") 61 (medias :update :initform nil))) 91 62 92 63 (defmethod poi-movies :before ((poi poi))
