// IExecutableManagerListener.java
package org.eclipse.stem.jobs.execution;

/*******************************************************************************
 * Copyright (c) 2008 IBM Corporation and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/

/**
 * This interface is extended by classes that wish to be informed of changes to
 * the state of an {@link ExecutableManager}s.
 */
public interface IExecutableManagerListener {
	// Nothing
} // IExecutableManagerListener