Implementing execution for error handling
Events that require error
handling at run time must have an associated errorBehavior
action. Extend the RPTEventGenerator class to
specify event behaviors.
KAction
objects handle events by implementing
the IRPTEventHandler method. When an event such
as a verification-point failure or connection failure occurs, make
the following call to the KAction
object that is
the parent of the event:
KAction.registerEvent(eventType, eventBehavior);
In the previous example, the eventType parameter is the type of failure. The eventBehavior parameter is the action to take when the failure occurs.
During the KAction.finish()
procedure, all registered
event behaviors are processed. Behaviors that are registered for a
specific event are processed. Applicable behaviors that are specified
at a higher level in the event hierarchy are processed.
The following code implements the RPTEventGenerator class:
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;
}
}
The following code examples demonstrate how to implement error handling at run time for the ServerConnection class.
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);
}
}
The behavior for a server connection failure now includes the following code:
registerEvent(((IRPTEventGenerator)m_Request.getServerConnection()).getEventType(), ((IRPTEventGenerator)m_Request.getServerConnection()).getEventBehavior());