KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > net > sourceforge > groboutils > mbtf > v1 > IState


1 /*
2  * @(#)IState.java
3  *
4  * Copyright (C) 2002-2003 Matt Albrecht
5  * groboclown@users.sourceforge.net
6  * http://groboutils.sourceforge.net
7  *
8  * Part of the GroboUtils package at:
9  * http://groboutils.sourceforge.net
10  *
11  * Permission is hereby granted, free of charge, to any person obtaining a
12  * copy of this software and associated documentation files (the "Software"),
13  * to deal in the Software without restriction, including without limitation
14  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
15  * and/or sell copies of the Software, and to permit persons to whom the
16  * Software is furnished to do so, subject to the following conditions:
17  *
18  * The above copyright notice and this permission notice shall be included in
19  * all copies or substantial portions of the Software.
20  *
21  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
22  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
23  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
24  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
25  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
26  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
27  * DEALINGS IN THE SOFTWARE.
28  */

29 package net.sourceforge.groboutils.mbtf.v1;
30
31
32 /**
33  * Associates a system state with the transitions leading out of the state,
34  * and with the validation of the state. The state object should be immutable
35  * once the path generation begins.
36  *
37  * @author Matt Albrecht <a HREF="mailto:groboclown@users.sourceforge.net">groboclown@users.sourceforge.net</a>
38  * @version $Date: 2003/02/10 22:52:25 $
39  * @since June 12, 2002
40  */

41 public interface IState
42 {
43     /**
44      * Retrieves the name for the state. This should be unique for
45      * state-machine assembly purposes, but it does not have to be.
46      *
47      * @return a non-null name for this state.
48      */

49     public String JavaDoc getName();
50     
51     
52     /**
53      * Retrieves the list of transitions leading from this state.
54      *
55      * @return a non-null list of all transitions from this state. If the
56      * length of the list is 0, then this is a terminal state.
57      */

58     public ITransition[] getTransitions();
59     
60     
61     /**
62      * Retrieves the list of all validation instances used to assert that
63      * the current state is valid.
64      *
65      * @return a non-null list of all validation instances for this state.
66      * An empty list will cause a warning on all but the first
67      * (initial) state. This list should not include the included
68      * Transitions' validates.
69      */

70     public IValidate[] getValidates();
71 }
72
73
Popular Tags