package com.linkedin.databus.core.data_model;
/*
*
* Copyright 2013 LinkedIn Corp. All rights reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with 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.
*
*/
/*
* Physical Source Role
*/
public class Role
{
public static final int UNKNOWN = 0;
public static final int MASTER = 1;
public static final int SLAVE = 2;
public static final int OFFLINE =3;
public static final int ERROR = 4;
public static final int ANY = 5;
public static final String UNKNOWN_STR = "UNKNOWN";
public static final String MASTER_STR = "MASTER";
public static final String SLAVE_STR = "SLAVE";
public static final String OFFLINE_STR = "OFFLINE";
public static final String ERROR_STR = "ERROR";
public static final String ANY_STR = "ANY";
final int _roleVal;
final String _role;
public Role(int role)
{
_roleVal = role;
_role = toString();
}
public Role(String roleStr)
{
_roleVal = getRoleVal(roleStr);
_role = toString();
}
private int getRoleVal(String roleStr)
{
if (roleStr.equals(MASTER_STR))
return MASTER;
else if (roleStr.equals(SLAVE_STR))
return SLAVE;
else if (roleStr.equals(OFFLINE_STR))
return OFFLINE;
else if (roleStr.equals(ERROR_STR))
return ERROR;
else if (roleStr.equals(ANY_STR))
return ANY;
else
return UNKNOWN;
}
public String getRole()
{
return _role;
}
private int getRoleVal()
{
return _roleVal;
}
public boolean checkIfMaster()
{
return _roleVal == MASTER;
}
public boolean checkIfSlave()
{
return _roleVal == SLAVE;
}
public boolean checkIfOffline()
{
return _roleVal == OFFLINE;
}
public boolean checkIfAny()
{
return _roleVal == ANY;
}
public boolean checkIfError()
{
return _roleVal == ERROR;
}
public boolean checkIfUnknown()
{
return _roleVal == UNKNOWN;
}
@Override
public int hashCode()
{
return _roleVal;
}
@Override
public boolean equals(Object other)
{
if (null == other || !(other instanceof Role)) return false;
Role otherRole = (Role) other;
if (_roleVal == otherRole.getRoleVal())
return true;
if (_roleVal == ANY || otherRole.getRoleVal() == ANY)
return true;
return false;
}
@Override
public String toString()
{
if (getRoleVal() == MASTER)
return MASTER_STR;
else if (getRoleVal() == SLAVE)
return SLAVE_STR;
else if (getRoleVal() == OFFLINE)
return OFFLINE_STR;
else if (getRoleVal() == ANY)
return ANY_STR;
else if (getRoleVal() == ERROR)
return ERROR_STR;
else
return UNKNOWN_STR;
}
public static Role createUnknown()
{
Role r = new Role(UNKNOWN);
return r;
}
};