db3091ea08382ded0fd9130d75332e34260749d5
[lispflowmapping.git] / mappingservice / implementation / src / main / java / org / opendaylight / lispflowmapping / implementation / serializer / address / factory / LispAFIAddressSerializerFactory.java
1 package org.opendaylight.lispflowmapping.implementation.serializer.address.factory;
2
3 import java.util.HashMap;
4 import java.util.Map;
5
6 import org.opendaylight.lispflowmapping.implementation.serializer.address.LispASAddressSerializer;
7 import org.opendaylight.lispflowmapping.implementation.serializer.address.LispAddressSerializer;
8 import org.opendaylight.lispflowmapping.implementation.serializer.address.LispDistinguishedNameAddressSerializer;
9 import org.opendaylight.lispflowmapping.implementation.serializer.address.LispIpv4AddressSerializer;
10 import org.opendaylight.lispflowmapping.implementation.serializer.address.LispIpv6AddressSerializer;
11 import org.opendaylight.lispflowmapping.implementation.serializer.address.LispLCAFAddressSerializer;
12 import org.opendaylight.lispflowmapping.implementation.serializer.address.LispMACAddressSerializer;
13 import org.opendaylight.lispflowmapping.implementation.serializer.address.LispNoAddressSerializer;
14 import org.opendaylight.lispflowmapping.type.AddressFamilyNumberEnum;
15
16 public class LispAFIAddressSerializerFactory {
17
18     private static Map<AddressFamilyNumberEnum, LispAddressSerializer> afiToSearializerMap;
19
20     private static void initializeMap() {
21         afiToSearializerMap = new HashMap<AddressFamilyNumberEnum, LispAddressSerializer>();
22         afiToSearializerMap.put(AddressFamilyNumberEnum.AS, LispASAddressSerializer.getInstance());
23         afiToSearializerMap.put(AddressFamilyNumberEnum.IP, LispIpv4AddressSerializer.getInstance());
24         afiToSearializerMap.put(AddressFamilyNumberEnum.IP6, LispIpv6AddressSerializer.getInstance());
25         afiToSearializerMap.put(AddressFamilyNumberEnum.DISTINGUISHED_NAME, LispDistinguishedNameAddressSerializer.getInstance());
26         afiToSearializerMap.put(AddressFamilyNumberEnum.LCAF, LispLCAFAddressSerializer.getInstance());
27         afiToSearializerMap.put(AddressFamilyNumberEnum.MAC, LispMACAddressSerializer.getInstance());
28         afiToSearializerMap.put(AddressFamilyNumberEnum.RESERVED, LispNoAddressSerializer.getInstance());
29
30     }
31
32     public static LispAddressSerializer getSerializer(AddressFamilyNumberEnum afi) {
33         if (afiToSearializerMap == null) {
34             initializeMap();
35         }
36         return afiToSearializerMap.get(afi);
37     }
38
39 }