package com.networknt.zookeeper;
import com.networknt.status.Status;
import com.networknt.utility.Constants;
import com.networknt.exception.FrameworkException;
import com.networknt.registry.URL;
public class ZkUtils {
private static final String GET_NODETYPEPATH_ERROR = "ERR10026";
public static String toGroupPath(URL url) {
return Constants.ZOOKEEPER_REGISTRY_NAMESPACE + Constants.PATH_SEPARATOR + url.getGroup();
}
public static String toServicePath(URL url) {
return toGroupPath(url) + Constants.PATH_SEPARATOR + url.getPath();
}
public static String toCommandPath(URL url) {
return toGroupPath(url) + Constants.ZOOKEEPER_REGISTRY_COMMAND;
}
public static String toNodeTypePath(URL url, ZkNodeType nodeType) {
String type;
if (nodeType == ZkNodeType.AVAILABLE_SERVER) {
type = "server";
} else if (nodeType == ZkNodeType.UNAVAILABLE_SERVER) {
type = "unavailableServer";
} else if (nodeType == ZkNodeType.CLIENT) {
type = "client";
} else {
throw new FrameworkException(new Status(GET_NODETYPEPATH_ERROR, url, nodeType.toString()));
}
return toServicePath(url) + Constants.PATH_SEPARATOR + type;
}
public static String toNodePath(URL url, ZkNodeType nodeType) {
return toNodeTypePath(url, nodeType) + Constants.PATH_SEPARATOR + url.getServerPortStr();
}
}