* terms of the Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*/
-
package org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715;
-import java.util.regex.Matcher;
+import static com.google.common.base.Verify.verify;
+
import java.util.regex.Pattern;
/**
- *
+ * Builder for {@link IpAddress} instances.
*/
public class IpAddressBuilder {
- private static final Pattern IPV4_PATTERN =
- Pattern.compile("(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(%[\\p{N}\\p{L}]+)?");
- private static final Pattern IPV6_PATTERN1 =
- Pattern.compile("((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|(((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])))(%[\\p{N}\\p{L}]+)?");
- private static final Pattern IPV6_PATTERN2 =
- Pattern.compile("(([^:]+:){6}(([^:]+:[^:]+)|(.*\\..*)))|((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)(%.+)?");
-
- private IpAddressBuilder() {
+ private static final Pattern IPV4_PATTERN;
+ static {
+ verify(Ipv4Address.PATTERN_CONSTANTS.size() == 1);
+ IPV4_PATTERN = Pattern.compile(Ipv4Address.PATTERN_CONSTANTS.get(0));
}
- public static IpAddress getDefaultInstance(java.lang.String defaultValue) {
- final Matcher ipv4Matcher = IPV4_PATTERN.matcher(defaultValue);
-
- if (ipv4Matcher.matches()) {
- if (IPV6_PATTERN1.matcher(defaultValue).matches() && IPV6_PATTERN2.matcher(defaultValue).matches()) {
- throw new IllegalArgumentException(
- String.format("Cannot create IpAddress from \"%s\", matches both %s and %s",
- defaultValue, Ipv4Address.class.getSimpleName(), Ipv6Address.class.getSimpleName()));
+ private IpAddressBuilder() {
- }
- return new IpAddress(new Ipv4Address(defaultValue));
- } else if (IPV6_PATTERN1.matcher(defaultValue).matches() && IPV6_PATTERN2.matcher(defaultValue).matches()) {
- return new IpAddress(new Ipv6Address(defaultValue));
- } else {
- throw new IllegalArgumentException("Cannot create IpAddress from " + defaultValue);
- }
+ }
+ public static IpAddress getDefaultInstance(final String defaultValue) {
+ return IPV4_PATTERN.matcher(defaultValue).matches() ? new IpAddress(new Ipv4Address(defaultValue))
+ : new IpAddress(new Ipv6Address(defaultValue));
}
}
* terms of the Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*/
-
package org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
+import static com.google.common.base.Verify.verify;
+
+import java.util.regex.Pattern;
/**
- *
+ * Builder for {@link IpPrefix} instances.
*/
public class IpPrefixBuilder {
- private static final Pattern IPV4_PATTERN = Pattern.compile("(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))");
- private static final Pattern IPV6_PATTERN1 = Pattern.compile("((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|(((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])))(/(([0-9])|([0-9]{2})|(1[0-1][0-9])|(12[0-8])))");
- private static final Pattern IPV6_PATTERN2 = Pattern.compile("(([^:]+:){6}(([^:]+:[^:]+)|(.*\\..*)))|((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)(/.+)");
+ private static final Pattern IPV4_PATTERN;
+
+ static {
+ verify(Ipv4Prefix.PATTERN_CONSTANTS.size() == 1);
+ IPV4_PATTERN = Pattern.compile(Ipv4Prefix.PATTERN_CONSTANTS.get(0));
+ }
private IpPrefixBuilder() {
}
public static IpPrefix getDefaultInstance(final String defaultValue) {
- final Matcher ipv4Matcher = IPV4_PATTERN.matcher(defaultValue);
-
- if (ipv4Matcher.matches()) {
- if (IPV6_PATTERN1.matcher(defaultValue).matches() && IPV6_PATTERN2.matcher(defaultValue).matches()) {
- throw new IllegalArgumentException(
- String.format("Cannot create IpPrefix from \"%s\", matches both %s and %s",
- defaultValue, Ipv4Address.class.getSimpleName(), Ipv6Address.class.getSimpleName()));
-
- }
- return new IpPrefix(new Ipv4Prefix(defaultValue));
- } else if (IPV6_PATTERN1.matcher(defaultValue).matches() && IPV6_PATTERN2.matcher(defaultValue).matches()) {
- return new IpPrefix(new Ipv6Prefix(defaultValue));
- } else {
- throw new IllegalArgumentException("Cannot create IpPrefix from " + defaultValue);
- }
+ return IPV4_PATTERN.matcher(defaultValue).matches() ? new IpPrefix(new Ipv4Prefix(defaultValue))
+ : new IpPrefix(new Ipv6Prefix(defaultValue));
}
}