Los objetos KAction gestionan sucesos mediante la implementación del método IRPTEventHandler. Cuando se produzca un suceso, como por ejemplo, un error de conexión o del punto de verificación, realice la siguiente llamada al objeto KAction que es el padre del suceso:
KAction.registerEvent(eventType, eventBehavior);
En el ejemplo anterior, el parámetro eventType corresponde al tipo de error. El parámetro eventBehavior es la acción que se realizará cuando se produzca tal condición.
Durante el procedimiento KAction.finish(), se procesan todos los comportamientos de suceso registrados. Se procesan los comportamientos registrados para un suceso específico. Se procesan los comportamientos aplicables que se especifican en un nivel superior en la jerarquía de sucesos.
El código siguiente implementa la clase RPTEventGenerator:
public abstract class RPTEventGenerator implements IRPTEventGenerator{
RPTEvent behavior = null;
boolean behaviorSet = false;
IKAction act = null;
RPTEvent eventType;
public void setEventBehavior(IKAction act, RPTEvent eventType, RPTEvent behavior){
behaviorSet = true;
this.behavior = behavior;
this.act = act;
this.eventType = eventType;
}
public RPTEvent getEventBehavior(){
return behavior;
}
public RPTEvent getEventType(){
return eventType;
}
public KAction getAction(){
return act;
}
}
En los siguientes ejemplos de código se muestra cómo implementar la gestión de errores durante el tiempo de ejecución de la clase ServerConnection.
public class ServerConnection extends RPTEventGenerator implements IServerConnection {
public ServerConnection(String name, int port, ISSLInfo sslInfo,
INtlmAuthenticationContext ntlmContext,
IProxyServerInfo proxyServerInfo,
boolean closeWhenTestCompletes, RPTEvent behav) {
this.serverAddr = new InetAddressInfo(name, port);
this.sslInfo = sslInfo;
this.ntlmCxt = ntlmContext;
this.proxyInfo = proxyServerInfo;
this.inUse = true;
this.closeWhenTestCompletes = closeWhenTestCompletes;
setEventBehavior(null, new RPTConnectEvent(), behav);
}
}
El comportamiento de un error de conexión de servidor ahora incluye el código siguiente:
registerEvent(((IRPTEventGenerator)m_Request.getServerConnection()).getEventType(), ((IRPTEventGenerator)m_Request.getServerConnection()).getEventBehavior());