View Javadoc

1   package org.springframework.roo.shell.event;
2   
3   /**
4    * Implemented by shells that support the publication of shell status changes.
5    * 
6    * <p>
7    * Implementations are not required to provide any guarantees with respect to the order
8    * in which notifications are delivered to listeners.
9    * 
10   * <p>
11   * Implementations must permit modification of the listener list, even while delivering
12   * event notifications to listeners. However, listeners do not receive any guarantee that
13   * their addition or removal from the listener list will be effective or not for any event
14   * notification that is currently proceeding.
15   * 
16   * <p>
17   * Implementations must ensure that status notifications are only delivered when an actual
18   * change has taken place.
19   * 
20   * @author Ben Alex
21   * @since 1.0
22   *
23   */
24  public interface ShellStatusProvider {
25  	
26  	/**
27  	 * Registers a new status listener.
28  	 * 
29  	 * @param shellStatusListener to register (cannot be null)
30  	 */
31  	void addShellStatusListener(ShellStatusListener shellStatusListener);
32  	
33  	/**
34  	 * Removes an existing status listener.
35  	 * 
36  	 * <p>
37  	 * If the presented status listener is not found, the method returns without exception.
38  	 * 
39  	 * @param shellStatusListener to remove (cannot be null)
40  	 */
41  	void removeShellStatusListener(ShellStatusListener shellStatusListener);
42  	
43  	/**
44  	 * Returns the current shell status.
45  	 * 
46  	 * @return the current status (never null)
47  	 */
48  	ShellStatus getShellStatus();
49  }