Changeset 262 for branches/new-datamodel/src/model
- Timestamp:
- 04/06/10 13:42:50 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified branches/new-datamodel/src/model/datamodel.lisp ¶
r261 r262 877 877 (vi-2 (find-version-info (list construct-2)))) 878 878 (cond ((not (or vi-1 vi-2)) 879 nil)879 construct-1) 880 880 ((not vi-1) 881 881 construct-2) … … 1031 1031 (vi-2 (find-version-info (slot-p construct-2 'identified-construct)))) 1032 1032 (cond ((not (or vi-1 vi-2)) 1033 nil)1033 construct-1) 1034 1034 ((not vi-1) 1035 1035 construct-2) … … 1859 1859 (vi-2 (find-version-info (slot-p construct-2 'parent)))) 1860 1860 (cond ((not (or vi-1 vi-2)) 1861 nil)1861 construct-1) 1862 1862 ((not vi-1) 1863 1863 construct-2) … … 2279 2279 (vi-2 (find-version-info (slot-p construct-2 'parent)))) 2280 2280 (cond ((not (or vi-1 vi-2)) 2281 nil)2281 construct-1) 2282 2282 ((not vi-1) 2283 2283 construct-2) … … 3538 3538 3539 3539 ;;; end hacks ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 3540 3541 3542 (defmethod merge-constructs ((construct-1 VariantC) (construct-2 VariantC) 3543 &key (revision *TM-REVISION*)) 3544 (declare (integer revision)) 3545 (if (eql construct-1 construct-2) 3546 construct-1 3547 (let ((older-var (find-oldest-construct construct-1 construct-2))) 3548 (let ((newer-var (if (eql older-var construct-1) 3549 construct-2 3550 construct-1))) 3551 (let ((parent-1 (parent older-var :revision revision)) 3552 (parent-2 (parent newer-var :revision revision))) 3553 (unless (strictly-equivalent-constructs construct-1 construct-2 3554 :revision revision) 3555 (error "From merge-constructs(): ~a and ~a are not mergable" 3556 construct-1 construct-2)) 3557 (cond ((and parent-1 parent-2) 3558 (let ((active-parent 3559 (merge-constructs parent-1 parent-2 3560 :revision revision))) 3561 (let ((all-names (names active-parent :revision revision))) 3562 (if (find-if #'(lambda(name) 3563 (find older-var (variants name :revision 3564 revision))) 3565 all-names) 3566 older-var 3567 newer-var)))) 3568 ((or parent-1 parent-2) 3569 (let ((dst (if parent-1 older-var newer-var)) 3570 (src (if parent-1 newer-var older-var))) 3571 (move-identifiers src dst :revision revision) 3572 (move-referenced-constructs src dst :revision revision) 3573 dst)) 3574 (t 3575 (move-identifiers newer-var older-var :revision revision) 3576 (move-referenced-constructs newer-var older-var 3577 :revision revision) 3578 older-var))))))) 3579 3580 3581 (defmethod merge-constructs ((construct-1 NameC) (construct-2 NameC) 3582 &key (revision *TM-REVISION*)) 3583 (declare (integer revision)) 3584 (if (eql construct-1 construct-2) 3585 construct-1 3586 (let ((older-name (find-oldest-construct construct-1 construct-2))) 3587 (let ((newer-name (if (eql older-name construct-1) 3588 construct-2 3589 construct-1))) 3590 (let ((parent-1 (parent older-name :revision revision)) 3591 (parent-2 (parent newer-name :revision revision))) 3592 (unless (strictly-equivalent-constructs construct-1 construct-2 3593 :revision revision) 3594 (error "From merge-constructs(): ~a and ~a are not mergable" 3595 construct-1 construct-2)) 3596 (cond ((and parent-1 parent-2) 3597 (let ((active-parent (merge-constructs parent-1 parent-2 3598 :revision revision))) 3599 (if (find older-name (names active-parent 3600 :revision revision)) 3601 older-name 3602 newer-name))) 3603 ((or parent-1 parent-2) 3604 (let ((dst (if parent-1 older-name newer-name)) 3605 (src (if parent-1 newer-name older-name))) 3606 (move-identifiers src dst :revision revision) 3607 (move-referenced-constructs src dst :revision revision) 3608 (move-variants src dst :revision revision) 3609 dst)) 3610 (t 3611 (move-identifiers newer-name older-name :revision revision) 3612 (move-referenced-constructs newer-name older-name 3613 :revision revision) 3614 (move-variants newer-name older-name :revision revision) 3615 older-name))))))) 3616 3617 3618 ;TODO: --> include move-yx in move-referenced-constructs
Note: See TracChangeset
for help on using the changeset viewer.