Ignore:
Timestamp:
04/29/10 10:17:20 (15 years ago)
Author:
lgiessmann
Message:

new-datamodel: fixed a problem when topic-merging was caused by reifying the same "ReifiableConstructC"; fixed a bug when two topics are merged and every of these topics reifies a construct that can't be merged with the other one.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified branches/new-datamodel/src/model/datamodel.lisp

    r288 r290  
    30873087  (:method ((construct ReifiableConstructC) (reifier-topic TopicC)
    30883088            &key (revision *TM-REVISION*))
     3089    (when (and (reified-construct reifier-topic :revision revision)
     3090               (not (equivalent-constructs construct
     3091                                           (reified-construct
     3092                                            reifier-topic :revision revision))))
     3093      (error (make-condition 'not-mergable-error
     3094                             :message (format nil "From add-reifier(): ~a and ~a can't be merged since the reified-constructs (~a ~a) are not mergable"
     3095                                              reifier-topic (reifier construct :revision revision) (reified-construct reifier-topic :revision revision) construct)
     3096                             :construct-1 construct
     3097                             :construct-2 (reified-construct reifier-topic :revision revision))))
    30893098    (let ((merged-reifier-topic
    30903099           (if (reifier construct :revision revision)
     
    38533862          (destination-reified (reified-construct destination
    38543863                                                  :revision revision)))
    3855       (unless (eql (type-of source-reified) (type-of destination-reified))
     3864      (when (and source-reified destination-reified
     3865                 (not (eql (type-of source-reified)
     3866                           (type-of destination-reified))))
    38563867        (error (make-condition 'not-mergable-error
    38573868                               :message (format nil "From move-reified-construct(): ~a and ~a can't be merged since the reified-constructs are not of the same type ~a ~a"
     
    38693880            (source-reified
    38703881             (delete-reifier source source-reified :revision revision)
    3871              (add-reifier destination source-reified :revision revision)
     3882             (add-reifier  source-reified destination :revision revision)
    38723883             source-reified)
    38733884            (destination-reified
    3874              (add-reifier destination destination-reified :revision revision)
     3885             (add-reifier destination-reified destination :revision revision)
    38753886             destination-reified)))))
    38763887
Note: See TracChangeset for help on using the changeset viewer.