| State |

    1   /*
    2    * State.java
    3    *
    4    * Copyright (c) 2000-2001, The University of Sheffield.
    5    *
    6    * This file is part of GATE (see http://gate.ac.uk/), and is free
    7    * software, licenced under the GNU Library General Public License,
    8    * Version 2, June1991.
    9    *
    10   * A copy of this licence is included in the distribution in the file
    11   * licence.html, and is also available at http://gate.ac.uk/gate/licence.html.
    12   *
    13   * Valentin Tablan, October 2000
    14   *
    15   * $Id: State.java,v 1.2 2001/04/17 18:09:11 oana Exp $
    16   */
    17  package guk.im;
    18
    19  import java.util.*;
    20
    21  /**
    22   * A state of the {@link LocaleHandler} FSM.
    23   *
    24   */
    25  public class State{
    26
    27    /**
    28     * Creates a new state
    29     *
    30     * @param isFinal
    31     */
    32    public State(boolean isFinal ){
    33      this.finalState = isFinal;
    34    }
    35
    36    /**
    37     * Default constructor; creates a non final state
    38     *
    39     */
    40    public State(){
    41      this.finalState = false;
    42    }
    43
    44    /**
    45     * Adds anew action to this state.
    46     *
    47     * @param key
    48     * @param action
    49     */
    50    public Action addAction(Key key, Action action){
    51      return (Action)transitionFunction.put(key, action);
    52    }
    53
    54    /**
    55     * Gets the action this state will activate for a given {@link Key}
    56     *
    57     * @param key
    58     */
    59    public Action getNext(Key key){
    60      return (Action)transitionFunction.get(key);
    61    }
    62
    63    /**
    64     * Is this state final?
    65     *
    66     */
    67    public boolean isFinal(){
    68      return finalState;
    69    }
    70
    71    /**
    72     * Has this state any actions?
    73     *
    74     */
    75    public boolean hasNext(){
    76      return !transitionFunction.isEmpty();
    77    }
    78
    79    /**
    80     * Sets the final attribute.
    81     *
    82     * @param pFinal
    83     */
    84    public void setFinal(boolean pFinal){
    85      finalState = pFinal;
    86    }
    87    //maps from Key to Action
    88    /**
    89     * The transition function for this state.
    90     *
    91     */
    92    Map transitionFunction = new HashMap();
    93
    94    /**
    95     * Is this state final?
    96     *
    97     */
    98    boolean finalState;
    99  }//class State
    100

| State |