Bug 5947: Increasing code coverage - ietf-type-util
[mdsal.git] / model / ietf / ietf-type-util / src / test / java / org / opendaylight / mdsal / model / ietf / util / IpUtil.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 package org.opendaylight.mdsal.model.ietf.util;
9
10 import java.util.regex.Pattern;
11 import javax.annotation.RegEx;
12
13 final class IpUtil extends AbstractIetfInetUtil<IpClass, IpClass, IpClass, IpClass, IpClass, IpClass> {
14
15     @RegEx
16     private static final String IP_V4_REGEX = "^\\d+\\.\\d+\\.\\d+\\.\\d+$";
17     private static final Pattern IP_V4_PATTERN = Pattern.compile(IP_V4_REGEX);
18
19     IpUtil() {
20         super(IpClass.class, IpClass.class, IpClass.class, IpClass.class);
21     }
22
23     @Override
24     protected IpClass ipv4Address(final IpClass addr) {
25         return addr;
26     }
27
28     @Override
29     protected IpClass ipv6Address(final IpClass addr) {
30         return addr;
31     }
32
33     @Override
34     protected IpClass ipv4Prefix(IpClass addr) {
35         return addr;
36     }
37
38     @Override
39     protected IpClass ipv6Prefix(IpClass addr) {
40         return addr;
41     }
42
43     @Override
44     protected String ipv4AddressString(final IpClass addr) {
45         return addr._value;
46     }
47
48     @Override
49     protected String ipv6AddressString(final IpClass addr) {
50         return addr._value;
51     }
52
53     @Override
54     protected String ipv4PrefixString(final IpClass prefix) {
55         return prefix._value;
56     }
57
58     @Override
59     protected String ipv6PrefixString(final IpClass prefix) {
60         return prefix._value;
61     }
62
63     @Override
64     protected IpClass maybeIpv4Address(IpClass addr) {
65         return IP_V4_PATTERN.matcher(addr._value).matches() ? addr : null;
66     }
67
68     @Override
69     protected IpClass maybeIpv6Address(IpClass addr) {
70         return addr._value.indexOf(':') != -1 ? addr : null;
71     }
72 }