;; -*- Mode: Lisp -*-

(page hyperobject
  (head
   (title "Hyperobject Documentation" )
   (meta "Copyright" "Kevin M. Rosenberg (C) 2002")
   (meta "Author" "Kevin M. Rosenberg")
   (with link :rel "stylesheet" :href "http://kpe.io/main.css" :type "text/css"))

  (body
   (h1 "Hyperobject Documentation")
   (h2 "Overview")
   (p (span-c pkgbody "Hyperobject")
      " is an Common Lisp object representation library based on the Metaobject Protocol.")

   (h2 "Reference") 
   (h3 "Class options")
   (table
    (tbody
      (tr
       (td (b "sql-name"))
       (td "Overrides default name of SQL table."))
      (tr
       (td (b "version"))
       (td "Sets the version number of the class. Can be used to convert previous version of the class."))
      (tr
       (td (b "instanciable"))
       (td "If NIL, the class can not be instanciated by the user."))
      (tr
       (td (b "description"))
       (td "The class description."))
      ))
	
   (h3 "Slot options")
   (table
     (tbody
      (tr
       (td (b "sql-name"))
       (td "Override name of the SQL column"))
      (tr
       (td (b "unique"))
       (td "The values in the slot must be unique"))
      (tr
       (td (b "stored"))
       (td "The values in the slot are stored in the database."))
      (tr
       (td (b "indexed"))
       (td "The values of the slot are indexed in the database."))
      (tr
       (td (b "nil-text"))
       (td "The text to print if the slot is NIL"))
      (tr
       (td (b "value-type"))
       (td "Sets the data type for the field. See the next section for complete details"))
      (tr
       (td (b "inverse"))
       (td "Sets the name of an automatically generated lookup function based on a key value for this slot"))
      ))
   
   (h3 "Type field")
   (p "Valid types for a " (span-c pkgbody "hyperobject") "slot along with their coresponding SQL types are listed in the below table.")
   (table-c "font-family:courier"
    (tr (td "string")
	(td "TEXT"))
    (tr (td (div "(string " (i "n") ")")
	    (div "(varchar " (i "n") ")"))
	(td "VARCHAR(n)"))
    (tr (td "(char " (i "n") ")")
	(td "CHAR(n)"))
    (tr (td "character")
	(td "CHAR(1)"))
    (tr (td (div "float")
	    (div "single-float"))
	(td "float"))
    (tr (td "double-float")
	(td "double"))
    (tr (td "blob")
	(td "BLOB"))) 
   
   (h2 "Subobject field")
   (p "This field sets up the storage of a slot of hold a cached object or list of objects. A lookup function and the keys to the function are also specified.")
   (p "The format for the subobject field is:")
   (p "(<lookup function> keys*)")
   
   ))
