BUG-6650: ep-sgt/ip, propose initial sxp-ep-provider
[groupbasedpolicy.git] / sxp-integration / sxp-ep-provider / src / main / java / org / opendaylight / groupbasedpolicy / sxp / ep / provider / impl / util / IpPrefixEqualCommandSubnetImpl.java
1 /*
2  * Copyright (c) 2016 Cisco Systems, 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
9 package org.opendaylight.groupbasedpolicy.sxp.ep.provider.impl.util;
10
11 import javax.annotation.Nonnull;
12 import org.apache.commons.net.util.SubnetUtils;
13 import org.opendaylight.groupbasedpolicy.sxp.ep.provider.impl.IpPrefixEqualCommand;
14 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefix;
15
16 /**
17  * Purpose: provide equal using {@link SubnetUtils.SubnetInfo#isInRange(String)} method
18  */
19 public class IpPrefixEqualCommandSubnetImpl implements IpPrefixEqualCommand {
20     private final SubnetUtils.SubnetInfo myValue;
21
22     public IpPrefixEqualCommandSubnetImpl(@Nonnull final IpPrefix myValue) {
23         this.myValue = new SubnetUtils(stripToCidr(myValue)).getInfo();
24     }
25
26     @Override
27     public boolean isEqualTo(final IpPrefix value) {
28         return myValue.isInRange(stripToCidr(value));
29     }
30
31     private String stripToCidr(final IpPrefix value) {
32         return value.getIpv4Prefix().getValue();
33     }
34 }