class IspModelingUtils {

  @VisibleForTesting
  @Nonnull
  static Long getAsnOfIspNode(Configuration ispConfiguration) {
    checkState(
        Objects.nonNull(ispConfiguration.getDefaultVrf()), "default VRF should be present in ISP");
    checkState(
        Objects.nonNull(ispConfiguration.getDefaultVrf().getBgpProcess()),
        "default VRF should have a BGP process");
    BgpProcess bgpProcess = ispConfiguration.getDefaultVrf().getBgpProcess();
    checkState(
        !(bgpProcess.getActiveNeighbors().isEmpty()
            && bgpProcess.getInterfaceNeighbors().isEmpty()),
        "ISP should have greater than 0 BGP peers");
    Long localAs =
        ispConfiguration
            .getDefaultVrf()
            .getBgpProcess()
            .getAllPeerConfigs()
            .iterator()
            .next()
            .getLocalAs();
    checkState(Objects.nonNull(localAs), "Local AS of all eBGP peers should be set on ISP");
    return localAs;
  }

  private  IspModelingUtils();

}