// Copyright 2012 Citrix Systems, Inc. Licensed under the // Apache License, Version 2.0 (the "License"); you may not use this // file except in compliance with the License. Citrix Systems, Inc. // reserves all rights not expressly granted by 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. // // Automatically generated by addcopyright.py at 04/03/2012 package com.cloud.utils.fsm; public interface StateListener <S,E,V> { /** * Event is triggered before state machine transition finished. * If you want to get the state of vm before state machine changed, you need to listen on this event * @param oldState VM's old state * @param event that triggered this VM state change * @param newState VM's new state * @param vo the VM instance * @param opaque host id * @param vmDao VM dao * @return */ public boolean preStateTransitionEvent(S oldState, E event, S newState, V vo, boolean status, Object opaque); /** * Event is triggered after state machine transition finished * @param oldState VM's old state * @param event that triggered this VM state change * @param newState VM's new state * @param vo the VM instance * @param status the state transition is allowed or not * @return */ public boolean postStateTransitionEvent(S oldState, E event, S newState, V vo, boolean status, Object opaque); }