r11448: counter is not used on all platforms
[umlisp.git] / data-structures.lisp
index 7652fc8697159d3c174853481a1a556c98b0a0ba..5f86198b396c32da53aa0cdcdcfda5f56d00c112 100644 (file)
@@ -10,7 +10,7 @@
 ;;;; $Id$
 ;;;;
 ;;;; This file, part of UMLisp, is
-;;;;    Copyright (c) 2000-2004 by Kevin M. Rosenberg, M.D.
+;;;;    Copyright (c) 2000-2006 by Kevin M. Rosenberg, M.D.
 ;;;;
 ;;;; UMLisp users are granted the rights to distribute and use this software
 ;;;; as governed by the terms of the GNU General Public License.
 
 ;;; Paths for files
 
-(defvar *umls-path*
-  (make-pathname :directory '(:absolute "data" "umls" "2003AC"))
+(defparameter *release* "2006AC")
+
+(defparameter *umls-path*
+  (make-pathname :directory (list :absolute "srv" "umls" *release*))
   "Path for base of UMLS data files")
 
-(defvar *meta-path* 
-    (merge-pathnames 
-     (make-pathname :directory '(:relative "META"))
-     *umls-path*))
+(defparameter *meta-dir*
+  (make-pathname :directory '(:relative "META")))
+
+(defparameter *lex-dir*
+  (make-pathname :directory '(:relative "LEX")))
+
+(defparameter *net-dir*
+  (make-pathname :directory '(:relative "NET")))
 
-(defvar *lex-path* 
-    (merge-pathnames 
-     (make-pathname :directory '(:relative "LEX"))
-     *umls-path*))
+(defparameter *meta-path*
+  (merge-pathnames *meta-dir* *umls-path*))
 
-(defvar *net-path* 
-    (merge-pathnames 
-     (make-pathname :directory '(:relative "NET"))
-     *umls-path*))
+(defparameter *lex-path*
+  (merge-pathnames *lex-dir* *umls-path*))
+
+(defparameter *net-path*
+  (merge-pathnames *net-dir* *umls-path*))
 
 (defun umls-path! (p)
-  (setq *umls-path* p))
+  (setq *umls-path* p)
+  (setq *meta-path* (merge-pathnames *meta-dir* *umls-path*))
+  (setq *lex-path* (merge-pathnames *lex-dir* *umls-path*))
+  (setq *net-path* (merge-pathnames *net-dir* *umls-path*)))
 
 
 ;;; Structures for parsing UMLS text files
-(defparameter *umls-files* nil 
+
+(defparameter *umls-files* nil
   "List of umls file structures. Used when parsing text files.")
-(defparameter *umls-cols* nil 
+(defparameter *umls-cols* nil
   "List of meta column structures. Used when parsing text files.")
 
 
+;; Special variables
+
+(defvar *has-fixnum-class* (when (ignore-errors (find-class 'fixnum)) t))
+
+(defvar *octet-sql-storage* t
+  "Used to deciding field lengths. Use nil if using UTF-8 database encoding. But, UTF-8 will cause MySQL to double the bytes used for fixed field sizes.")
+
 ;; Preliminary objects to replace structures
 
 (defclass ufile ()
-  ((fil :initarg :fil :accessor fil)
+  ((subdir :initarg :subdir :accessor subdir)
+   (dir :initarg :dir :accessor dir)
+   (fil :initarg :fil :accessor fil)
    (table :initarg :table :accessor table)
    (des :initarg :des :accessor des)
    (fmt :initarg :fmt :accessor fmt)
@@ -64,7 +81,7 @@
    (fields :initarg :fields :accessor fields)
    (ucols :initarg :ucols :accessor ucols))
   (:default-initargs :fil nil :table nil :des nil :fmt nil :cls nil :rws nil :bts nil
-                    :fields nil :ucols nil)
+                    :fields nil :ucols nil :subdir nil :dir nil)
   (:documentation "UMLS File"))
 
 (defclass ucol ()
     (format s "~A" (col obj))))
 
 
-