package com.cxy.redisclient.domain;
import com.cxy.redisclient.integration.ConfigFile;
public class ContainerKey {
private String containerKey;
private final String separator = ConfigFile.getSeparator();
public ContainerKey(String containerKey) {
this.containerKey = containerKey == null?"":containerKey;
}
public boolean isKey() {
if(containerKey.length() == 0)
return false;
if (containerKey.endsWith(separator))
return false;
else
return true;
}
public String getContainerOnly(){
return getUpperContainer();
}
public String getKeyOnly() {
assert(isKey());
String[] containers = containerKey.split(separator);
return containers[containers.length - 1];
}
public String getRelativeContainer(String beginContainer) {
String[] beginContainers = beginContainer.split(separator);
String lastContainer = beginContainers[beginContainers.length-1] + separator;
if(lastContainer.equals(separator))
lastContainer = "";
return containerKey.replaceFirst(beginContainer, lastContainer);
}
public String getLastContainer() {
String[] containers = containerKey.split(separator);
if(!isKey()) {
if(containers.length > 0)
return containers[containers.length-1] + separator;
else
return "";
} else {
if(containers.length > 1)
return containers[containers.length-2] + separator;
else
return "";
}
}
public String getUpperContainer() {
String[] containers = containerKey.split(separator);
String upperContainer = "";
for(int i = 0; i < containers.length - 1; i ++){
upperContainer += containers[i] + separator;
}
return upperContainer;
}
public String appendLastContainer(String appendStr) {
String target = "";
String[] containers = containerKey.split(separator);
containers[containers.length - 1] += appendStr;
for(int i = 0; i < containers.length; i ++) {
target += containers[i] + separator;
}
return target;
}
public String getContainerKey() {
return containerKey;
}
}