Sonar clean-up: braces for control statements
[netvirt.git] / plugin / src / main / java / org / opendaylight / ovsdb / plugin / api / OvsVswitchdSchemaConstants.java
1 /*
2  * Copyright (C) 2014 Red Hat, Inc.
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  * Authors : Madhu Venugopal
9  */
10
11 package org.opendaylight.ovsdb.plugin.api;
12
13 import org.opendaylight.ovsdb.utils.config.ConfigProperties;
14
15 import java.util.Map;
16
17 import com.google.common.collect.Maps;
18
19 public final class OvsVswitchdSchemaConstants {
20     public static String DATABASE_NAME = "Open_vSwitch";
21
22     private static final String OVSDB_AUTOCONFIGURECONTROLLER = "ovsdb.autoconfigurecontroller";
23     private static final boolean defaultAutoConfigureController = true;
24     private static boolean autoConfigureController = defaultAutoConfigureController;
25
26     private static Map<String, String[]> columnToMutate = Maps.newHashMap();
27     public static String[] getParentColumnToMutate(String childTabletoInsert) {
28         return columnToMutate.get(childTabletoInsert);
29     }
30     private static void addParentColumnToMutate(String childTable, String parentTable, String columnName) {
31         String[] parentColumn = {parentTable, columnName};
32         columnToMutate.put(childTable, parentColumn);
33     }
34
35     static {
36         addParentColumnToMutate("Bridge", "Open_vSwitch", "bridges");
37         addParentColumnToMutate("Port", "Bridge", "ports");
38         addParentColumnToMutate("Interface", "Port", "interfaces");
39         addParentColumnToMutate("SSL", "Open_vSwitch", "ssl");
40         addParentColumnToMutate("IPFIX", "Bridge", "ipfix");
41         addParentColumnToMutate("sFlow", "Bridge", "sflow");
42         addParentColumnToMutate("Flow_Table", "Bridge", "flow_tables");
43         addParentColumnToMutate("QoS", "Port", "qos");
44         addParentColumnToMutate("NetFlow", "Bridge", "netflow");
45         addParentColumnToMutate("Mirror", "Bridge", "mirrors");
46         addParentColumnToMutate("Manager", "Open_vSwitch", "manager_options");
47         addParentColumnToMutate("Controller", "Bridge", "controller");
48         // Keep the default value if the property is not set
49         final String autoConfigureControllerStr =
50                 ConfigProperties.getProperty(OvsVswitchdSchemaConstants.class, OVSDB_AUTOCONFIGURECONTROLLER);
51         if (autoConfigureControllerStr != null) {
52             autoConfigureController = Boolean.getBoolean(autoConfigureControllerStr);
53         }
54     }
55
56     public static void setAutoConfigureController(boolean autoConfigure) {
57         autoConfigureController = autoConfigure;
58     }
59
60     public static boolean shouldConfigureController (String databaseName, String tableName) {
61         return autoConfigureController && databaseName.equals(DATABASE_NAME) && tableName.equals("Bridge");
62     }
63
64     public enum PortType {
65         VLAN("vlan"),
66         TUNNEL("Tunnel"),
67         BONDING("Bonding"),
68         PATCH("patch"),
69         INTERNAL("internal");
70
71         private PortType(String name) {
72             this.name = name;
73         }
74
75         private String name;
76
77         @Override
78         public String toString() {
79             return name;
80         }
81     }
82
83 }