4f5b047fa527f9fe8e84d6f0bbd5d6cac5b25527
[lispflowmapping.git] / mappingservice / implementation / src / main / java / org / opendaylight / lispflowmapping / implementation / dao / MappingServiceKeyUtil.java
1 /*
2  * Copyright (c) 2014 Contextream, Inc. and others.  All rights reserved.
3  *
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
7  */
8 package org.opendaylight.lispflowmapping.implementation.dao;
9
10 import org.opendaylight.lispflowmapping.implementation.util.MaskUtil;
11 import org.opendaylight.lispflowmapping.interfaces.dao.IMappingServiceKey;
12 import org.opendaylight.yang.gen.v1.lispflowmapping.rev131031.lispaddress.LispAddressContainer;
13 import org.opendaylight.yang.gen.v1.lispflowmapping.rev131031.lispaddress.LispAddressContainerBuilder;
14
15 public class MappingServiceKeyUtil {
16
17     public static IMappingServiceKey generateMappingServiceKey(LispAddressContainer lispAddressContainer, int mask) {
18         if (MaskUtil.isMaskable(lispAddressContainer.getAddress())) {
19             LispAddressContainerBuilder normalizedBuilder = new LispAddressContainerBuilder();
20             normalizedBuilder.setAddress(MaskUtil.normalize(lispAddressContainer.getAddress(), mask));
21             return new MappingServiceKey(normalizedBuilder.build(), mask);
22         } else {
23             return new MappingServiceNoMaskKey(lispAddressContainer);
24         }
25     }
26
27     public static IMappingServiceKey generateMappingServiceKey(LispAddressContainer lispAddressContainer) {
28         if (MaskUtil.isMaskable(lispAddressContainer.getAddress())) {
29             return generateMappingServiceKey(lispAddressContainer, MaskUtil.getMaxMask(lispAddressContainer.getAddress()));
30         } else
31             return generateMappingServiceKey(lispAddressContainer, 0);
32     }
33 }