1 /*
2 * This file is part of Waarp Project (named also Waarp or GG).
3 *
4 * Copyright (c) 2019, Waarp SAS, 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 Waarp Project is free software: you can redistribute it and/or
9 * modify it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation, either version 3 of the License, or (at your
11 * option) any later version.
12 *
13 * Waarp is distributed in the hope that it will be useful, but WITHOUT ANY
14 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
15 * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License along with
18 * Waarp . If not, see <http://www.gnu.org/licenses/>.
19 */
20 package org.waarp.common.state;
21
22 import java.util.EnumSet;
23
24 /**
25 * Transition object that joins one state and one set of acceptable following
26 * states <br>
27 * <br>
28 * Note: the type EnumSet< ? > is in fact of type EnumSet< EnumState >
29 */
30 public class Transition<E extends Enum<E>> {
31
32 private E state;
33 private EnumSet<E> set;
34
35 public Transition(final E state, final EnumSet<E> set) {
36 setState(state);
37 setSet(set);
38 }
39
40 /**
41 * @return the state
42 */
43 public final E getState() {
44 return state;
45 }
46
47 /**
48 * @param state the state to set
49 */
50 public final void setState(final E state) {
51 this.state = state;
52 }
53
54 /**
55 * @return the set
56 */
57 public final EnumSet<E> getSet() {
58 return set;
59 }
60
61 /**
62 * @param set the set to set
63 */
64 public final void setSet(final EnumSet<E> set) {
65 this.set = set;
66 }
67 }