apply checkstyle check during build for neutron-mapper
[groupbasedpolicy.git] / neutron-mapper / src / main / java / org / opendaylight / groupbasedpolicy / neutron / mapper / util / NetworkUtils.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.neutron.mapper.util;
10
11 import com.google.common.base.Optional;
12 import com.google.common.base.Strings;
13
14 import java.util.ArrayList;
15 import java.util.Collections;
16 import java.util.List;
17
18 import javax.annotation.Nonnull;
19 import javax.annotation.Nullable;
20
21 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid;
22 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.l3.ext.rev150712.NetworkL3Extension;
23 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.networks.rev150712.networks.attributes.Networks;
24 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.networks.rev150712.networks.attributes.networks.Network;
25 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.provider.ext.rev150712.NetworkProviderExtension;
26
27 public class NetworkUtils {
28
29     public static List<Network> findRouterExternalNetworks(@Nullable Networks networks) {
30         if (networks == null || networks.getNetwork() == null) {
31             return Collections.emptyList();
32         }
33         List<Network> result = new ArrayList<>();
34         for (Network network : networks.getNetwork()) {
35             if (isRouterExternal(network)) {
36                 result.add(network);
37             }
38         }
39         return result;
40     }
41
42     public static Optional<Network> findNetwork(Uuid uuid, @Nullable Networks networks) {
43         if (networks == null || networks.getNetwork() == null) {
44             return Optional.absent();
45         }
46         for (Network network : networks.getNetwork()) {
47             if (network.getUuid().equals(uuid)) {
48                 return Optional.of(network);
49             }
50         }
51         return Optional.absent();
52     }
53
54     public static boolean isTenantNetwork(Network network) {
55         return getPhysicalNetwork(network).isEmpty();
56     }
57
58     public static boolean isProviderPhysicalNetwork(Network network) {
59         return (!isRouterExternal(network) && !getPhysicalNetwork(network).isEmpty());
60     }
61
62     public static boolean isRouterExternal(Network network) {
63         NetworkL3Extension l3Extension = network.getAugmentation(NetworkL3Extension.class);
64         if (l3Extension == null) {
65             return false;
66         }
67         Boolean external = l3Extension.isExternal();
68         if (external == null) {
69             return false;
70         }
71         return external;
72     }
73
74     public static @Nonnull String getPhysicalNetwork(Network network) {
75         NetworkProviderExtension providerExtension = network.getAugmentation(NetworkProviderExtension.class);
76         if (providerExtension == null) {
77             return "";
78         }
79         return Strings.nullToEmpty(providerExtension.getPhysicalNetwork());
80     }
81
82     public static @Nonnull String getSegmentationId(Network network) {
83         NetworkProviderExtension providerExtension = network.getAugmentation(NetworkProviderExtension.class);
84         if (providerExtension == null) {
85             return "";
86         }
87         return Strings.nullToEmpty(providerExtension.getSegmentationId());
88     }
89 }