OSDN Git Service

remove Revision tag
[stigmata/stigmata.git] / src / main / java / jp / sourceforge / stigmata / hook / MultipleStigmataHook.java
1 package jp.sourceforge.stigmata.hook;
2
3 /*
4  * $Id$
5  */
6
7 import java.util.ArrayList;
8 import java.util.List;
9
10 import jp.sourceforge.stigmata.BirthmarkContext;
11 import jp.sourceforge.stigmata.BirthmarkEnvironment;
12
13 /**
14  * 
15  * @author Haruaki Tamada
16  */
17 public class MultipleStigmataHook implements StigmataHook, StigmataRuntimeHook{
18     private List<StigmataHook> hooks = new ArrayList<StigmataHook>();
19     private List<StigmataRuntimeHook> runtimeHooks = new ArrayList<StigmataRuntimeHook>();
20
21     @Override
22     public void onHook(Phase phase, BirthmarkContext context){
23         for(StigmataRuntimeHook hook: runtimeHooks){
24             if(hook != null){
25                 hook.onHook(phase, context);
26             }
27         }
28     }
29
30     @Override
31     public void onHook(Phase phase, BirthmarkEnvironment env){
32         for(StigmataHook hook: hooks){
33             if(hook != null){
34                 hook.onHook(phase, env);
35             }
36         }
37     }
38
39     public void addHook(StigmataHook hook){
40         hooks.add(hook);
41     }
42
43     public void removeHook(StigmataHook hook){
44         hooks.remove(hook);
45     }
46
47     public int getHookCount(){
48         return hooks.size();
49     }
50
51     public StigmataHook getHook(int index){
52         return hooks.get(index);
53     }
54
55     public void addRuntimeHook(StigmataRuntimeHook hook){
56         runtimeHooks.add(hook);
57     }
58
59     public void removeRuntimeHook(StigmataRuntimeHook hook){
60         runtimeHooks.remove(hook);
61     }
62
63     public int getRuntimeHookCount(){
64         return runtimeHooks.size();
65     }
66
67     public StigmataRuntimeHook getRuntimeHook(int index){
68         return runtimeHooks.get(index);
69     }
70 }