blob: 8d223cdd82d0a3ff618553d020d9914c069be0a5 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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.
*/
package org.apache.cassandra.sidecar.adapters.base;
import java.util.Locale;
/**
* Holder class for valid states and statuses of a node
*/
public class NodeInfo
{
/**
* Represents the known states of a node
*/
public enum NodeState
{
JOINING,
LEAVING,
MOVING,
NORMAL,
REPLACING;
private final String displayName;
NodeState()
{
String firstChar = String.valueOf(name().charAt(0)).toLowerCase(Locale.ROOT);
displayName = name().toLowerCase().replaceFirst(firstChar, firstChar.toUpperCase(Locale.ROOT));
}
public String displayName()
{
return displayName;
}
}
/**
* Represents the statuses a node can have
*/
public enum NodeStatus
{
UP,
DOWN;
private final String displayName;
NodeStatus()
{
String firstChar = String.valueOf(name().charAt(0)).toLowerCase(Locale.ROOT);
displayName = name().toLowerCase().replaceFirst(firstChar, firstChar.toUpperCase(Locale.ROOT));
}
public String displayName()
{
return displayName;
}
}
}