/*
* Copyright (c) 2016 Cisco Systems, Inc. and others. All rights reserved.
*
* This program and the accompanying materials are made available under the
* 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.groupbasedpolicy.util;
import javax.annotation.Nullable;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefix;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Prefix;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv6Address;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv6Prefix;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.MacAddress;
/**
* This is temporary solution for conversion between entities from
* ietf-{inet,yang}-types 2013 to ietf-{inet,yang}-types 2010 and vice versa.
* This conversion should be removed after GBP and all other projects migrate to version 2013.
*/
public final class IetfModelCodec {
private IetfModelCodec() {}
public static @Nullable IpPrefix ipPrefix2010(
@Nullable org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefix ip) {
if (ip == null) {
return null;
}
if (ip.getIpv4Prefix() != null) {
return new IpPrefix(ipv4Prefix2010(ip.getIpv4Prefix()));
} else if (ip.getIpv6Prefix() != null) {
return new IpPrefix(ipv6Prefix2010(ip.getIpv6Prefix()));
}
throw new IllegalArgumentException("IP prefix is not ipv4 nor ipv6. " + ip);
}
public static @Nullable org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefix ipPrefix2013(
@Nullable IpPrefix ip) {
if (ip == null) {
return null;
}
if (ip.getIpv4Prefix() != null) {
return new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefix(
ipv4Prefix2013(ip.getIpv4Prefix()));
} else if (ip.getIpv6Prefix() != null) {
return new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefix(
ipv6Prefix2013(ip.getIpv6Prefix()));
}
throw new IllegalArgumentException("IP prefix is not ipv4 nor ipv6. " + ip);
}
public static @Nullable Ipv4Prefix ipv4Prefix2010(
@Nullable org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Prefix ip) {
if (ip == null) {
return null;
}
return new Ipv4Prefix(ip.getValue());
}
public static @Nullable org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Prefix ipv4Prefix2013(
@Nullable Ipv4Prefix ip) {
if (ip == null) {
return null;
}
return new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Prefix(
ip.getValue());
}
public static @Nullable Ipv6Prefix ipv6Prefix2010(
@Nullable org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv6Prefix ip) {
if (ip == null) {
return null;
}
return new Ipv6Prefix(ip.getValue());
}
public static @Nullable org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv6Prefix ipv6Prefix2013(
@Nullable Ipv6Prefix ip) {
if (ip == null) {
return null;
}
return new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv6Prefix(
ip.getValue());
}
public static @Nullable MacAddress macAddress2010(
@Nullable org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.MacAddress mac) {
if (mac == null) {
return null;
}
return new MacAddress(mac.getValue());
}
public static @Nullable org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.MacAddress macAddress2013(
@Nullable MacAddress mac) {
if (mac == null) {
return null;
}
return new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.MacAddress(
mac.getValue());
}
public static @Nullable IpAddress ipAddress2010(
@Nullable org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress ip) {
if (ip == null) {
return null;
}
if (ip.getIpv4Address() != null) {
return new IpAddress(ipv4Address2010(ip.getIpv4Address()));
} else if (ip.getIpv6Address() != null) {
return new IpAddress(ipv6Address2010(ip.getIpv6Address()));
}
throw new IllegalArgumentException("IP address is not ipv4 nor ipv6. " + ip);
}
public static @Nullable org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress ipAddress2013(
@Nullable IpAddress ip) {
if (ip == null) {
return null;
}
if (ip.getIpv4Address() != null) {
return new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress(
ipv4Address2013(ip.getIpv4Address()));
} else if (ip.getIpv6Address() != null) {
return new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress(
ipv6Address2013(ip.getIpv6Address()));
}
throw new IllegalArgumentException("IP address is not ipv4 nor ipv6. " + ip);
}
public static @Nullable Ipv4Address ipv4Address2010(
@Nullable org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address ip) {
if (ip == null) {
return null;
}
return new Ipv4Address(ip.getValue());
}
public static @Nullable org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address ipv4Address2013(
@Nullable Ipv4Address ip) {
if (ip == null) {
return null;
}
return new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address(
ip.getValue());
}
public static @Nullable Ipv6Address ipv6Address2010(
@Nullable org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv6Address ip) {
if (ip == null) {
return null;
}
return new Ipv6Address(ip.getValue());
}
public static @Nullable org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv6Address ipv6Address2013(
@Nullable Ipv6Address ip) {
if (ip == null) {
return null;
}
return new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv6Address(
ip.getValue());
}
public static @Nullable PortNumber portNumber2010(
org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber pn) {
if (pn == null) {
return null;
}
return new PortNumber(pn.getValue());
}
}