/** * Converts an IPv4 address and a prefix length into an IPv4 prefix. * * @param address the IPv4 address * @param prefixLength the prefix length * @return an IPv4 prefix * @throws IllegalArgumentException if the prefix length value is invalid */ public static Ip4Prefix valueOf(Ip4Address address, int prefixLength) { return new Ip4Prefix(address, prefixLength); }
/** * Converts an integer and a prefix length into an IPv4 prefix. * * @param address an integer representing the IPv4 address * @param prefixLength the prefix length * @return an IPv4 prefix * @throws IllegalArgumentException if the prefix length value is invalid */ public static Ip4Prefix valueOf(int address, int prefixLength) { return new Ip4Prefix(Ip4Address.valueOf(address), prefixLength); }
/** * Converts a byte array and a prefix length into an IPv4 prefix. * * @param address the IPv4 address value stored in network byte order * @param prefixLength the prefix length * @return an IPv4 prefix * @throws IllegalArgumentException if the prefix length value is invalid */ public static Ip4Prefix valueOf(byte[] address, int prefixLength) { return new Ip4Prefix(Ip4Address.valueOf(address), prefixLength); }
/** * Converts a CIDR (slash) notation string (e.g., "10.1.0.0/16") * into an IPv4 prefix. * * @param address an IP prefix in string form (e.g., "10.1.0.0/16") * @return an IPv4 prefix * @throws IllegalArgumentException if the arguments are invalid */ public static Ip4Prefix valueOf(String address) { final String[] parts = address.split("/"); if (parts.length != 2) { String msg = "Malformed IPv4 prefix string: " + address + ". " + "Address must take form \"x.x.x.x/y\""; throw new IllegalArgumentException(msg); } Ip4Address ipAddress = Ip4Address.valueOf(parts[0]); int prefixLength = Integer.parseInt(parts[1]); return new Ip4Prefix(ipAddress, prefixLength); } }