1 package org.opendaylight.alto.commons.types.convertor;
3 import java.util.ArrayList;
6 import java.util.Arrays;
8 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.IpPrefix;
9 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.IpPrefixBuilder;
10 import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.rev150404.network.map.MapBuilder;
11 import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.rev150404.network.map.MapKey;
12 import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.rev150404.resources.network.maps.NetworkMapBuilder;
13 import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.types.rev150404.EndpointAddressType;
14 import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.types.rev150404.PidName;
15 import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.types.rev150404.ResourceId;
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.types.rev150404.TagString;
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.types.rev150404.endpoint.address.group.EndpointAddressGroup;
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.alto.service.types.rev150404.endpoint.address.group.EndpointAddressGroupBuilder;
20 import org.opendaylight.alto.commons.types.rfc7285.RFC7285Type;
21 import org.opendaylight.alto.commons.types.model150404.ModelType;
23 public class RFC2ModelConvertor {
25 public static final String IPV4 = "ipv4";
26 public static final String IPV6 = "ipv6";
28 public ModelType.NetworkMap convert(RFC7285Type.NetworkMap nmap) {
29 ResourceId rid = new ResourceId(nmap.meta.vtag.rid);
30 TagString tag = new TagString(nmap.meta.vtag.tag);
31 List<org.opendaylight.yang.gen.v1.urn.opendaylight.alto.rev150404.network.map.Map> mapData
32 = new ArrayList<org.opendaylight.yang.gen.v1.urn.opendaylight.alto.rev150404.network.map.Map>(convert(nmap.map));
33 ModelType.NetworkMap result = (ModelType.NetworkMap)(new NetworkMapBuilder()
36 .setMap(mapData).build());
40 public List<ModelType.NetworkMapData> convert(Map<String, RFC7285Type.Endpoint.AddressGroup> mapData) {
41 List<ModelType.NetworkMapData> result = new ArrayList<ModelType.NetworkMapData>();
42 for (Map.Entry<String, RFC7285Type.Endpoint.AddressGroup> entry: mapData.entrySet()) {
43 String pid = entry.getKey();
44 RFC7285Type.Endpoint.AddressGroup addresses = entry.getValue();
46 result.add(convert(pid, addresses));
51 public ModelType.NetworkMapData convert(String pid, RFC7285Type.Endpoint.AddressGroup data) {
52 PidName _pid = new PidName(pid);
53 return (ModelType.NetworkMapData)new MapBuilder()
55 .setKey(new MapKey(_pid))
56 .setEndpointAddressGroup(convert(data))
60 public List<EndpointAddressGroup> convert(RFC7285Type.Endpoint.AddressGroup addressGroup) {
61 EndpointAddressGroup result[] = {
62 buildAddressGroup(EndpointAddressType.Enumeration.Ipv4, str2IpPrefix(addressGroup.ipv4)),
63 buildAddressGroup(EndpointAddressType.Enumeration.Ipv6, str2IpPrefix(addressGroup.ipv6)),
66 return Arrays.asList(result);
69 private EndpointAddressGroup buildAddressGroup(EndpointAddressType.Enumeration type, List<IpPrefix> prefixes) {
70 EndpointAddressType _type = new EndpointAddressType(type);
71 return new EndpointAddressGroupBuilder()
72 .setAddressType(_type)
73 .setEndpointPrefix(prefixes).build();
76 private List<IpPrefix> str2IpPrefix(List<String> ipList) {
77 List<IpPrefix> prefixList = new ArrayList<IpPrefix>();
78 for (String ip : ipList) {
79 prefixList.add(IpPrefixBuilder.getDefaultInstance(ip));