/***************************************************
*
* cismet GmbH, Saarbruecken, Germany
*
* ... and it just works.
*
****************************************************/
package de.cismet.reconnector.rmi;
import java.rmi.Remote;
import javax.swing.JFrame;
/**
* DOCUMENT ME!
*
* @author jruiz
* @version $Revision$, $Date$
*/
public abstract class RmiReconnectorProxyFactory {
//~ Methods ----------------------------------------------------------------
/**
* Erzeugt einen Dynamischen ReconnectorProxy ohne graphische Oberfläche (unattended). Das Wiederverbinden bei
* Verbindungsabbrüchen wird automatisch angestoßen.
*
* @param serviceClass Remote-Interface des zu erzeugenen Proxy
* @param serviceName Name des RMI-Dienstes
*
* @return Dynamischer ReconnectorProxy des gewählten RMI-Dienstes
*/
public static Remote createReconnectorProxy(final Class<? extends Remote> serviceClass, final String serviceName) {
return createReconnectorProxy(serviceClass, serviceName, false, null);
}
/**
* Erzeugt einen Dynamischen ReconnectorProxy mit graphischer Oberfläche in Form eines Dialogs.
*
* @param serviceClass Remote-Interface des zu erzeugenen Proxy
* @param serviceName Name des RMI-Dienstes
*
* @return Dynamischer ReconnectorProxy des gewählten RMI-Dienstes
*/
public static Remote createReconnectorProxyWithDialog(final Class<? extends Remote> serviceClass,
final String serviceName) {
return createReconnectorProxy(serviceClass, serviceName, true, null);
}
/**
* Erzeugt einen Dynamischen ReconnectorProxy mit graphischer Oberfläche in Form eines Dialogs.
*
* @param serviceClass Remote-Interface des zu erzeugenen Proxy
* @param serviceName Name des RMI-Dienstes
* @param parentFrame Vater-Frame des RmiReconnector-Dialoges
*
* @return Dynamischer ReconnectorProxy des gewählten RMI-Dienstes
*/
public static Remote createReconnectorProxyWithDialog(final Class<? extends Remote> serviceClass,
final String serviceName,
final JFrame parentFrame) {
return createReconnectorProxy(serviceClass, serviceName, true, parentFrame);
}
/**
* Erzeugt einen Dynamischen ReconnectorProxy mit oder ohne graphische Oberfläche in Form eines Dialogs.
*
* @param serviceClass Remote-Interface des zu erzeugenen Proxy
* @param serviceName Name des RMI-Dienstes
* @param useDialog Soll ein ReconnectorDialog verwendet werden
* @param parentFrame Vater-Frame des RmiReconnector-Dialoges
*
* @return Dynamischer ReconnectorProxy des gewählten RMI-Dienstes
*/
public static Remote createReconnectorProxy(final Class<? extends Remote> serviceClass,
final String serviceName,
final boolean useDialog,
final JFrame parentFrame) {
// RmiReconnector erzeugen
final RmiReconnector reconnector = new RmiReconnector(serviceClass, serviceName);
// mit oder ohne Benutzung eines Dialogs
reconnector.useDialog(useDialog, parentFrame);
// ReconnectorProxy zurückliefern.
return (Remote)reconnector.getProxy();
}
}