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   /**
10   * This interface defines additional Registry Lifecycle methods to enable extenral objects to have there
11   * lifecycle managed by the registry.
12   *
13   * @since 3.0
14   */
15  public interface RegistryLifecycleHelpers
16  {
17      /**
18       * Applies lifecycle phase to an object independent of the current lifecycle phase. All phases between the current
19       * phase and the 'endPhase' will be executed.
20       * @param object the object to apply lifecycle to
21       * @param fromPhase the lifecycle phase the object is currently in. Must not be null.
22       * @param toPhase the lifecycle phase to transition the object to. Must not be null.
23       * @throws org.mule.api.lifecycle.LifecycleException if there is an exception while invoking lifecycle on the object
24       */
25      void applyPhase(Object object, String fromPhase, String toPhase) throws LifecycleException;
26  
27      /**
28       * Successively applies all completed lifecycle phase to an object.
29       *
30       * @param object the object to which the lifecycle should be applied
31       * @throws org.mule.api.lifecycle.LifecycleException if there is an error while applying lifecycle to the object
32       */
33      void applyCompletedPhases(Object object) throws LifecycleException;
34  }