164c42cae4482fe0157e977b8ddd0f2c2436b3f31Wink Saville/** 264c42cae4482fe0157e977b8ddd0f2c2436b3f31Wink Saville * Copyright (C) 2009 The Android Open Source Project 364c42cae4482fe0157e977b8ddd0f2c2436b3f31Wink Saville * 464c42cae4482fe0157e977b8ddd0f2c2436b3f31Wink Saville * Licensed under the Apache License, Version 2.0 (the "License"); 564c42cae4482fe0157e977b8ddd0f2c2436b3f31Wink Saville * you may not use this file except in compliance with the License. 664c42cae4482fe0157e977b8ddd0f2c2436b3f31Wink Saville * You may obtain a copy of the License at 764c42cae4482fe0157e977b8ddd0f2c2436b3f31Wink Saville * 864c42cae4482fe0157e977b8ddd0f2c2436b3f31Wink Saville * http://www.apache.org/licenses/LICENSE-2.0 964c42cae4482fe0157e977b8ddd0f2c2436b3f31Wink Saville * 1064c42cae4482fe0157e977b8ddd0f2c2436b3f31Wink Saville * Unless required by applicable law or agreed to in writing, software 1164c42cae4482fe0157e977b8ddd0f2c2436b3f31Wink Saville * distributed under the License is distributed on an "AS IS" BASIS, 1264c42cae4482fe0157e977b8ddd0f2c2436b3f31Wink Saville * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1364c42cae4482fe0157e977b8ddd0f2c2436b3f31Wink Saville * See the License for the specific language governing permissions and 1464c42cae4482fe0157e977b8ddd0f2c2436b3f31Wink Saville * limitations under the License. 1564c42cae4482fe0157e977b8ddd0f2c2436b3f31Wink Saville */ 1664c42cae4482fe0157e977b8ddd0f2c2436b3f31Wink Saville 1764c42cae4482fe0157e977b8ddd0f2c2436b3f31Wink Savillepackage com.android.internal.util; 1864c42cae4482fe0157e977b8ddd0f2c2436b3f31Wink Saville 1964c42cae4482fe0157e977b8ddd0f2c2436b3f31Wink Savilleimport android.os.Message; 2064c42cae4482fe0157e977b8ddd0f2c2436b3f31Wink Saville 2164c42cae4482fe0157e977b8ddd0f2c2436b3f31Wink Saville/** 2264c42cae4482fe0157e977b8ddd0f2c2436b3f31Wink Saville * {@hide} 2364c42cae4482fe0157e977b8ddd0f2c2436b3f31Wink Saville * 2464c42cae4482fe0157e977b8ddd0f2c2436b3f31Wink Saville * The class for implementing states in a StateMachine 2564c42cae4482fe0157e977b8ddd0f2c2436b3f31Wink Saville */ 2664c42cae4482fe0157e977b8ddd0f2c2436b3f31Wink Savillepublic class State implements IState { 2764c42cae4482fe0157e977b8ddd0f2c2436b3f31Wink Saville 2864c42cae4482fe0157e977b8ddd0f2c2436b3f31Wink Saville /** 2964c42cae4482fe0157e977b8ddd0f2c2436b3f31Wink Saville * Constructor 3064c42cae4482fe0157e977b8ddd0f2c2436b3f31Wink Saville */ 3164c42cae4482fe0157e977b8ddd0f2c2436b3f31Wink Saville protected State() { 3264c42cae4482fe0157e977b8ddd0f2c2436b3f31Wink Saville } 3364c42cae4482fe0157e977b8ddd0f2c2436b3f31Wink Saville 3464c42cae4482fe0157e977b8ddd0f2c2436b3f31Wink Saville /* (non-Javadoc) 3564c42cae4482fe0157e977b8ddd0f2c2436b3f31Wink Saville * @see com.android.internal.util.IState#enter() 3664c42cae4482fe0157e977b8ddd0f2c2436b3f31Wink Saville */ 3764c42cae4482fe0157e977b8ddd0f2c2436b3f31Wink Saville @Override 3864c42cae4482fe0157e977b8ddd0f2c2436b3f31Wink Saville public void enter() { 3964c42cae4482fe0157e977b8ddd0f2c2436b3f31Wink Saville } 4064c42cae4482fe0157e977b8ddd0f2c2436b3f31Wink Saville 4164c42cae4482fe0157e977b8ddd0f2c2436b3f31Wink Saville /* (non-Javadoc) 4264c42cae4482fe0157e977b8ddd0f2c2436b3f31Wink Saville * @see com.android.internal.util.IState#exit() 4364c42cae4482fe0157e977b8ddd0f2c2436b3f31Wink Saville */ 4464c42cae4482fe0157e977b8ddd0f2c2436b3f31Wink Saville @Override 4564c42cae4482fe0157e977b8ddd0f2c2436b3f31Wink Saville public void exit() { 4664c42cae4482fe0157e977b8ddd0f2c2436b3f31Wink Saville } 4764c42cae4482fe0157e977b8ddd0f2c2436b3f31Wink Saville 4864c42cae4482fe0157e977b8ddd0f2c2436b3f31Wink Saville /* (non-Javadoc) 4964c42cae4482fe0157e977b8ddd0f2c2436b3f31Wink Saville * @see com.android.internal.util.IState#processMessage(android.os.Message) 5064c42cae4482fe0157e977b8ddd0f2c2436b3f31Wink Saville */ 5164c42cae4482fe0157e977b8ddd0f2c2436b3f31Wink Saville @Override 5264c42cae4482fe0157e977b8ddd0f2c2436b3f31Wink Saville public boolean processMessage(Message msg) { 5364c42cae4482fe0157e977b8ddd0f2c2436b3f31Wink Saville return false; 5464c42cae4482fe0157e977b8ddd0f2c2436b3f31Wink Saville } 5564c42cae4482fe0157e977b8ddd0f2c2436b3f31Wink Saville 5664c42cae4482fe0157e977b8ddd0f2c2436b3f31Wink Saville /** 5764c42cae4482fe0157e977b8ddd0f2c2436b3f31Wink Saville * Name of State for debugging purposes. 5864c42cae4482fe0157e977b8ddd0f2c2436b3f31Wink Saville * 5964c42cae4482fe0157e977b8ddd0f2c2436b3f31Wink Saville * This default implementation returns the class name, returning 6064c42cae4482fe0157e977b8ddd0f2c2436b3f31Wink Saville * the instance name would better in cases where a State class 6164c42cae4482fe0157e977b8ddd0f2c2436b3f31Wink Saville * is used for multiple states. But normally there is one class per 6264c42cae4482fe0157e977b8ddd0f2c2436b3f31Wink Saville * state and the class name is sufficient and easy to get. You may 6364c42cae4482fe0157e977b8ddd0f2c2436b3f31Wink Saville * want to provide a setName or some other mechanism for setting 6464c42cae4482fe0157e977b8ddd0f2c2436b3f31Wink Saville * another name if the class name is not appropriate. 6564c42cae4482fe0157e977b8ddd0f2c2436b3f31Wink Saville * 6664c42cae4482fe0157e977b8ddd0f2c2436b3f31Wink Saville * @see com.android.internal.util.IState#processMessage(android.os.Message) 6764c42cae4482fe0157e977b8ddd0f2c2436b3f31Wink Saville */ 6864c42cae4482fe0157e977b8ddd0f2c2436b3f31Wink Saville @Override 6964c42cae4482fe0157e977b8ddd0f2c2436b3f31Wink Saville public String getName() { 7064c42cae4482fe0157e977b8ddd0f2c2436b3f31Wink Saville String name = getClass().getName(); 7164c42cae4482fe0157e977b8ddd0f2c2436b3f31Wink Saville int lastDollar = name.lastIndexOf('$'); 7264c42cae4482fe0157e977b8ddd0f2c2436b3f31Wink Saville return name.substring(lastDollar + 1); 7364c42cae4482fe0157e977b8ddd0f2c2436b3f31Wink Saville } 7464c42cae4482fe0157e977b8ddd0f2c2436b3f31Wink Saville} 75