Changeset 243 for branches/new-datamodel
- Timestamp:
- 03/22/10 11:54:27 (15 years ago)
- Location:
- branches/new-datamodel/src
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified branches/new-datamodel/src/model/datamodel.lisp ¶
r241 r243 147 147 :check-for-duplicate-identifiers 148 148 :find-item-by-content 149 :rec-remf 149 150 150 151 ;;globals … … 162 163 ;; (--> duplicate-identifier-error) 163 164 ;;TODO: finalize add-reifier 164 ;;TODO: replace add-to-version-history in VersionedAssociationC with a pseudo165 ;; initarg in make-construct166 165 ;;TODO: implement a macro "with-merge-construct" that merges constructs 167 166 ;; after some data-operations are completed (should be passed as body) … … 624 623 625 624 ;;; some helpers ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 625 (defun rec-remf (plist keyword) 626 "Calls remf for the past plist with the given keyword until 627 all key-value-pairs corresponding to the passed keyword were removed." 628 (declare (list plist) (keyword keyword)) 629 (loop while (getf plist keyword) 630 do (remf plist keyword)) 631 plist) 632 633 626 634 (defun get-item-by-content (content &key (revision *TM-REVISION*)) 627 635 "Finds characteristics by their (atomic) content." … … 1221 1229 (add-to-version-history ti-assoc :start-revision revision))) 1222 1230 (t 1223 ( let ((assoc (make-instance'TopicIdAssociationC1224 1225 :identifier topic-identifier)))1226 (add-to-version-history assoc :start-revision revision))))1231 (make-construct 'TopicIdAssociationC 1232 :parent-construct construct 1233 :identifier topic-identifier 1234 :start-revision revision))) 1227 1235 (add-to-version-history merged-construct :start-revision revision) 1228 1236 merged-construct)))) … … 1276 1284 (add-to-version-history psi-assoc :start-revision revision))) 1277 1285 (t 1278 ( let ((assoc (make-instance'PersistentIdAssociationC1279 1280 :identifier psi)))1281 (add-to-version-history assoc :start-revision revision))))1286 (make-construct 'PersistentIdAssociationC 1287 :parent-construct construct 1288 :identifier psi 1289 :start-revision revision))) 1282 1290 (add-to-version-history merged-construct :start-revision revision) 1283 1291 merged-construct)))) … … 1332 1340 (add-to-version-history loc-assoc :start-revision revision))) 1333 1341 (t 1334 (let ((assoc 1335 (make-instance 'SubjectLocatorAssociationC 1336 :parent-construct construct 1337 :identifier locator))) 1338 (add-to-version-history assoc :start-revision revision)))) 1342 (make-construct 'SubjectLocatorAssociationC 1343 :parent-construct construct 1344 :identifier locator 1345 :start-revision revision))) 1339 1346 (add-to-version-history merged-construct :start-revision revision) 1340 1347 merged-construct)))) … … 1391 1398 return name-assoc))) 1392 1399 (add-to-version-history name-assoc :start-revision revision)) 1393 (let ((assoc 1394 (make-instance 'NameAssociationC 1395 :parent-construct construct 1396 :characteristic name))) 1397 (add-to-version-history assoc :start-revision revision)))) 1400 (make-construct 'NameAssociationC 1401 :parent-construct construct 1402 :characteristic name 1403 :start-revision revision))) 1398 1404 (add-to-version-history construct :start-revision revision) 1399 1405 construct)) … … 1441 1447 return occ-assoc))) 1442 1448 (add-to-version-history occ-assoc :start-revision revision)) 1443 (let ((assoc 1444 (make-instance 'OccurrenceAssociationC 1445 :parent-construct construct 1446 :characteristic occurrence))) 1447 (add-to-version-history assoc :start-revision revision)))) 1449 (make-construct 'OccurrenceAssociationC 1450 :parent-construct construct 1451 :characteristic occurrence 1452 :start-revision revision))) 1448 1453 (add-to-version-history construct :start-revision revision) 1449 1454 construct)) … … 1733 1738 (t 1734 1739 'VariantAssociationC)))) 1735 ( let ((assoc (make-instanceassociation-type1736 1737 :parent-construct parent-construct)))1738 (add-to-version-history assoc :start-revision revision))))))1740 (make-construct association-type 1741 :characteristic construct 1742 :parent-construct parent-construct 1743 :start-revision revision))))) 1739 1744 construct)) 1740 1745 … … 1865 1870 return variant-assoc))) 1866 1871 (add-to-version-history variant-assoc :start-revision revision)) 1867 (let ((assoc 1868 (make-instance 'VariantAssociationC 1869 :characteristic variant 1870 :parent-construct construct))) 1871 (add-to-version-history assoc :start-revision revision)))) 1872 (make-construct 'VariantAssociationC 1873 :characteristic variant 1874 :parent-construct construct 1875 :start-revision revision))) 1872 1876 construct)) 1873 1877 … … 1950 1954 return role-assoc))) 1951 1955 (add-to-version-history role-assoc :start-revision revision)) 1952 (let ((assoc 1953 (make-instance 'RoleAssociationC 1954 :role role 1955 :parent-construct construct))) 1956 (add-to-version-history assoc :start-revision revision)))) 1956 (make-construct 'RoleAssociationC 1957 :role role 1958 :parent-construct construct 1959 :start-revision revision))) 1957 1960 (add-to-version-history construct :start-revision revision) 1958 1961 construct)) … … 2044 2047 (add-to-version-history same-parent-assoc :start-revision revision)) 2045 2048 (t 2046 ( let ((assoc (make-instance'RoleAssociationC2047 2048 :parent-construct parent-construct)))2049 (add-to-version-history assoc :start-revision revision)))))2049 (make-construct 'RoleAssociationC 2050 :role construct 2051 :parent-construct parent-construct 2052 :start-revision revision)))) 2050 2053 (add-to-version-history parent-construct :start-revision revision) 2051 2054 construct) … … 2096 2099 (add-to-version-history same-player-assoc :start-revision revision)) 2097 2100 (t 2098 ( let ((assoc (make-instance'PlayerAssociationC2099 2100 :player-topic player-topic)))2101 (add-to-version-history assoc :start-revision revision)))))2101 (make-construct 'PlayerAssociationC 2102 :parent-construct construct 2103 :player-topic player-topic 2104 :start-revision revision)))) 2102 2105 construct)) 2103 2106 … … 2238 2241 (add-to-version-history ii-assoc :start-revision revision))) 2239 2242 (t 2240 ( let ((assoc (make-instance'ItemIdAssociationC2241 2242 :identifier item-identifier)))2243 (add-to-version-history assoc :start-revision revision))))2243 (make-construct 'ItemIdAssociationC 2244 :parent-construct construct 2245 :identifier item-identifier 2246 :start-revision revision))) 2244 2247 (when (or (typep merged-construct 'TopicC) 2245 2248 (typep merged-construct 'AssociationC) … … 2292 2295 (merge-constructs (first all-constructs) construct)) 2293 2296 (t 2294 ( let ((assoc (make-instance'ReifierAssociationC2295 2296 :reifier-topic merged-reifier-topic)))2297 (add-to-version-history assoc :start-revision revision))))2297 (make-construct 'ReifierAssociationC 2298 :reifiable-construct construct 2299 :reifier-topic merged-reifier-topic 2300 :start-revision revision))) 2298 2301 (when (or (typep merged-construct 'TopicC) 2299 2302 (typep merged-construct 'AssociationC) … … 2410 2413 return theme-assoc))) 2411 2414 (add-to-version-history theme-assoc :start-revision revision)) 2412 (let ((assoc 2413 (make-instance 'ScopeAssociationC 2414 :theme-topic theme-topic 2415 :scopable-construct construct))) 2416 (add-to-version-history assoc :start-revision revision)))) 2415 (make-construct 'ScopeAssociationC 2416 :theme-topic theme-topic 2417 :scopable-construct construct 2418 :start-revision revision))) 2417 2419 (when (typep construct 'AssociationC) 2418 2420 (add-to-version-history construct :start-revision revision)) … … 2482 2484 (add-to-version-history same-type-assoc :start-revision revision)) 2483 2485 (t 2484 (let ((assoc 2485 (make-instance 'TypeAssociationC 2486 :type-topic type-topic 2487 :typable-construct construct))) 2488 (add-to-version-history assoc :start-revision revision))))) 2486 (make-construct 'TypeAssociationC 2487 :type-topic type-topic 2488 :typable-construct construct 2489 :start-revision revision)))) 2489 2490 (when (typep construct 'AssociationC) 2490 2491 (add-to-version-history construct :start-revision revision)) … … 2583 2584 ((AssociationC-p class-symbol) 2584 2585 (apply #'make-association args)) 2586 ((VersionedConstructC-p class-symbol) 2587 (apply #'make-instance (rec-remf args :start-revision))) 2585 2588 (t 2586 2589 (apply #'make-instance class-symbol args)))) -
TabularUnified branches/new-datamodel/src/unit_tests/datamodel_test.lisp ¶
r235 r243 909 909 (is (= (length (union (list tm-1) 910 910 (in-topicmaps top-1))) 1)) 911 (is-false (topics tm-1 :revision revision-0-5))912 911 (is-false (in-topicmaps top-1 :revision revision-0-5)) 913 912 (d::add-to-version-history assoc-1 :start-revision revision-1) … … 917 916 (is (= (length (union (list tm-1) 918 917 (in-topicmaps assoc-1))) 1)) 919 (is-false (associations tm-1 :revision revision-0-5))920 918 (is-false (in-topicmaps assoc-1 :revision revision-0-5)) 921 919 (add-to-tm tm-2 top-1) … … 924 922 (is (= (length (union (list tm-2 tm-1) 925 923 (in-topicmaps top-1))) 2)) 926 (is-false (topics tm-2 :revision revision-0-5))927 924 (is-false (in-topicmaps top-1 :revision revision-0-5)) 928 925 (d::add-to-version-history assoc-1 :start-revision revision-1) … … 932 929 (is (= (length (union (list tm-2 tm-1) 933 930 (in-topicmaps assoc-1))) 2)) 934 (is-false (associations tm-2 :revision revision-0-5))935 931 (is-false (in-topicmaps assoc-1 :revision revision-0-5))))) 936 932
Note: See TracChangeset
for help on using the changeset viewer.