1 /* 2 * Copyright (c) 2002, 2003, Oracle and/or its affiliates. All rights reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. Oracle designates this 8 * particular file as subject to the "Classpath" exception as provided 9 * by Oracle in the LICENSE file that accompanied this code. 10 * 11 * This code is distributed in the hope that it will be useful, but WITHOUT 12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 * version 2 for more details (a copy is included in the LICENSE file that 15 * accompanied this code). 16 * 17 * You should have received a copy of the GNU General Public License version 18 * 2 along with this work; if not, write to the Free Software Foundation, 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 * 21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 * or visit www.oracle.com if you need additional information or have any 23 * questions. 24 */ 25 26 package com.sun.corba.se.spi.orbutil.fsm ; 27 28 import com.sun.corba.se.impl.orbutil.fsm.NameBase ; 29 30 import java.util.Map ; 31 import java.util.HashMap ; 32 import java.util.Set ; 33 import java.util.HashSet ; 34 35 import com.sun.corba.se.impl.orbutil.fsm.GuardedAction ; 36 import com.sun.corba.se.impl.orbutil.fsm.NameBase ; 37 38 /** Base class for all states in a StateEngine. This must be used 39 * as the base class for all states in transitions added to a StateEngine. 40 */ 41 public class StateImpl extends NameBase implements State { 42 private Action defaultAction ; 43 private State defaultNextState ; 44 private Map inputToGuardedActions ; 45 StateImpl( String name )46 public StateImpl( String name ) 47 { 48 super( name ) ; 49 defaultAction = null ; 50 inputToGuardedActions = new HashMap() ; 51 } 52 preAction( FSM fsm )53 public void preAction( FSM fsm ) 54 { 55 } 56 postAction( FSM fsm )57 public void postAction( FSM fsm ) 58 { 59 } 60 61 // Methods for use only by StateEngineImpl. 62 getDefaultNextState()63 public State getDefaultNextState() 64 { 65 return defaultNextState ; 66 } 67 setDefaultNextState( State defaultNextState )68 public void setDefaultNextState( State defaultNextState ) 69 { 70 this.defaultNextState = defaultNextState ; 71 } 72 getDefaultAction()73 public Action getDefaultAction() 74 { 75 return defaultAction ; 76 } 77 setDefaultAction( Action defaultAction )78 public void setDefaultAction( Action defaultAction ) 79 { 80 this.defaultAction = defaultAction ; 81 } 82 addGuardedAction( Input in, GuardedAction ga )83 public void addGuardedAction( Input in, GuardedAction ga ) 84 { 85 Set gas = (Set)inputToGuardedActions.get( in ) ; 86 if (gas == null) { 87 gas = new HashSet() ; 88 inputToGuardedActions.put( in, gas ) ; 89 } 90 91 gas.add( ga ) ; 92 } 93 getGuardedActions( Input in )94 public Set getGuardedActions( Input in ) 95 { 96 return (Set)inputToGuardedActions.get( in ) ; 97 } 98 } 99