r5185: *** empty log message ***
[umlisp.git] / class-support.lisp
index 5f8778da086ce822185cdf9f420d9dd2ae33a896..85b49a64676a06259c94fdd794714c2d2c9999c6 100644 (file)
@@ -7,7 +7,7 @@
 ;;;; Author:       Kevin M. Rosenberg
 ;;;; Date Started: Apr 2000
 ;;;;
-;;;; $Id: class-support.lisp,v 1.12 2003/06/12 16:37:44 kevin Exp $
+;;;; $Id: class-support.lisp,v 1.15 2003/06/24 08:49:09 kevin Exp $
 ;;;;
 ;;;; This file, part of UMLisp, is
 ;;;;    Copyright (c) 2000-2003 by Kevin M. Rosenberg, M.D.
 (defmethod fmt-eui ((e null))
   (format nil "nil"))
 
+(defun cui-p (ui)
+  "Check if a string is a CUI"
+  (check-ui ui #\C 7))
+
+(defun lui-p (ui)
+  "Check if a string is a LUI"
+  (check-ui ui #\L 7))
+
+(defun sui-p (ui)
+  "Check if a string is a SUI"
+  (check-ui ui #\S 7))
+
+(defun tui-p (ui)
+  (check-ui ui #\T 3))
+
+(defun eui-p (ui)
+  (check-ui ui #\E 7))
+
+(defun check-ui (ui start-char len)
+  (when (and (stringp ui)
+            (= (length ui) (1+ len))
+            (char-equal start-char (schar ui 0))
+            (ignore-errors (parse-integer ui :start 1)))
+    t))
+
+
 ;;; Generic display functions
 
 (eval-when (:compile-toplevel :load-toplevel :execute)
 
 (defun print-umlsclass (obj &key (stream *standard-output*)
                        (category :compact-text)
-                       (file-wrapper t) (english-only t) (subobjects nil)
+                       (file-wrapper nil) (english-only t) (subobjects nil)
                        (refvars nil) (link-printer nil))
   (view obj :stream stream :category category :subobjects subobjects
        :file-wrapper file-wrapper
   "Return the string for a ulo object"
   (find-string-sui (sui lo)))
 
-(defun uterm-pfstr (uterm)
+(defmethod pfstr ((uterm uterm))
   "Return the preferred string for a uterm"
   (dolist (ustr (s#str uterm))
     (when (string= "PF" (stt ustr))
-      (return-from uterm-pfstr (str ustr)))))
+      (return-from pfstr (str ustr)))))
 
 (defun remove-non-english-terms (uterms)
   (remove-if-not #'english-term-p uterms))