[isidorus-cvs] r743 - in trunk/src: rest_interface xml/xtm

lgiessmann at common-lisp.net lgiessmann at common-lisp.net
Wed Aug 17 09:49:34 UTC 2011


Author: lgiessmann
Date: Wed Aug 17 02:49:33 2011
New Revision: 743

Log:
trunk: xtm-exporter: fixed a bug that occurs when exporting empty stopres

Modified:
   trunk/src/rest_interface/admin-interface.lisp
   trunk/src/xml/xtm/exporter.lisp

Modified: trunk/src/rest_interface/admin-interface.lisp
==============================================================================
--- trunk/src/rest_interface/admin-interface.lisp	Wed Aug 17 02:10:46 2011	(r742)
+++ trunk/src/rest_interface/admin-interface.lisp	Wed Aug 17 02:49:33 2011	(r743)
@@ -38,7 +38,6 @@
 	    (when elephant:*store-controller*
 	      (xtm-exporter:export-as-xtm
 	       (concat "backup_" (make-date-string (get-universal-time)) ".xtm")
-	       :tm-id "http://isidor.us/backup-tm"
 	       :revision 0))
 	    (shutdown-json-engine)
 	    (shutdown-atom-engine)

Modified: trunk/src/xml/xtm/exporter.lisp
==============================================================================
--- trunk/src/xml/xtm/exporter.lisp	Wed Aug 17 02:10:46 2011	(r742)
+++ trunk/src/xml/xtm/exporter.lisp	Wed Aug 17 02:49:33 2011	(r743)
@@ -14,30 +14,42 @@
   "gets all instances of AssociationC - which does not realize an
    instanceOf relationship in the db"
   (let ((instance-topic 
-	 (identified-construct
-	  (elephant:get-instance-by-value 'PersistentIdC 'uri *instance-psi*)))
+	 (get-item-by-psi *instance-psi* :revision 0))
 	(type-topic 
-	 (identified-construct 
-	  (elephant:get-instance-by-value 'PersistentIdC 'uri *type-psi*))))
-    (loop for item in (d:get-all-associations revision) 
-       when (and (= (length (roles item :revision revision)) 2)
-		 (not (and (or (eq instance-topic
-				   (instance-of (first (roles item
-							      :revision revision))
-						:revision revision))
-			       (eq instance-topic
-				   (instance-of (second (roles item
-							       :revision revision))
-						:revision revision)))
-			   (or (eq type-topic
-				   (instance-of (first (roles item
-							      :revision revision))
-						:revision revision))
-			       (eq type-topic 
-				   (instance-of (second (roles item
-							       :revision revision))
-						:revision revision))))))
-       collect item)))
+	 (get-item-by-psi *type-psi* :revision 0)))
+    (cond ((and (not (and instance-topic type-topic))
+		(elephant:get-instances-by-class 'TopicMapC))
+	   (error (make-condition
+		   'missing-reference-error
+		   :message
+		   (format nil "Could not resolvethe topics: ~a and ~a~%"
+			   *instance-psi* *type-psi*))))
+	  ((not (and instance-topic type-topic))
+	   nil)
+	  (t
+	   (loop for item in (d:get-all-associations revision) 
+	      when (and
+		    (= (length (roles item :revision revision)) 2)
+		    (not
+		     (and
+		      (or
+		       (eq instance-topic
+			   (instance-of (first (roles item
+						      :revision revision))
+					:revision revision))
+		       (eq instance-topic
+			   (instance-of (second (roles item
+						       :revision revision))
+					:revision revision)))
+		      (or (eq type-topic
+			      (instance-of (first (roles item
+							 :revision revision))
+					   :revision revision))
+			  (eq type-topic 
+			      (instance-of (second (roles item
+							  :revision revision))
+					   :revision revision))))))
+	      collect item)))))
 
 
 (defmacro with-xtm2.0 ((tm revision) &body body)




More information about the Isidorus-cvs mailing list