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

com.googlecode.jinahya.fsm.XletTransitionMatcher Maven / Gradle / Ivy

The newest version!
/*
 * Copyright 2011 Jin Kwon.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */


package com.googlecode.jinahya.fsm;


import java.util.Arrays;
import java.util.List;


/**
 * Transition matchers.
 *
 * @author Jin Kwon
 */
public final class XletTransitionMatcher {


    /**
     * Transition matcher for Xlet loading.
     */
    public static final TransitionMatcher LOAD_XLET = new TransitionMatcher() {


        @Override
        public boolean matches(final Transition transition) {
            return transition.getSource().equals(State.UNKNOWN)
                   && transition.getTarget().equals(XletState.LOADED);
        }


    };


    /**
     * Transition matcher for initXlet.
     */
    public static final TransitionMatcher INIT_XLET = new TransitionMatcher() {


        @Override
        public boolean matches(final Transition transition) {
            return transition.getSource().equals(XletState.LOADED)
                   && transition.getTarget().equals(XletState.PAUSED);
        }


    };


    /**
     * Transition matcher for startXlet.
     */
    public static final TransitionMatcher START_XLET = new TransitionMatcher() {


        @Override
        public boolean matches(final Transition transition) {
            return (transition.getSource().equals(XletState.PAUSED)
                    && transition.getTarget().equals(XletState.ACTIVE));
        }


    };


    /**
     * Transition matcher for pauseXlet.
     */
    public static final TransitionMatcher PAUSE_XLET = new TransitionMatcher() {


        @Override
        public boolean matches(final Transition transition) {
            return (transition.getSource().equals(XletState.ACTIVE)
                    && transition.getTarget().equals(XletState.PAUSED));
        }


    };


    /**
     * Transition matcher for destroyXlet.
     */
    public static final TransitionMatcher DESTROY_XLET =
        new TransitionMatcher() {


            @Override
            public boolean matches(final Transition transition) {
                return ((transition.getSource().equals(XletState.LOADED)
                         || transition.getSource().equals(XletState.PAUSED)
                         || transition.getSource().equals(XletState.ACTIVE))
                        && transition.getTarget().equals(XletState.DESTROYED));
            }


        };


    /**
     * VALUES.
     */
    public static final List VALUES =
        Arrays.asList(LOAD_XLET, INIT_XLET, START_XLET, PAUSE_XLET,
                      DESTROY_XLET);


    /** PRIVATE. */
    private XletTransitionMatcher() {
        super();
    }


}





© 2015 - 2025 Weber Informatics LLC | Privacy Policy