Eliminate IetfYangUtil.INSTANCE
[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 org.checkerframework.checker.regex.qual.Regex;
12
13 final class IpUtil extends AbstractIetfInetUtil<IpClass, IpClass, IpClass, IpClass, IpClass, IpClass, IpClass, IpClass,
14         IpClass> {
15
16     @Regex
17     private static final String IP_V4_REGEX = "^\\d+\\.\\d+\\.\\d+\\.\\d+$";
18     private static final Pattern IP_V4_PATTERN = Pattern.compile(IP_V4_REGEX);
19
20     IpUtil() {
21         super(IpClass.class, IpClass.class, IpClass.class, IpClass.class);
22     }
23
24     @Override
25     protected IpClass ipv4Address(final IpClass addr) {
26         return addr;
27     }
28
29
30     @Override
31     protected IpClass ipv4AddressNoZone(final IpClass addr) {
32         return addr;
33     }
34
35     @Override
36     protected IpClass ipv6Address(final IpClass addr) {
37         return addr;
38     }
39
40     @Override
41     protected IpClass ipv6AddressNoZone(final IpClass addr) {
42         return addr;
43     }
44
45     @Override
46     protected IpClass ipv4Prefix(final IpClass addr) {
47         return addr;
48     }
49
50     @Override
51     protected IpClass ipv6Prefix(final IpClass addr) {
52         return addr;
53     }
54
55     @Override
56     protected String ipv4AddressString(final IpClass addr) {
57         return addr.getValue();
58     }
59
60     @Override
61     protected String ipv6AddressString(final IpClass addr) {
62         return addr.getValue();
63     }
64
65     @Override
66     protected String ipv4PrefixString(final IpClass prefix) {
67         return prefix.getValue();
68     }
69
70     @Override
71     protected String ipv6PrefixString(final IpClass prefix) {
72         return prefix.getValue();
73     }
74
75     @Override
76     protected IpClass maybeIpv4Address(final IpClass addr) {
77         return IP_V4_PATTERN.matcher(addr.getValue()).matches() ? addr : null;
78     }
79
80     @Override
81     protected IpClass maybeIpv4AddressNoZone(final IpClass addr) {
82         return maybeIpv4Address(addr);
83     }
84
85     @Override
86     protected IpClass maybeIpv6Address(final IpClass addr) {
87         return addr.getValue().indexOf(':') != -1 ? addr : null;
88     }
89
90     @Override
91     protected IpClass maybeIpv6AddressNoZone(final IpClass addr) {
92         return maybeIpv6Address(addr);
93     }
94 }