| Allegro CL version 10.1 Unrevised from 10.0 to 10.1. 10.0 version |
Arguments: class-name (&key lisp-supers static-slots java-slots lisp-slots java-file if-exists verbose connector) &rest java-methods
Evaluate (require :jlinkent)
to load this
functionality.
This macro generates an output file with Java code that defines a Java class. This macro also generates Lisp code corresponding to the Java class. See examples/jlinker/javabean/bean1gen.cl.
The arguments are:
name
(name name () :public)
(lisp-name java-name (java-super java-interface ... ) java-flag ... )
(lisp-superclass ... )
name
((name name :type :int :flags (:public :static)))
(slot-name accessor ... )
name
((name name :type :int :flags (:public)))
(slot-name accessor ... )
(lisp-name java-name JiL-slot-def... )
(clos-slot-def ... )
path-string OR T OR :none
:supersede OR :append OR nil
a JiL expression to test connection to Lisp.
Default: ("LispConnector.go" |false| |null|)
java-method
....
See below.
A java-method
is either a
lisp-and-java-name
or a list with the following
elements:
(method-name ([java-arg-type] ... ) [java-return-type [java-flag] ... [result-modifier]])
The elements are:
(lisp-name
java-name)
or a lisp-and-java-name
.
:public
| :static
| :synchronized
:copy
| :ref
| :oneway
| :ignore
This macro defines a Java method that calls the Lisp function. The Lisp function must be separately defined by the programmer.
When a method-name is specified as a list, the lisp-name should be a symbol and the java-name may be a symbol or a string. When method-name is specified as lisp-and-java-name, and lisp-and-java-name is a symbol, then the symbol-name string is used as the Java name. This is likely to be the correct Java name only in a Modern (case-sensitive) Allegro CL images (see case.htm).
When lisp-and-java-name is a string, the Lisp symbol is taken to be
the result of read-from-string
from a string of the form "ppp::sss" where ppp
is
the name of the current package and sss
is the name
string.
When a def-java-to-lisp-wrapper form is compiled (or evaluated) we write Java code definitions in the specified files. These definitions create Java classes where each method calls the corresponding Lisp function or method
In the Lisp environment, we create a Lisp class with def-java-class to represent the Java class.
The Lisp functions or methods must be separately defined by the programmer. See the file examples/jlinker/javabean/bean1.cl.
See jlinker.htm for more information on the jLinker facility.
Copyright (c) 1998-2022, Franz Inc. Lafayette, CA., USA. All rights reserved.
This page was not revised from the 10.0 page.
Created 2019.8.20.
| Allegro CL version 10.1 Unrevised from 10.0 to 10.1. 10.0 version |