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

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
participants (1)
-
Lukas Giessmann