X-Git-Url: http://git.kpe.io/?p=umlisp.git;a=blobdiff_plain;f=class-support.lisp;fp=class-support.lisp;h=0352c742f0b5523876603b003ae1c92b4b4a96e9;hp=7892abed792da14ea9dfcb75bcccce4e51593dbf;hb=7f30522f16a7c528b5a0f0ee493bbb0cb1aef77b;hpb=cd3b91a343663cc9f12fd551e454de552be9ff9d diff --git a/class-support.lisp b/class-support.lisp index 7892abe..0352c74 100644 --- a/class-support.lisp +++ b/class-support.lisp @@ -70,7 +70,7 @@ (if (>= s 10000000) (prefixed-fixnum-string s #\S 8) (prefixed-fixnum-string s #\S 7)))) - + (defmethod fmt-sui ((s integer)) (if (>= s 10000000) (prefixed-fixnum-string s #\S 8) @@ -283,8 +283,20 @@ (defun rel-abbr-info (rel) (nth-value 0 (gethash (string-downcase rel) *rel-info-table*))) -(defun filter-urels-by-rel (urels rel) - (remove-if-not (lambda (urel) (string-equal rel (rel urel))) urels)) +(defun filter-urels-by-rel (urels rel &key (remove-duplicate-pfstr2 t) (sort :pfstr2)) + (let ((f (remove-if-not (lambda (urel) (string-equal rel (rel urel))) urels))) + (when remove-duplicate-pfstr2 + (setq f (remove-duplicates f :test 'equal :key 'u::pfstr2))) + (if sort + (sort (copy-seq f) 'string-lessp :key 'u::pfstr2) + f))) + +(defun filter-ucocs (ucocs &key (remove-duplicate-pfstr2 t) (sort :pfstr2)) + (when remove-duplicate-pfstr2 + (setq ucocs (remove-duplicates ucocs :test 'equal :key 'u::pfstr2))) + (if sort + (sort (copy-seq ucocs) 'string-lessp :key 'u::pfstr2) + ucocs)) (defvar +language-abbreviations+ @@ -355,5 +367,3 @@ (dolist (c '(urank udef usat uso ucxt ustr uterm usty urel ucoc uatx uconso uxw uxnw uxns lexterm labr lagr lcmp lmod lnom lprn lprp lspl ltrm ltyp lwd sdef sstr sstre1 sstre2 usrl)) (let ((cl (find-class c))) (clos:finalize-inheritance cl))) - -