All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.glassfish.pfl.basic.fsm.Transition Maven / Gradle / Ivy

There is a newer version: 5.0.0
Show newest version
/*
 * Copyright (c) 1997, 2018 Oracle and/or its affiliates. All rights reserved.
 *
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Distribution License v. 1.0, which is available at
 * http://www.eclipse.org/org/documents/edl-v10.php.
 *
 * SPDX-License-Identifier: BSD-3-Clause
 */

package org.glassfish.pfl.basic.fsm ;

/** This represents an action, guard, and next state for a transition.
 * Instances of this class may only be created by the StateEngine.
 */
public final class Transition {
    private static Guard trueGuard = new Guard.Base( "true" ) {
        @Override
	public Guard.Result evaluate( FSM fsm, Input in ) 
	{
	    return Guard.Result.ENABLED ;
	}
    } ;

    private Guard guard ;
    private Action action ;
    private State nextState ;

    Transition( Action action, State nextState )
    {
	this.guard = trueGuard ;
	this.action = action ;
	this.nextState = nextState ;
    }

    Transition( Guard guard, Action action, State nextState )
    {
	this.guard = guard ;
	this.action = action ;
	this.nextState = nextState ;
    }

    @Override
    public String toString() {
	return "Transition[action=" + action + " guard=" + guard +
	    " nextState=" + nextState + "]" ;
    }

    public Action getAction() { return action ; }
    public Guard getGuard() { return guard ; }
    public State getNextState() { return nextState ; }
}





© 2015 - 2024 Weber Informatics LLC | Privacy Policy