public class RMIWrap
extends java.lang.Object
Vona's Utils: Generates wrappers that handle RemoteException.
This is a utility that eases the pain of adding RMI capability to an arbitrary class. It is a sourcecode generator which takes two inputs
main()
method that runs a stand-alone RMI server, starting its
own RegistryRuntimeRemoteException
s, which,
unlike RemoteException, are unchecked.Convenience utilities are built into the makefile to ease the invocation
of RMIWrap (and rmic). See the package vona.rmi.rmiwrap.test
for a demo of how to use RMIWrap.
Copyright (C) 2005, Marsette A. Vona, III
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
Modifier and Type | Class and Description |
---|---|
protected static class |
RMIWrap.ClientWriter
Write foo.ImplClient from foo.API.
|
protected static class |
RMIWrap.ImplementationWriter
Base class for the implementation writers.
|
protected static class |
RMIWrap.InterfaceWriter
Writes foo.APIRemote from foo.API.
|
protected static class |
RMIWrap.ServerWriter
Write foo.ImplServer from foo.API.
|
protected static class |
RMIWrap.WrapperBodyWriter
Encapsulates the ability to write the body of a wrapper class.
|
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
CLIENT_API_EXCEPTION_HANDLER_JAVADOC
Javadoc for client API exception handler methods.
|
static java.lang.String |
CLIENT_API_METHOD_JAVADOC
Javadoc for client API methods.
|
static java.lang.String |
CLIENT_DIRECT_CONSTRUCTOR_JAVADOC
Javadoc for client direct constructor.
|
static java.lang.String |
CLIENT_GENERIC_EXCEPTION_HANDLER_JAVADOC
Javadoc for client generic exception handler.
|
static java.lang.String |
CLIENT_GENERIC_SHORT_CIRCUIT_HANDLER_JAVADOC
Javadoc for client generic short circuit handler.
|
static java.lang.String |
CLIENT_INDIRECT_CONSTRUCTOR_EXCEPTION_HANDLER_JAVADOC
Javadoc for client indirect constructor exception handler.
|
static java.lang.String |
CLIENT_INDIRECT_CONSTRUCTOR_JAVADOC
Javadoc for client indirect constructor.
|
static java.lang.String |
CLIENT_REMOTE_INSTANCE_JAVADOC
Javadoc for client remote instance field.
|
static java.lang.String |
CLIENT_WRAPPER_JAVADOC
Class header doc for the client wrapper.
|
private static java.lang.String |
cvsid
CVS id.
|
static java.lang.String |
GEN_HEADER
Header string identifies generated files.
|
static java.lang.String |
INTERFACE_API_METHOD_JAVADOC
Javadoc for remote interface wrapper API methods.
|
static java.lang.String |
REMOTE_WRAPPER_JAVADOC
Class header doc for the remote API wrapper.
|
static java.lang.String |
SERVER_API_METHOD_JAVADOC
Javadoc for server API methods.
|
static java.lang.String |
SERVER_AUTOMATIC_CONSTRUCTOR_JAVADOC
Javadoc for the server automatic constructor.
|
static java.lang.String |
SERVER_CONSTRUCTOR_JAVADOC
Javadoc for the server constructor.
|
static java.lang.String |
SERVER_LOCAL_INSTANCE_JAVADOC
Javadoc for the server local instance member.
|
static java.lang.String |
SERVER_MAIN_JAVADOC
Javadoc for the server main method.
|
static java.lang.String |
SERVER_WRAPPER_JAVADOC
Class header doc for the server wrapper.
|
static java.lang.String |
USAGE
Usage message.
|
static java.lang.String |
WRAPPER_LICENSE_JAVADOC
Javadoc for the wrapper license.
|
Constructor and Description |
---|
RMIWrap() |
Modifier and Type | Method and Description |
---|---|
protected static java.lang.String |
getPackageName(java.lang.String name)
Get the package spec from a class name.
|
protected static java.lang.String |
getSimpleName(java.lang.String name)
Get the simple name of a class (the name without any package spec).
|
protected static java.lang.String |
getTypeName(java.lang.Class type)
Get the name of a class.
|
static void |
main(java.lang.String[] arg)
See
USAGE and the class header doc. |
protected static void |
writeWrapper(java.lang.String baseName,
java.lang.String ext,
java.lang.String type,
RMIWrap.WrapperBodyWriter wrapperBodyWriter,
java.lang.String wrapperJavadoc)
Write a wrapper.
|
private static final java.lang.String cvsid
CVS id.
public static final java.lang.String USAGE
Usage message.
public static final java.lang.String GEN_HEADER
Header string identifies generated files.
public static final java.lang.String INTERFACE_API_METHOD_JAVADOC
Javadoc for remote interface wrapper API methods.
public static final java.lang.String CLIENT_REMOTE_INSTANCE_JAVADOC
Javadoc for client remote instance field.
public static final java.lang.String CLIENT_DIRECT_CONSTRUCTOR_JAVADOC
Javadoc for client direct constructor.
public static final java.lang.String CLIENT_INDIRECT_CONSTRUCTOR_JAVADOC
Javadoc for client indirect constructor.
public static final java.lang.String CLIENT_INDIRECT_CONSTRUCTOR_EXCEPTION_HANDLER_JAVADOC
Javadoc for client indirect constructor exception handler.
public static final java.lang.String CLIENT_GENERIC_EXCEPTION_HANDLER_JAVADOC
Javadoc for client generic exception handler.
public static final java.lang.String CLIENT_GENERIC_SHORT_CIRCUIT_HANDLER_JAVADOC
Javadoc for client generic short circuit handler.
public static final java.lang.String CLIENT_API_METHOD_JAVADOC
Javadoc for client API methods.
public static final java.lang.String CLIENT_API_EXCEPTION_HANDLER_JAVADOC
Javadoc for client API exception handler methods.
public static final java.lang.String SERVER_LOCAL_INSTANCE_JAVADOC
Javadoc for the server local instance member.
public static final java.lang.String SERVER_CONSTRUCTOR_JAVADOC
Javadoc for the server constructor.
public static final java.lang.String SERVER_AUTOMATIC_CONSTRUCTOR_JAVADOC
Javadoc for the server automatic constructor.
public static final java.lang.String SERVER_MAIN_JAVADOC
Javadoc for the server main method.
public static final java.lang.String SERVER_API_METHOD_JAVADOC
Javadoc for server API methods.
public static final java.lang.String WRAPPER_LICENSE_JAVADOC
Javadoc for the wrapper license.
public static final java.lang.String REMOTE_WRAPPER_JAVADOC
Class header doc for the remote API wrapper.
public static final java.lang.String CLIENT_WRAPPER_JAVADOC
Class header doc for the client wrapper.
public static final java.lang.String SERVER_WRAPPER_JAVADOC
Class header doc for the server wrapper.
public static void main(java.lang.String[] arg)
See USAGE
and the class header doc.
protected static void writeWrapper(java.lang.String baseName, java.lang.String ext, java.lang.String type, RMIWrap.WrapperBodyWriter wrapperBodyWriter, java.lang.String wrapperJavadoc)
Write a wrapper.
baseName
- the base of the wrapper class nameext
- the suffix of the wrapper class nametype
- the type of wrapper, "class" or "interface"wrapperBodyWriter
- the body writerwrapperJavadoc
- the class header javadoc for the wrapperprotected static java.lang.String getSimpleName(java.lang.String name)
Get the simple name of a class (the name without any package spec).
name
- the class name, with or without package specprotected static java.lang.String getPackageName(java.lang.String name)
Get the package spec from a class name.
name
- the class name, with or without package specprotected static java.lang.String getTypeName(java.lang.Class type)
Get the name of a class.
type
- the classtype