1 package jp.sourceforge.stigmata.hook;
7 import java.util.ArrayList;
10 import jp.sourceforge.stigmata.BirthmarkContext;
11 import jp.sourceforge.stigmata.BirthmarkEnvironment;
15 * @author Haruaki Tamada
17 public class MultipleStigmataHook implements StigmataHook, StigmataRuntimeHook{
18 private List<StigmataHook> hooks = new ArrayList<StigmataHook>();
19 private List<StigmataRuntimeHook> runtimeHooks = new ArrayList<StigmataRuntimeHook>();
22 public void onHook(Phase phase, BirthmarkContext context){
23 for(StigmataRuntimeHook hook: runtimeHooks){
25 hook.onHook(phase, context);
31 public void onHook(Phase phase, BirthmarkEnvironment env){
32 for(StigmataHook hook: hooks){
34 hook.onHook(phase, env);
39 public void addHook(StigmataHook hook){
43 public void removeHook(StigmataHook hook){
47 public int getHookCount(){
51 public StigmataHook getHook(int index){
52 return hooks.get(index);
55 public void addRuntimeHook(StigmataRuntimeHook hook){
56 runtimeHooks.add(hook);
59 public void removeRuntimeHook(StigmataRuntimeHook hook){
60 runtimeHooks.remove(hook);
63 public int getRuntimeHookCount(){
64 return runtimeHooks.size();
67 public StigmataRuntimeHook getRuntimeHook(int index){
68 return runtimeHooks.get(index);