class EigrpExternalRoute extends EigrpRoute {

  @Override
  public Builder toBuilder() {
    return builder()
        // AbstractRoute properties
        .setNetwork(getNetwork())
        .setNextHopIp(getNextHopIp())
        .setAdmin(getAdministrativeCost())
        // Skip setMetric since this builder ignores it in favor of setEigrpMetric
        .setTag(getTag())
        .setNonForwarding(getNonForwarding())
        .setNonRouting(getNonRouting())
        // EigrpExternalRoute properties
        .setDestinationAsn(getDestinationAsn())
        .setEigrpMetric(getEigrpMetric())
        .setProcessAsn(getProcessAsn());
  }

  private  EigrpExternalRoute(
      @Nullable Prefix network,
      int admin,
      long destinationAsn,
      @Nullable Ip nextHopIp,
      @Nonnull EigrpMetric metric,
      long processAsn,
      long tag,
      boolean nonForwarding,
      boolean nonRouting);

}