[isidorus-cvs] r233 - branches/new-datamodel/src/model

Lukas Giessmann lgiessmann at common-lisp.net
Thu Mar 18 12:50:37 UTC 2010


Author: lgiessmann
Date: Thu Mar 18 08:50:36 2010
New Revision: 233

Log:
new-datamodel: added the handling of "ReifiableConstructC" to "make-construct"

Modified:
   branches/new-datamodel/src/model/datamodel.lisp

Modified: branches/new-datamodel/src/model/datamodel.lisp
==============================================================================
--- branches/new-datamodel/src/model/datamodel.lisp	(original)
+++ branches/new-datamodel/src/model/datamodel.lisp	Thu Mar 18 08:50:36 2010
@@ -122,11 +122,9 @@
 
 
 
-;;TODO: check merge-constructs in add-topic-identifier, add-item-identifier,
+;;TODO: check merge-constructs in add-topic-identifier, add-item-identifier
+;;      (can merge the parent construct and the parent's parent construct),
 ;;      add-psi, add-locator
-
-;;TODO: all add-<construct> methods hve to add an version info to the
-;;      owner-construct
 ;;TODO: finalize add-reifier
 ;;TODO: replace add-to-version-history in VersionedAssociationC with a pseudo
 ;;      initarg in make-construct
@@ -2329,14 +2327,33 @@
   (let ((start-revision (getf args :start-revision))
 	(uri (getf args :uri))
 	(xtm-id (getf args :xtm-id))
-	(identified-construct (getf args :identified-construct)))
+	(identified-construct (getf args :identified-construct))
+	(charvalue (getf args :charvalue))
+	(datatype (getf args :datatype))
+	(parent-construct (getf args :parent-construct))
+	(themes (getf args :themes))
+	(variants (getf args :variants))
+	(instance-of (getf args :instance-of))
+	(reifier-topic (getf args :reifier))
+	(item-identifiers (getf args :item-identifiers)))
     (let ((construct
 	   (cond
 	     ((PointerC-p class-symbol)
 	      (make-pointer class-symbol uri :start-revision start-revision
 			    :xtm-id xtm-id
-			    :identified-construct identified-construct)))))
-
+			    :identified-construct identified-construct))
+	     ((CharacteristicC-p class-symbol)
+	      (make-characteristic class-symbol charvalue
+				   :start-revision start-revision
+				   :datatype datatype :themes themes
+				   :instance-of instance-of :variants variants
+				   :parent-construct parent-construct)))))
+
+      (when (typep construct 'ReifiableConstructC)
+	(when reifier-topic
+	  (add-reifier construct reifier-topic :revision start-revision))
+	(dolist (ii item-identifiers)
+	  (add-item-identifier construct ii :revision start-revision)))
       construct)))
 
 




More information about the Isidorus-cvs mailing list