Implémentation de l'exécution pour le traitement d'erreurs

Les événements nécessitant un traitement d'erreurs à l'exécution doivent avoir une action errorBehavior associée. Etendez la classe RPTEventGenerator pour spécifier le comportement appliqué aux événements.

Les objets KAction traitent les événements en implémentant la méthode IRPTEventHandler. A l'occurrence d'un événement tel qu'un échec à un point de vérification ou un échec de connexion, émettez l'appel suivant à destination de l'objet KAction qui est le parent de l'événement :

KAction.registerEvent(eventType, eventBehavior);

Dans l'exemple précédent, le paramètre eventType est le type d'échec. Le paramètre eventBehavior est l'action à entreprendre lorsque l'échec se produit.

Durant la procédure KAction.finish(), tous les comportements des événements enregistrés sont traités. Les comportements enregistrés pour un événement spécifique sont traités. Les comportements applicables, spécifiés à un plus haut niveau dans la hiérarchie des événements, sont traités.

Le code suivant implémente la classe 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;
	}
}

Les exemples de code suivants montrent comment implémenter le traitement d'erreurs à l'exécution pour la classe 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);
	}
}

Le comportement appliqué à un échec de connexion à un serveur inclut à présent le code suivant :

	registerEvent(((IRPTEventGenerator)m_Request.getServerConnection()).getEventType(), ((IRPTEventGenerator)m_Request.getServerConnection()).getEventBehavior());

Commentaires