View Javadoc

1   package org.inigma.utopia.paper;
2   
3   import java.util.logging.Level;
4   import java.util.logging.Logger;
5   
6   import org.inigma.utopia.paper.events.AbstractEvent;
7   import org.inigma.utopia.paper.events.AidEvent;
8   import org.inigma.utopia.paper.events.AttackEvent;
9   import org.inigma.utopia.paper.events.CancelCeaseFireEvent;
10  import org.inigma.utopia.paper.events.CaptureLandEvent;
11  import org.inigma.utopia.paper.events.CeaseFireEvent;
12  import org.inigma.utopia.paper.events.DefectEvent;
13  import org.inigma.utopia.paper.events.DragonSentEvent;
14  import org.inigma.utopia.paper.events.DragonStartEvent;
15  import org.inigma.utopia.paper.events.KilledEvent;
16  import org.inigma.utopia.paper.events.MassacreEvent;
17  import org.inigma.utopia.paper.events.RelationsEvent;
18  import org.inigma.utopia.paper.events.UnknownEvent;
19  import org.inigma.utopia.paper.events.WarBeganEvent;
20  import org.inigma.utopia.paper.events.WarDeclaredEvent;
21  import org.inigma.utopia.paper.events.WarLoseEvent;
22  import org.inigma.utopia.paper.events.WarWinEvent;
23  
24  public enum PaperEvent {
25      Aid(AidEvent.class),
26      Attack(AttackEvent.class),
27      CancelCeaseFire(CancelCeaseFireEvent.class),
28      CeaseFire(CeaseFireEvent.class),
29      CaptureLand(CaptureLandEvent.class), // TODO Need Raze and Intrakingdom still
30      Defect(DefectEvent.class), // TODO
31      DragonSent(DragonSentEvent.class),
32      DragonStart(DragonStartEvent.class),
33      Killed(KilledEvent.class),
34      Massacred(MassacreEvent.class),
35      Relations(RelationsEvent.class), // TODO
36      WarBegan(WarBeganEvent.class), // TODO
37      WarDeclared(WarDeclaredEvent.class),
38      WarLose(WarLoseEvent.class), // TODO
39      WarWin(WarWinEvent.class), // TODO
40  //    Unknown(UnknownEvent.class)
41  ;
42      private AbstractEvent eventTemplate;
43  
44      private PaperEvent(Class<? extends AbstractEvent> eventType) {
45          Logger localLog = Logger.getLogger(getClass().getName());
46          try {
47              eventTemplate = eventType.newInstance();
48          } catch (InstantiationException e) {
49              localLog.log(Level.SEVERE, "TODO", e);
50          } catch (IllegalAccessException e) {
51              localLog.log(Level.SEVERE, "TODO", e);
52          }
53      }
54  
55      public AbstractEvent getEvent(String text) {
56          return eventTemplate.getEvent(text);
57      }
58  }