package tw.com.entity;
import org.apache.commons.net.util.SubnetUtils;
import tw.com.exceptions.CfnAssistException;
public class Cidr {
private static final String DEFAULT_CIDR = "0.0.0.0/0";
private SubnetUtils subnet;
private boolean isDefault;
private Cidr(String string) {
subnet = new SubnetUtils(string);
}
private Cidr(boolean isDefault) {
this.isDefault = isDefault;
}
public boolean isDefault() {
return isDefault;
}
public static Cidr Default() {
return new Cidr(true);
}
@Override
public String toString() {
if (isDefault()) {
return DEFAULT_CIDR;
}
return subnet.getInfo().getCidrSignature();
}
public static Cidr parse(String string) throws CfnAssistException {
if (DEFAULT_CIDR.equals(string)) {
return Default();
}
try {
return new Cidr(string);
}
catch(IllegalArgumentException exception) {
throw new CfnAssistException("Could not parse cidr " + string);
}
}
}