[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