[isidorus-cvs] r191 - in branches/new-datamodel: docs src/model

Lukas Giessmann lgiessmann at common-lisp.net
Tue Feb 16 20:55:06 UTC 2010


Author: lgiessmann
Date: Tue Feb 16 15:55:05 2010
New Revision: 191

Log:
new-datamodel: fixed some name-problems with the UML-schema + implemented all CharacteristicCAssociationC-classes -> NameAssociationC, OccurrenceAssociationC, VariantAssociationC

Modified:
   branches/new-datamodel/docs/isidorus_data_model.pdf
   branches/new-datamodel/docs/isidorus_data_model.vsd
   branches/new-datamodel/src/model/datamodel.lisp

Modified: branches/new-datamodel/docs/isidorus_data_model.pdf
==============================================================================
Binary files branches/new-datamodel/docs/isidorus_data_model.pdf	(original) and branches/new-datamodel/docs/isidorus_data_model.pdf	Tue Feb 16 15:55:05 2010 differ

Modified: branches/new-datamodel/docs/isidorus_data_model.vsd
==============================================================================
Binary files. No diff available.

Modified: branches/new-datamodel/src/model/datamodel.lisp
==============================================================================
--- branches/new-datamodel/src/model/datamodel.lisp	(original)
+++ branches/new-datamodel/src/model/datamodel.lisp	Tue Feb 16 15:55:05 2010
@@ -29,6 +29,8 @@
 	   :find-item-by-revision
 	   :themes
 	   :add-theme
+	   :instance-of
+	   :add-type
 	   :mark-as-deleted
 
 	   ;;globals
@@ -282,6 +284,10 @@
 
 
 ;;; Versioned-Associations ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;; VariantAssociationC
+;;; NameAssociationC
+;;; OccurrenceAssociationC
+;;; CharacteristicAssociationC
 ;;; TypeAssociationC
 ;;; ScopeAssociationC
 ;;; ReifierAssociationC
@@ -291,6 +297,72 @@
 ;;; ItemIdAssociationC
 ;;; PointerAssociationC
 ;;; VersionedAssociationC
+(defpclass VariantAssociationC(CharateristicAssociationC)
+  ((name :initarg :name
+	 :accessor name
+	 :initform (error "From VariantAssociationC(): name must be set")
+	 :associate NameC
+	 :documentation "Associates this object with a name."))
+  (:index t)
+  (:documentation "Associates variant objects with name obejcts.
+                   Additionally version-infos are stored."))
+
+
+(defmethod delete-construct :before ((construct VariantAssociationC))
+  (delete-1-n-association construct 'name))
+
+
+(defpclass NameAssociationC(CharacteristicAssociationC)
+  ((topic :initarg :topic
+	  :accessor topic
+	  :initform (error "From NameAssociationC(): topic must be set")
+	  :associate TopicC
+	  :documentation "Associates this object with a topic."))
+  (:index t)
+  (:documentation "Associates name objects with their parent topics.
+                   Additionally version-infos are stored."))
+
+
+(defmethod delete-construct :before ((construct NameAssociationC))
+  (delete-1-n-association construct 'topic))
+
+
+(defpclass OccurrenceAssociationC(CharacteristicAssociationC)
+  ((topic :initarg :topic
+	  :accessor topic
+	  :initform (error "From OccurrenceAssociationC(): topic must be set")
+	  :associate TopicC
+	  :documentation "Associates this object with a topic."))
+  (:index t)
+  (:documentation "Associates occurrence objects with their parent topics.
+                   Additionally version-infos are stored."))
+
+
+(defmethod delete-construct :before ((construct OccurrenceAssociationC))
+  (delete-1-n-association construct 'topic))
+
+
+(defpclass CharacteristicAssociationC(VersionedAssociationC)
+  ((characteristic :initarg :characteristic
+		   :accessor characteristic
+		   :inherit t
+		   :initform (error "From CharacteristicCAssociation(): characteristic must be set")
+		   :associate CharactersiticC
+		   :documentation "Associates this object with the actual
+                                   characteristic object."))
+  (:documentation "An abstract base class for all association-objects that
+                   associates characteristics with topics."))
+
+
+(defmethod delete-construct :before ((construct CharacteristicAssociationC))
+  "Deletes all elephant-associations."
+  (let ((characteristic (characteristic construct)))
+    (delete-1-n-association construct 'characteristic)
+    (when (and characteristic
+	       (not (slot-p characteristic 'parent)))
+      (delete-construct characteristic))))
+
+
 (defpclass TypeAssociationC(VersionedAssociationC)
   ((type-topic :initarg :type-topic
 	       :accessor type-topic




More information about the Isidorus-cvs mailing list