1 /* 2 * #%L 3 * EUGene :: EUGene 4 * %% 5 * Copyright (C) 2004 - 2010 CodeLutin 6 * %% 7 * This program is free software: you can redistribute it and/or modify 8 * it under the terms of the GNU Lesser General Public License as 9 * published by the Free Software Foundation, either version 3 of the 10 * License, or (at your option) any later version. 11 * 12 * This program is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * GNU General Lesser Public License for more details. 16 * 17 * You should have received a copy of the GNU General Lesser Public 18 * License along with this program. If not, see 19 * <http://www.gnu.org/licenses/lgpl-3.0.html>. 20 * #L% 21 */ 22 23 package org.nuiton.eugene.models.state; 24 25 import java.util.Collection; 26 27 /** 28 * StateModelComplexeState 29 * 30 * Represents a complex state that can be composed with a set of states. 31 * 32 * @author chatellier 33 */ 34 public interface StateModelComplexState extends StateModelState { 35 36 /** 37 * Return the states set 38 * 39 * @return a collection of states 40 */ 41 Collection<StateModelState> getStates(); 42 43 /** 44 * Return the non initial state pointed by the initial state of the state 45 * set. 46 * 47 * Exemple : 48 * myComplexeState = ( 49 * init1 -> state2 -> state3 -> final4 50 * ) 51 * 52 * myComplexeState.getInitialState() will return state2. 53 * 54 * @return a state 55 */ 56 StateModelState getInitialState(); 57 }