1
2
3
4
5
6
7 package org.mule.lifecycle;
8
9 import org.mule.api.MuleException;
10 import org.mule.api.lifecycle.Disposable;
11 import org.mule.api.lifecycle.Initialisable;
12 import org.mule.api.lifecycle.LifecycleCallback;
13 import org.mule.api.lifecycle.LifecycleException;
14 import org.mule.api.lifecycle.Startable;
15 import org.mule.api.lifecycle.Stoppable;
16 import org.mule.lifecycle.phases.NotInLifecyclePhase;
17
18
19
20
21
22
23
24
25
26
27
28 public abstract class SimpleLifecycleManager<O> extends AbstractLifecycleManager<O>
29 {
30 public SimpleLifecycleManager(String id, O object)
31 {
32 super(id, object);
33 }
34
35 @Override
36 protected void registerTransitions()
37 {
38
39 addDirectTransition(NotInLifecyclePhase.PHASE_NAME, Initialisable.PHASE_NAME);
40 addDirectTransition(NotInLifecyclePhase.PHASE_NAME, Disposable.PHASE_NAME);
41 addDirectTransition(Initialisable.PHASE_NAME, Startable.PHASE_NAME);
42
43
44 addDirectTransition(Initialisable.PHASE_NAME, Stoppable.PHASE_NAME);
45 addDirectTransition(Initialisable.PHASE_NAME, Disposable.PHASE_NAME);
46
47
48 addDirectTransition(Startable.PHASE_NAME, Stoppable.PHASE_NAME);
49 addDirectTransition(Stoppable.PHASE_NAME, Startable.PHASE_NAME);
50 addDirectTransition(Stoppable.PHASE_NAME, Disposable.PHASE_NAME);
51 }
52
53 public void fireLifecycle(String phase) throws LifecycleException
54 {
55 throw new UnsupportedOperationException("SimpleLifecycleManager.fireLifecycle");
56 }
57
58 public abstract void fireInitialisePhase(LifecycleCallback<O> callback) throws MuleException;
59
60 public abstract void fireStartPhase(LifecycleCallback<O> callback) throws MuleException;
61
62 public abstract void fireStopPhase(LifecycleCallback<O> callback) throws MuleException;
63
64 public abstract void fireDisposePhase(LifecycleCallback<O> callback) throws MuleException;
65 }