2 * Copyright (c) 2016 Pantheon Technologies s.r.o. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715;
10 import com.google.common.annotations.Beta;
11 import com.google.common.base.Preconditions;
12 import java.net.Inet4Address;
13 import java.net.Inet6Address;
14 import java.net.InetAddress;
15 import java.net.UnknownHostException;
16 import javax.annotation.Nonnull;
17 import org.opendaylight.mdsal.model.ietf.util.AbstractIetfInetUtil;
20 * A set of utility methods to efficiently instantiate various ietf-inet-types DTOs.
23 public final class IetfInetUtil extends AbstractIetfInetUtil<Ipv4Address, Ipv4AddressNoZone, Ipv4Prefix, Ipv6Address,
24 Ipv6AddressNoZone, Ipv6Prefix, IpAddress, IpAddressNoZone, IpPrefix> {
25 public static final IetfInetUtil INSTANCE = new IetfInetUtil();
27 private IetfInetUtil() {
28 super(Ipv4AddressNoZone.class, Ipv4Prefix.class, Ipv6AddressNoZone.class, Ipv6Prefix.class);
31 @Nonnull public static InetAddress inetAddressFor(@Nonnull final IpAddressNoZone addr) {
32 final Ipv4AddressNoZone v4 = addr.getIpv4AddressNoZone();
34 return inet4AddressFor(v4);
36 final Ipv6AddressNoZone v6 = addr.getIpv6AddressNoZone();
37 Preconditions.checkArgument(v6 != null, "Address %s is neither IPv4 nor IPv6", addr);
38 return inet6AddressFor(v6);
41 @Nonnull public static Inet4Address inet4AddressFor(@Nonnull final Ipv4AddressNoZone addr) {
43 return (Inet4Address) InetAddress.getByAddress(ipv4AddressBytes(addr));
44 } catch (UnknownHostException e) {
45 throw new IllegalArgumentException("Invalid address " + addr, e);
49 @Nonnull public static Inet6Address inet6AddressFor(@Nonnull final Ipv6AddressNoZone addr) {
51 return (Inet6Address) InetAddress.getByAddress(ipv6AddressBytes(addr));
52 } catch (UnknownHostException e) {
53 throw new IllegalArgumentException("Invalid address " + addr, e);
57 @Nonnull public static byte[] ipv4AddressBytes(@Nonnull final Ipv4AddressNoZone addr) {
58 final String str = addr.getValue();
59 return ipv4AddressBytes(str, str.length());
62 @Nonnull public static byte[] ipv6AddressBytes(@Nonnull final Ipv6AddressNoZone addr) {
63 final String str = addr.getValue();
64 return ipv6AddressBytes(str, str.length());
68 protected IpAddress ipv4Address(final Ipv4Address addr) {
69 return new IpAddress(addr);
73 protected IpAddressNoZone ipv4AddressNoZone(final Ipv4AddressNoZone addr) {
74 return new IpAddressNoZone(addr);
78 protected IpAddress ipv6Address(final Ipv6Address addr) {
79 return new IpAddress(addr);
83 protected IpAddressNoZone ipv6AddressNoZone(final Ipv6AddressNoZone addr) {
84 return new IpAddressNoZone(addr);
88 protected IpPrefix ipv4Prefix(final Ipv4Prefix addr) {
89 return new IpPrefix(addr);
93 protected IpPrefix ipv6Prefix(final Ipv6Prefix addr) {
94 return new IpPrefix(addr);
98 protected String ipv4AddressString(final Ipv4Address addr) {
99 return addr.getValue();
103 protected String ipv6AddressString(final Ipv6Address addr) {
104 return addr.getValue();
108 protected String ipv4PrefixString(final Ipv4Prefix prefix) {
109 return prefix.getValue();
113 protected String ipv6PrefixString(final Ipv6Prefix prefix) {
114 return prefix.getValue();
118 protected Ipv4Address maybeIpv4Address(final IpAddress addr) {
119 return addr.getIpv4Address();
123 protected Ipv6Address maybeIpv6Address(final IpAddress addr) {
124 return addr.getIpv6Address();