View Javadoc

1   /**
2      This file is part of GoldenGate Project (named also GoldenGate or GG).
3   
4      Copyright 2009, Frederic Bregier, and individual contributors by the @author
5      tags. See the COPYRIGHT.txt in the distribution for a full listing of
6      individual contributors.
7   
8      All GoldenGate Project is free software: you can redistribute it and/or 
9      modify it under the terms of the GNU General Public License as published 
10     by the Free Software Foundation, either version 3 of the License, or
11     (at your option) any later version.
12  
13     GoldenGate is distributed in the hope that it will be useful,
14     but WITHOUT ANY WARRANTY; without even the implied warranty of
15     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16     GNU General Public License for more details.
17  
18     You should have received a copy of the GNU General Public License
19     along with GoldenGate .  If not, see <http://www.gnu.org/licenses/>.
20   */
21  package goldengate.common.state.example;
22  
23  import goldengate.common.state.Transition;
24  
25  import java.util.EnumSet;
26  
27  /**
28   * Example of EnumState enum class
29   * 
30   * @author Frederic Bregier
31   *
32   */
33  public enum ExampleEnumState {
34      RUNNING, PAUSED, CONFIGURING, RESET, ENDED;
35      
36      public enum ExampleTransition {
37          tRUNNING(RUNNING, EnumSet.of(PAUSED, ENDED)),
38          tPAUSED(PAUSED, EnumSet.of(RUNNING, RESET, CONFIGURING)),
39          tENDED(ENDED, EnumSet.of(RESET)),
40          tCONFIGURING(CONFIGURING, EnumSet.of(PAUSED)),
41          tRESET(RESET, EnumSet.of(PAUSED, RESET));
42          
43          public Transition<ExampleEnumState> elt;
44          private ExampleTransition(ExampleEnumState state, EnumSet<ExampleEnumState> set) {
45              this.elt = new Transition<ExampleEnumState>(state, set);
46          }
47      }
48  
49  }