class RouteFilterLine implements Serializable {

  @JsonCreator
  private static RouteFilterLine create(
      @Nullable @JsonProperty(PROP_ACTION) LineAction action,
      @Nullable @JsonProperty(PROP_IP_WILDCARD) IpWildcard ipWildcard,
      @Nullable @JsonProperty(PROP_LENGTH_RANGE) SubRange lengthRange) {
    checkArgument(action != null, "% is missing", PROP_ACTION);
    checkArgument(ipWildcard != null, "% is missing", PROP_IP_WILDCARD);
    checkArgument(lengthRange != null, "% is missing", PROP_LENGTH_RANGE);
    return new RouteFilterLine(action, ipWildcard, lengthRange);
  }

  public  RouteFilterLine(LineAction action, IpWildcard ipWildcard, SubRange lengthRange);
  public  RouteFilterLine(LineAction action, Prefix prefix, SubRange lengthRange);
  public  RouteFilterLine(LineAction action, PrefixRange prefixRange);

}