View Javadoc

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  }