    001    /**
    002     * Licensed to the Apache Software Foundation (ASF) under one
    003     * or more contributor license agreements.  See the NOTICE file
    004     * distributed with this work for additional information
    005     * regarding copyright ownership.  The ASF licenses this file
    006     * to you under the Apache License, Version 2.0 (the
    007     * "License"); you may not use this file except in compliance
    008     * with the License.  You may obtain a copy of the License at
    009     *
    010     *   http://www.apache.org/licenses/LICENSE-2.0
    011     *
    012     * Unless required by applicable law or agreed to in writing, software
    013     * distributed under the License is distributed on an "AS IS" BASIS,
    014     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    015     * See the License for the specific language governing permissions and
    016     * limitations under the License.
    017     */
    018    package org.apache.hadoop.mapreduce;
    019
    020    import java.util.HashMap;
    021    import java.util.Map;
    022
    023    import org.apache.hadoop.classification.InterfaceAudience;
    024    import org.apache.hadoop.classification.InterfaceStability;
    025
    026    /**
    027     * Enum representing queue state
    028     */
    029    @InterfaceAudience.Public
    030    @InterfaceStability.Evolving
    031    public enum QueueState {
    032
    033      STOPPED("stopped"), RUNNING("running"), UNDEFINED("undefined");
    034      private final String stateName;
    035      private static Map<String, QueueState> enumMap =
    036          new HashMap<String, QueueState>();
    037
    038      static {
    039        for (QueueState state : QueueState.values()) {
    040          enumMap.put(state.getStateName(), state);
    041        }
    042      }
    043
    044      QueueState(String stateName) {
    045        this.stateName = stateName;
    046      }
    047
    048      /**
    049       * @return the stateName
    050       */
    051      public String getStateName() {
    052        return stateName;
    053      }
    054
    055      public static QueueState getState(String state) {
    056        QueueState qState = enumMap.get(state);
    057        if (qState == null) {
    058          return UNDEFINED;
    059        }
    060        return qState;
    061      }
    062
    063      @Override
    064      public String toString() {
    065        return stateName;
    066      }
    067
    068    }