// Path: com.polyhedral.security.testing.zedattackproxy/src/com/polyhedral/security/testing/zedattackproxy/events/IZAPEventHandler.java
// public interface IZAPEventHandler {
// 	public void addZAPEventListener(final IZAPEventListener listener);
// 
// 	public void removeZAPEventListener(final IZAPEventListener listener);
// 
// }
// 
// Path: com.polyhedral.security.testing.zedattackproxy/src/com/polyhedral/security/testing/zedattackproxy/events/IZAPEventListener.java
// public interface IZAPEventListener extends EventListener {
// 	public void handleZAPEvent(ZAPEventType eventType, ScanProgress scanProgress);
// }
// 
// Path: com.polyhedral.security.testing.zedattackproxy/src/com/polyhedral/security/testing/zedattackproxy/events/ZAPEventHandler.java
// public class ZAPEventHandler implements IZAPEventHandler {
// 	private ListenerList actionList = new ListenerList();
// 
// 	/**
// 	 * Add a ZAP event listener.
// 	 */
// 	public void addZAPEventListener(final IZAPEventListener listener) {
// 		actionList.add(listener);
// 	}
// 
// 	/**
// 	 * Fire a new ZAP event.
// 	 * 
// 	 * @param eventType
// 	 *            The {@link ZAPEventType} event that was triggered.
// 	 */
// 	public void fireZAPEvent(final ZAPEventType eventType) {
// 		final Object[] list = actionList.getListeners();
// 		for (int i = 0; i < list.length; ++i) {
// 			((IZAPEventListener) list[i]).handleZAPEvent(eventType, null);
// 		}
// 	}
// 
// 	/**
// 	 * Fire a new ZAP event. This event is part of a ZAP scan and includes
// 	 * {@link ScanProgress} information.
// 	 * 
// 	 * @param eventType
// 	 *            The {@link ZAPEventType} event that was triggered.
// 	 * @param scanProgress
// 	 *            The {@link ScanProgress} details to be reported with the
// 	 *            event.
// 	 */
// 	public void fireZAPEvent(final ZAPEventType eventType, ScanProgress scanProgress) {
// 		final Object[] list = actionList.getListeners();
// 		for (int i = 0; i < list.length; ++i) {
// 			((IZAPEventListener) list[i]).handleZAPEvent(eventType, scanProgress);
// 		}
// 	}
// 
// 	/**
// 	 * Remove a ZAP event listener.
// 	 */
// 	public void removeZAPEventListener(final IZAPEventListener listener) {
// 		actionList.remove(listener);
// 	}
// 
// }


import org.eclipse.jface.action.Action;
import com.polyhedral.security.testing.zedattackproxy.events.IZAPEventHandler;
import com.polyhedral.security.testing.zedattackproxy.events.IZAPEventListener;
import com.polyhedral.security.testing.zedattackproxy.events.ZAPEventHandler;

package com.polyhedral.security.testing.zedattackproxy.actions;



/**
 * Base class for all ZAP actions. Includes support for the
 * {@link IZAPEventHandler} interface.
 */
public abstract class ZAPAction extends Action implements IZAPEventHandler {

	private ZAPEventHandler zapEventHandler = new ZAPEventHandler();

	/**
	 * Add a new ZAP event listener.
	 */
	@Override

// Path: com.polyhedral.security.testing.zedattackproxy/src/com/polyhedral/security/testing/zedattackproxy/events/IZAPEventHandler.java
// public interface IZAPEventHandler {
// 	public void addZAPEventListener(final IZAPEventListener listener);
// 
// 	public void removeZAPEventListener(final IZAPEventListener listener);
// 
// }
// 
// Path: com.polyhedral.security.testing.zedattackproxy/src/com/polyhedral/security/testing/zedattackproxy/events/IZAPEventListener.java
// public interface IZAPEventListener extends EventListener {
// 	public void handleZAPEvent(ZAPEventType eventType, ScanProgress scanProgress);
// }
// 
// Path: com.polyhedral.security.testing.zedattackproxy/src/com/polyhedral/security/testing/zedattackproxy/events/ZAPEventHandler.java
// public class ZAPEventHandler implements IZAPEventHandler {
// 	private ListenerList actionList = new ListenerList();
// 
// 	/**
// 	 * Add a ZAP event listener.
// 	 */
// 	public void addZAPEventListener(final IZAPEventListener listener) {
// 		actionList.add(listener);
// 	}
// 
// 	/**
// 	 * Fire a new ZAP event.
// 	 * 
// 	 * @param eventType
// 	 *            The {@link ZAPEventType} event that was triggered.
// 	 */
// 	public void fireZAPEvent(final ZAPEventType eventType) {
// 		final Object[] list = actionList.getListeners();
// 		for (int i = 0; i < list.length; ++i) {
// 			((IZAPEventListener) list[i]).handleZAPEvent(eventType, null);
// 		}
// 	}
// 
// 	/**
// 	 * Fire a new ZAP event. This event is part of a ZAP scan and includes
// 	 * {@link ScanProgress} information.
// 	 * 
// 	 * @param eventType
// 	 *            The {@link ZAPEventType} event that was triggered.
// 	 * @param scanProgress
// 	 *            The {@link ScanProgress} details to be reported with the
// 	 *            event.
// 	 */
// 	public void fireZAPEvent(final ZAPEventType eventType, ScanProgress scanProgress) {
// 		final Object[] list = actionList.getListeners();
// 		for (int i = 0; i < list.length; ++i) {
// 			((IZAPEventListener) list[i]).handleZAPEvent(eventType, scanProgress);
// 		}
// 	}
// 
// 	/**
// 	 * Remove a ZAP event listener.
// 	 */
// 	public void removeZAPEventListener(final IZAPEventListener listener) {
// 		actionList.remove(listener);
// 	}
// 
// }


// Path: com.polyhedral.security.testing.zedattackproxy/src/com/polyhedral/security/testing/zedattackproxy/actions/ZAPAction.java
import org.eclipse.jface.action.Action;
import com.polyhedral.security.testing.zedattackproxy.events.IZAPEventHandler;
import com.polyhedral.security.testing.zedattackproxy.events.IZAPEventListener;
import com.polyhedral.security.testing.zedattackproxy.events.ZAPEventHandler;

package com.polyhedral.security.testing.zedattackproxy.actions;



/**
 * Base class for all ZAP actions. Includes support for the
 * {@link IZAPEventHandler} interface.
 */
public abstract class ZAPAction extends Action implements IZAPEventHandler {

	private ZAPEventHandler zapEventHandler = new ZAPEventHandler();

	/**
	 * Add a new ZAP event listener.
	 */
	@Override

	public void addZAPEventListener(IZAPEventListener listener) {
