1 ;;;; -*- Mode: Lisp; Syntax: ANSI-Common-Lisp; Base: 10 -*-
2 ;;;; *************************************************************************
3 ;;;; FILE IDENTIFICATION
5 ;;;; Name: kmr-mop.lisp
6 ;;;; Purpose: MOP support for multiple-implementions
7 ;;;; Programmer: Kevin M. Rosenberg
8 ;;;; Date Started: Apr 2003
12 ;;;; This file imports MOP symbols into the CLSQL-MOP package and then
13 ;;;; re-exports into CLSQL-SYS them to hide differences in
14 ;;;; MOP implementations.
16 ;;;; This file was extracted from the KMRCL utilities
17 ;;;; *************************************************************************
19 (in-package #:clsql-sys)
22 (defun intern-eql-specializer (slot)
25 (defmacro process-class-option (metaclass slot-name &optional required)
27 `(defmethod clos:process-a-class-option ((class ,metaclass)
28 (name (eql ,slot-name))
30 (when (and ,required (null value))
31 (error "metaclass ~A class slot ~A must have a value" (quote ,metaclass) name))
34 (declare (ignore metaclass slot-name required))
37 (defmacro process-slot-option (metaclass slot-name)
39 `(defmethod clos:process-a-slot-option ((class ,metaclass)
40 (option (eql ,slot-name))
42 already-processed-options
44 (list* option `',value already-processed-options))
46 (declare (ignore metaclass slot-name))