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

com.alipay.oceanbase.rpc.location.model.ObServerRole Maven / Gradle / Ivy

/*-
 * #%L
 * OBKV Table Client Framework
 * %%
 * Copyright (C) 2021 OceanBase
 * %%
 * OBKV Table Client Framework is licensed under Mulan PSL v2.
 * You can use this software according to the terms and conditions of the Mulan PSL v2.
 * You may obtain a copy of Mulan PSL v2 at:
 *          http://license.coscl.org.cn/MulanPSL2
 * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
 * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
 * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
 * See the Mulan PSL v2 for more details.
 * #L%
 */

package com.alipay.oceanbase.rpc.location.model;

public enum ObServerRole {
    INVALID_ROLE("INVALID_ROLE", 0), LEADER("LEADER", 1), FOLLOWER("FOLLOWER", 2);

    private String name;
    private int    index;

    private ObServerRole(String name, int index) {
        this.name = name;
        this.index = index;
    }

    static public ObServerRole getRole(int idx) {
        if (LEADER.index == idx) {
            return LEADER;
        } else if (FOLLOWER.index == idx) {
            return FOLLOWER;
        } else {
            return INVALID_ROLE;
        }
    }

    static public ObServerRole getRole(String role) {
        if (role.equalsIgnoreCase(LEADER.name)) {
            return LEADER;
        } else if (role.equalsIgnoreCase(FOLLOWER.name)) {
            return FOLLOWER;
        } else {
            return INVALID_ROLE;
        }
    }

    /*
     * Get name.
     */
    public String getName() {
        return name;
    }

    /*
     * Get index.
     */
    public int getIndex() {
        return index;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy