View Javadoc
1   /*
2    * Copyright (c) MuleSoft, Inc.  All rights reserved.  http://www.mulesoft.com
3    * The software in this package is published under the terms of the CPAL v1.0
4    * license, a copy of which has been included with this distribution in the
5    * LICENSE.txt file.
6    */
7   package org.mule.api.lifecycle;
8   
9   import org.mule.lifecycle.LifecycleObject;
10  
11  import java.util.Set;
12  
13  /**
14   * Encapsulates the notion of a lifecycle phase i.e. 'stop'.  Implementations of this class are responsible
15   * for invoking the lifecycle phase on a set of objects and also for knowing which phases can preceed and go
16   * after it.  This objects are configurable so that lifecycles can be customised.
17   *
18   * Note that users wouldn't normally customise the lifecycle of the server.
19   */
20  
21  public interface LifecyclePhase
22  {
23      
24      String ALL_PHASES = "all";
25  
26      void addOrderedLifecycleObject(LifecycleObject lco);
27  
28      void removeOrderedLifecycleObject(LifecycleObject lco);
29  
30      Set<LifecycleObject> getOrderedLifecycleObjects();
31  
32      void setOrderedLifecycleObjects(Set<LifecycleObject> orderedLifecycleObjects);
33  
34      Class<?>[] getIgnoredObjectTypes();
35  
36      void setIgnoredObjectTypes(Class<?>[] ignorredObjectTypes);
37  
38      Class<?> getLifecycleClass();
39  
40      void setLifecycleClass(Class<?> lifecycleClass);
41  
42      String getName();
43  
44      Set<String> getSupportedPhases();
45  
46      void setSupportedPhases(Set<String> supportedPhases);
47  
48      void registerSupportedPhase(String phase);
49  
50      boolean isPhaseSupported(String phase);
51  
52      void applyLifecycle(Object o) throws LifecycleException;
53  
54      String getOppositeLifecyclePhase();
55  
56  }