r3071: *** empty log message ***
[umlisp.git] / classes.lisp
index 9bbd1714e0a0e1bb2336742fe0f8df1fdd6992df..fd31e48af87613b494632bf4c7423ad277ce6a7b 100644 (file)
@@ -7,7 +7,7 @@
 ;;;; Programmer:    Kevin M. Rosenberg
 ;;;; Date Started:  Apr 2000
 ;;;;
-;;;; $Id: classes.lisp,v 1.3 2002/10/09 23:03:41 kevin Exp $
+;;;; $Id: classes.lisp,v 1.7 2002/10/16 17:37:18 kevin Exp $
 ;;;;
 ;;;; This file, part of UMLisp, is
 ;;;;    Copyright (c) 2000-2002 by Kevin M. Rosenberg, M.D.
              (funcall (funcall (kmrcl::obj-data-value-func fmt) obj) obj))))))
 
 
+(defclass usrl (umlsclass)
+  ((sab :type string :initarg :sab :reader sab)
+   (srl :type integer :initarg :srl :reader srl))
+  (:metaclass kmrcl:ml-class)
+  (:default-initargs :sab nil :srl nil)
+  (:title "Source Restriction Level")
+  (:fields (sab :string) (srl :fixnum))
+  (:documentation "Custom Table: Source Restriction Level"))
+
+  
 (defclass urank (umlsclass)
   ((rank :type fixnum :initarg :rank :reader rank)
    (sab :type string :initarg :sab :reader sab)
 
 ;;; Formatting routines
 
+(defgeneric fmt-cui (c))
 (defmethod fmt-cui ((c ucon))
   (format nil "C~7,'0d" (cui c)))
 
 (defmethod fmt-cui ((c null))
   (format nil "nil"))
 
+(defgeneric fmt-lui (c))
 (defmethod fmt-lui ((l uterm))
   (format nil "L~7,'0d" (lui l)))
 
       l
   (format nil "L~7,'0d" (parse-integer l))))
 
+(defgeneric fmt-sui (s))
 (defmethod fmt-sui ((s ustr))
   (format nil "S~7,'0d" (sui s)))
 
       s
   (format nil "S~7,'0d" (parse-integer s))))
 
+(defgeneric fmt-tui (t))
 (defmethod fmt-tui ((s fixnum))
   (format nil "T~3,'0d" s))
 
       s
   (format nil "T~3,'0d" (parse-integer s))))
 
+(defgeneric fmt-eui (e))
 (defmethod fmt-eui ((e fixnum))
   (format nil "E~7,'0d" e))
 
 
 (eval-when (:compile-toplevel :load-toplevel :execute)
 (defun english-term-p (obj)
-  (and (eq (class-name (class-of obj)) 'uterm)
-       (string-equal (lat obj) "ENG"))))
+  "Returns two values: T/NIL if term is english and T/NIL if obj is a TERM"
+  (if (eq (kmrcl::ml-class-name (kmrcl::ml-class-of obj)) 'uterm)
+      (values (string-equal (lat obj) "ENG") t)
+    (values nil nil))))
 
 (defun display-umls-obj 
   (obj &key (os *standard-output*) (format :text) (label nil) 
 (defludisp-ml-class disp-term #'find-uterm-lui)
 (defludisp-ml-class disp-str #'find-ustr-sui)
 
+#+cmu
+(dolist (c '(urank udef usat uso ucxt ustr ulo uterm usty urel ucoc uatx ucon uxw uxnw uxns lexterm labr lagr lcmp lmod lnom lprn lprp lspl ltrm ltyp lwd sdef sstr sstre1 sstre2 ))
+  (let ((cl (pcl:find-class c)))
+    (pcl:finalize-inheritance cl)))
+
+
+