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