;;;; -*- Mode: Lisp; Syntax: ANSI-Common-Lisp; Base: 10 -*- ;;;; ************************************************************************* ;;;; FILE IDENTIFICATION ;;;; ;;;; Name: base-class.lisp ;;;; Purpose: Definition of basic hyperobject class ;;;; Programmer: Kevin M. Rosenberg ;;;; Date Started: Apr 2000 ;;;; ;;;; $Id: base-class.lisp,v 1.3 2002/12/13 05:44:19 kevin Exp $ ;;;; ;;;; This file is Copyright (c) 2000-2002 by Kevin M. Rosenberg ;;;; ************************************************************************* (in-package :hyperobject) (eval-when (:compile-toplevel :execute) (declaim (optimize (speed 2) (safety 2) (compilation-speed 0) (debug 2)))) (defclass hyperobject () () (:metaclass hyperobject-class) (:description "Basic hyperobject class")) (defmethod print-object ((obj hyperobject) (s stream)) (print-unreadable-object (obj s :type t :identity t) (let ((view (get-category-view obj :compact-text))) (apply #'format s (slot-value view 'obj-data-fmtstr) (multiple-value-list (funcall (slot-value view 'obj-data-value-func) obj))))))