[bknr-cvs] ksprotte changed trunk/projects/bos/m2/

BKNR Commits bknr at bknr.net
Tue Jul 29 10:06:05 UTC 2008


Revision: 3675
Author: ksprotte
URL: http://bknr.net/trac/changeset/3675

factored slot-strings into a seperate file
U   trunk/projects/bos/m2/bos.m2.asd
U   trunk/projects/bos/m2/poi.lisp
A   trunk/projects/bos/m2/slot-strings.lisp

Modified: trunk/projects/bos/m2/bos.m2.asd
===================================================================
--- trunk/projects/bos/m2/bos.m2.asd	2008-07-29 09:59:45 UTC (rev 3674)
+++ trunk/projects/bos/m2/bos.m2.asd	2008-07-29 10:06:05 UTC (rev 3675)
@@ -11,7 +11,7 @@
                (:file "geometry" :depends-on ("packages"))
                (:file "config" :depends-on ("packages"))
                (:file "utils" :depends-on ("packages"))
-               (:file "news" :depends-on ("packages" "poi"))
+               (:file "news" :depends-on ("packages" "slot-strings"))
                (:file "tiled-index" :depends-on ("packages"))
                (:file "mail-generator" :depends-on ("packages"))
                (:file "make-certificate" :depends-on ("packages"))
@@ -24,7 +24,8 @@
                (:file "allocation" :depends-on ("geometry" "packages"))
                (:file "allocation-cache" :depends-on ("allocation" "initialization-subsystem"
                                                                    "packages" "utils"))
-               (:file "poi" :depends-on ("packages"))
+               (:file "slot-strings" :depends-on ("packages"))
+               (:file "poi" :depends-on ("packages" "slot-strings"))
                (:file "import" :depends-on ("packages"))
                (:file "map" :depends-on ("config" "packages" "tiled-index"))
                (:file "export" :depends-on ("packages"))

Modified: trunk/projects/bos/m2/poi.lisp
===================================================================
--- trunk/projects/bos/m2/poi.lisp	2008-07-29 09:59:45 UTC (rev 3674)
+++ trunk/projects/bos/m2/poi.lisp	2008-07-29 10:06:05 UTC (rev 3675)
@@ -3,34 +3,8 @@
 ;; Klassen und Funktione für die "Points of Information", die für die
 ;; Quadratmeter-Datenbank gespeichert werden.
 
-;; Die Implementation kurvt ein bisschen um den aktuellen Datastore
-;; herum, da eine ästhetische Implementation der mehrsprachigen
-;; Strings MOP erforderlich machen würde, die Umstellung des Datastore
-;; auf MOP jedoch noch nicht fertig ist.
-
 (in-package :bos.m2)
 
-;; Multilinguale Strings als Slots, werden als Hashes im Objekt
-;; gespeichert und über slot-string bzw. (setf slot-string)
-;; angesprochen.
-
-(defun make-string-hash-table ()
-  (make-hash-table :test #'equal))
-
-(defun slot-string (object slot-name language &optional (not-found-value ""))
-  (or (gethash language (slot-value object slot-name)) not-found-value))
-
-(defun set-slot-string (object slot-name language new-value)
-  (unless (in-transaction-p)
-    (error "attempt to set string in multi-language string slot ~a of object ~a outside of transaction" slot-name object))
-  (setf (gethash language (slot-value object slot-name)) new-value))
-
-(defsetf slot-string set-slot-string)
-
-(deftransaction set-slot-string-values (object language &rest args)
-  (loop for (slot-name value) on args by #'cddr
-     do (setf (slot-string object slot-name language) value)))
-
 ;;; POI-Anwendungsklassen und Konstruktoren
 
 ;;; poi-image
@@ -75,19 +49,16 @@
 
 ;;; poi
 (define-persistent-class poi ()
-  ((name :read :index-type string-unique-index
+  ((published :update :initform nil)
+   (name :read :index-type string-unique-index
                :index-reader find-poi :index-values all-pois
                :documentation "Symbolischer Name")
    (title :update :initform (make-string-hash-table) :documentation "Angezeigter Name")
    (subtitle :update :initform (make-string-hash-table) :documentation "Unterschrift")
    (description :update :initform (make-string-hash-table) :documentation "Beschreibungstext")
    (area :update :initform nil :documentation "Polygon mit den POI-Koordinaten")
-   (icon :update :initform "palme" :documentation "Name des Icons")
-   (images :update :initform nil)
-   (airals :update :initform nil)
-   (panoramas :update :initform nil)
-   (movies :update :initform nil)
-   (published :update :initform nil)))
+   (icon :update :initform "palme" :documentation "Name des Icons")   
+   (medias :update :initform nil)))
 
 (defmethod poi-movies :before ((poi poi))
   "Lazily update the db schema. Method can be removed later."

Added: trunk/projects/bos/m2/slot-strings.lisp
===================================================================
--- trunk/projects/bos/m2/slot-strings.lisp	                        (rev 0)
+++ trunk/projects/bos/m2/slot-strings.lisp	2008-07-29 10:06:05 UTC (rev 3675)
@@ -0,0 +1,28 @@
+(in-package :bos.m2)
+
+;; Die Implementation kurvt ein bisschen um den aktuellen Datastore
+;; herum, da eine ästhetische Implementation der mehrsprachigen
+;; Strings MOP erforderlich machen würde, die Umstellung des Datastore
+;; auf MOP jedoch noch nicht fertig ist.
+
+;; Multilinguale Strings als Slots, werden als Hashes im Objekt
+;; gespeichert und über slot-string bzw. (setf slot-string)
+;; angesprochen.
+
+(defun make-string-hash-table ()
+  (make-hash-table :test #'equal))
+
+(defun slot-string (object slot-name language &optional (not-found-value ""))
+  (or (gethash language (slot-value object slot-name)) not-found-value))
+
+(defun set-slot-string (object slot-name language new-value)
+  (unless (in-transaction-p)
+    (error "attempt to set string in multi-language string slot ~a of object ~a outside of transaction" slot-name object))
+  (setf (gethash language (slot-value object slot-name)) new-value))
+
+(defsetf slot-string set-slot-string)
+
+(deftransaction set-slot-string-values (object language &rest args)
+  (loop for (slot-name value) on args by #'cddr
+     do (setf (slot-string object slot-name language) value)))
+




More information about the Bknr-cvs mailing list