r11151: make RUI a int4eger (unique identifier) field, add MRREL indices
[umlisp.git] / class-support.lisp
index dd969038bc87ee7e65396631be22e207d85c1d2c..2b94e91a93c2451f861100aa3446168d3686f837 100644 (file)
       aui
       (fmt-aui (parse-integer aui))))
 
+(defgeneric fmt-rui (rui))
+(when *has-fixnum-class*
+  (defmethod fmt-rui ((rui fixnum))
+    (prefixed-fixnum-string aui #\A 8)))
+
+(defmethod fmt-rui ((rui integer))
+  (prefixed-integer-string rui #\A 8))
+
+(defmethod fmt-rui ((rui string))
+  (if (eql (aref rui 0) #\R)
+      rui
+    (fmt-rui (parse-integer rui))))
+
 (defgeneric fmt-eui (e))
 (when *has-fixnum-class*
   (defmethod fmt-eui ((e fixnum))