1 /*
2 * Copyright (C) 2006 Tom Gibara
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17 */
18 package com.tomgibara.pronto.state;
19
20 /**
21 * A path type is used to constrain the selection of paths from a state graph.
22 * Each type constrains the transitions of a path in a different way.
23 *
24 * @author Tom Gibara
25 */
26
27 public enum PathType {
28
29 /**
30 * Any path created with this type is guaranteed to contain any given
31 * transition at most once.
32 */
33
34 uniqueTransitions,
35
36 /**
37 * Any path created with this type is guaranteed to visit any given state at
38 * most once with the exception of the initial state which may be (but is
39 * not necessarily) visited twice. This is useful in situations where one
40 * needs to identify paths which originate and terminate at the same state.
41 */
42
43 uniqueStates,
44
45 /**
46 * Any path created with this type is guaranteed to visit any given state at
47 * most once.
48 */
49
50 strictlyUniqueStates
51
52 }