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