* * Licensed under the Apache License, Version 2.0 (the "License");\r
* * you may not use this file except in compliance with the License.\r
* * You may obtain a copy of the License at\r
- * * \r
+ * *\r
* * http://www.apache.org/licenses/LICENSE-2.0\r
- * * \r
+ * *\r
* * Unless required by applicable law or agreed to in writing, software\r
* * distributed under the License is distributed on an "AS IS" BASIS,\r
* * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
\r
package org.onap.dmaap.datarouter.provisioning.beans;\r
\r
+import com.att.eelf.configuration.EELFLogger;\r
+import com.att.eelf.configuration.EELFManager;\r
import java.sql.Connection;\r
import java.sql.PreparedStatement;\r
import java.sql.ResultSet;\r
import java.sql.SQLException;\r
-import java.sql.Statement;\r
+import java.util.Objects;\r
import java.util.SortedSet;\r
import java.util.TreeSet;\r
-\r
-import org.apache.log4j.Logger;\r
import org.json.JSONObject;\r
-import org.onap.dmaap.datarouter.provisioning.utils.DB;\r
+import org.onap.dmaap.datarouter.provisioning.utils.ProvDbUtils;\r
\r
/**\r
* The representation of one route in the Network Route Table.\r
* @version $Id: NetworkRoute.java,v 1.2 2013/12/16 20:30:23 eby Exp $\r
*/\r
public class NetworkRoute extends NodeClass implements Comparable<NetworkRoute> {\r
- private static Logger intlogger = Logger.getLogger("org.onap.dmaap.datarouter.provisioning.internal");\r
- private final int fromnode;\r
- private final int tonode;\r
- private final int vianode;\r
-\r
- /**\r
- * Get a set of all Network Routes in the DB. The set is sorted according to the natural sorting order\r
- * of the routes (based on the from and to node names in each route).\r
- * @return the sorted set\r
- */\r
- public static SortedSet<NetworkRoute> getAllNetworkRoutes() {\r
- SortedSet<NetworkRoute> set = new TreeSet<NetworkRoute>();\r
- try {\r
- DB db = new DB();\r
- @SuppressWarnings("resource")\r
- Connection conn = db.getConnection();\r
- Statement stmt = conn.createStatement();\r
- ResultSet rs = stmt.executeQuery("select FROMNODE, TONODE, VIANODE from NETWORK_ROUTES");\r
- while (rs.next()) {\r
- int fromnode = rs.getInt("FROMNODE");\r
- int tonode = rs.getInt("TONODE");\r
- int vianode = rs.getInt("VIANODE");\r
- set.add(new NetworkRoute(fromnode, tonode, vianode));\r
- }\r
- rs.close();\r
- stmt.close();\r
- db.release(conn);\r
- } catch (SQLException e) {\r
- e.printStackTrace();\r
- }\r
- return set;\r
- }\r
-\r
- public NetworkRoute(String fromnode, String tonode) throws IllegalArgumentException {\r
- this.fromnode = lookupNodeName(fromnode);\r
- this.tonode = lookupNodeName(tonode);\r
- this.vianode = -1;\r
- }\r
-\r
- public NetworkRoute(String fromnode, String tonode, String vianode) throws IllegalArgumentException {\r
- this.fromnode = lookupNodeName(fromnode);\r
- this.tonode = lookupNodeName(tonode);\r
- this.vianode = lookupNodeName(vianode);\r
- }\r
-\r
- public NetworkRoute(JSONObject jo) throws IllegalArgumentException {\r
- this.fromnode = lookupNodeName(jo.getString("from"));\r
- this.tonode = lookupNodeName(jo.getString("to"));\r
- this.vianode = lookupNodeName(jo.getString("via"));\r
- }\r
-\r
- public NetworkRoute(int fromnode, int tonode, int vianode) throws IllegalArgumentException {\r
- this.fromnode = fromnode;\r
- this.tonode = tonode;\r
- this.vianode = vianode;\r
- }\r
-\r
- public int getFromnode() {\r
- return fromnode;\r
- }\r
-\r
- public int getTonode() {\r
- return tonode;\r
- }\r
-\r
- public int getVianode() {\r
- return vianode;\r
- }\r
-\r
- @Override\r
- public boolean doDelete(Connection c) {\r
- boolean rv = true;\r
- PreparedStatement ps = null;\r
- try {\r
- String sql = "delete from NETWORK_ROUTES where FROMNODE = ? AND TONODE = ?";\r
- ps = c.prepareStatement(sql);\r
- ps.setInt(1, fromnode);\r
- ps.setInt(2, tonode);\r
- ps.execute();\r
- } catch (SQLException e) {\r
- rv = false;\r
- intlogger.warn("PROV0007 doDelete: "+e.getMessage());\r
- e.printStackTrace();\r
- } finally {\r
- try {\r
- ps.close();\r
- } catch (SQLException e) {\r
- e.printStackTrace();\r
- }\r
- }\r
- return rv;\r
- }\r
-\r
- @Override\r
- public boolean doInsert(Connection c) {\r
- boolean rv = false;\r
- if (this.vianode >= 0) {\r
- PreparedStatement ps = null;\r
- try {\r
- // Create the NETWORK_ROUTES row\r
- String sql = "insert into NETWORK_ROUTES (FROMNODE, TONODE, VIANODE) values (?, ?, ?)";\r
- ps = c.prepareStatement(sql);\r
- ps.setInt(1, this.fromnode);\r
- ps.setInt(2, this.tonode);\r
- ps.setInt(3, this.vianode);\r
- ps.execute();\r
- ps.close();\r
- rv = true;\r
- } catch (SQLException e) {\r
- intlogger.warn("PROV0005 doInsert: "+e.getMessage());\r
- e.printStackTrace();\r
- } finally {\r
- try {\r
- ps.close();\r
- } catch (SQLException e) {\r
- e.printStackTrace();\r
- }\r
- }\r
- }\r
- return rv;\r
- }\r
-\r
- @Override\r
- public boolean doUpdate(Connection c) {\r
- boolean rv = true;\r
- PreparedStatement ps = null;\r
- try {\r
- String sql = "update NETWORK_ROUTES set VIANODE = ? where FROMNODE = ? and TONODE = ?";\r
- ps = c.prepareStatement(sql);\r
- ps.setInt(1, vianode);\r
- ps.setInt(2, fromnode);\r
- ps.setInt(3, tonode);\r
- ps.executeUpdate();\r
- } catch (SQLException e) {\r
- rv = false;\r
- intlogger.warn("PROV0006 doUpdate: "+e.getMessage());\r
- e.printStackTrace();\r
- } finally {\r
- try {\r
- ps.close();\r
- } catch (SQLException e) {\r
- e.printStackTrace();\r
- }\r
- }\r
- return rv;\r
- }\r
-\r
- @Override\r
- public JSONObject asJSONObject() {\r
- JSONObject jo = new JSONObject();\r
- jo.put("from", lookupNodeID(fromnode));\r
- jo.put("to", lookupNodeID(tonode));\r
- jo.put("via", lookupNodeID(vianode));\r
- return jo;\r
- }\r
-\r
- @Override\r
- public String getKey() {\r
- return lookupNodeID(fromnode)+":"+lookupNodeID(tonode);\r
- }\r
-\r
- @Override\r
- public boolean equals(Object obj) {\r
- if (!(obj instanceof NetworkRoute))\r
- return false;\r
- NetworkRoute on = (NetworkRoute)obj;\r
- return (fromnode == on.fromnode) && (tonode == on.tonode) && (vianode == on.vianode);\r
- }\r
-\r
- @Override\r
- public int compareTo(NetworkRoute o) {\r
- if (this.fromnode == o.fromnode) {\r
- if (this.tonode == o.tonode)\r
- return this.vianode - o.vianode;\r
- return this.tonode - o.tonode;\r
- }\r
- return this.fromnode - o.fromnode;\r
- }\r
-\r
- @Override\r
- public String toString() {\r
- return String.format("NETWORK: from=%d, to=%d, via=%d", fromnode, tonode, vianode);\r
- }\r
+\r
+ private static EELFLogger intlogger = EELFManager.getInstance().getLogger("InternalLog");\r
+ private static final String SQLEXCEPTION = "SQLException: ";\r
+ private final int fromnode;\r
+ private final int tonode;\r
+ private final int vianode;\r
+\r
+ /**\r
+ * NetworkRoute Constructor.\r
+ * @param fromnode node source\r
+ * @param tonode node destination\r
+ */\r
+ public NetworkRoute(String fromnode, String tonode) {\r
+ this.fromnode = lookupNodeName(fromnode);\r
+ this.tonode = lookupNodeName(tonode);\r
+ this.vianode = -1;\r
+ }\r
+\r
+ /**\r
+ * NetworkRoute Constructor.\r
+ * @param fromnode node source\r
+ * @param tonode node destination\r
+ * @param vianode via node\r
+ */\r
+ public NetworkRoute(String fromnode, String tonode, String vianode) {\r
+ this.fromnode = lookupNodeName(fromnode);\r
+ this.tonode = lookupNodeName(tonode);\r
+ this.vianode = lookupNodeName(vianode);\r
+ }\r
+\r
+ /**\r
+ * NetworkRoute Constructor.\r
+ * @param jo JSONObject of attributes\r
+ */\r
+ public NetworkRoute(JSONObject jo) {\r
+ this.fromnode = lookupNodeName(jo.getString("from"));\r
+ this.tonode = lookupNodeName(jo.getString("to"));\r
+ this.vianode = lookupNodeName(jo.getString("via"));\r
+ }\r
+\r
+ /**\r
+ * NetworkRoute Constructor.\r
+ * @param fromnode integer source node\r
+ * @param tonode integer destination node\r
+ * @param vianode integer via node\r
+ */\r
+ private NetworkRoute(int fromnode, int tonode, int vianode) {\r
+ this.fromnode = fromnode;\r
+ this.tonode = tonode;\r
+ this.vianode = vianode;\r
+ }\r
+\r
+ /**\r
+ * Get a set of all Network Routes in the DB. The set is sorted according to the natural sorting order of the\r
+ * routes (based on the from and to node names in each route).\r
+ *\r
+ * @return the sorted set\r
+ */\r
+ public static SortedSet<NetworkRoute> getAllNetworkRoutes() {\r
+ SortedSet<NetworkRoute> set = new TreeSet<>();\r
+ try (Connection conn = ProvDbUtils.getInstance().getConnection();\r
+ PreparedStatement ps = conn.prepareStatement("select FROMNODE, TONODE, VIANODE from NETWORK_ROUTES");\r
+ ResultSet rs = ps.executeQuery()) {\r
+ addNetworkRouteToSet(set, rs);\r
+ } catch (SQLException e) {\r
+ intlogger.error(SQLEXCEPTION + e.getMessage(), e);\r
+ }\r
+ return set;\r
+ }\r
+\r
+ private static void addNetworkRouteToSet(SortedSet<NetworkRoute> set, ResultSet rs) throws SQLException {\r
+ while (rs.next()) {\r
+ int fromnode = rs.getInt("FROMNODE");\r
+ int tonode = rs.getInt("TONODE");\r
+ int vianode = rs.getInt("VIANODE");\r
+ set.add(new NetworkRoute(fromnode, tonode, vianode));\r
+ }\r
+ }\r
+\r
+ public int getFromnode() {\r
+ return fromnode;\r
+ }\r
+\r
+ public int getTonode() {\r
+ return tonode;\r
+ }\r
+\r
+ int getVianode() {\r
+ return vianode;\r
+ }\r
+\r
+ @Override\r
+ public boolean doDelete(Connection conn) {\r
+ boolean rv = true;\r
+ try (PreparedStatement ps = conn.prepareStatement(\r
+ "delete from NETWORK_ROUTES where FROMNODE = ? AND TONODE = ?")) {\r
+ ps.setInt(1, fromnode);\r
+ ps.setInt(2, tonode);\r
+ ps.execute();\r
+ } catch (SQLException e) {\r
+ rv = false;\r
+ intlogger.warn("PROV0007 doDelete: " + e.getMessage(), e);\r
+ }\r
+ return rv;\r
+ }\r
+\r
+ @Override\r
+ public boolean doInsert(Connection conn) {\r
+ boolean rv = false;\r
+ if (this.vianode >= 0) {\r
+ try (PreparedStatement ps = conn.prepareStatement(\r
+ "insert into NETWORK_ROUTES (FROMNODE, TONODE, VIANODE) values (?, ?, ?)")) {\r
+ // Create the NETWORK_ROUTES row\r
+ ps.setInt(1, this.fromnode);\r
+ ps.setInt(2, this.tonode);\r
+ ps.setInt(3, this.vianode);\r
+ ps.execute();\r
+ rv = true;\r
+ } catch (SQLException e) {\r
+ intlogger.warn("PROV0005 doInsert: " + e.getMessage(), e);\r
+ }\r
+ }\r
+ return rv;\r
+ }\r
+\r
+ @Override\r
+ public boolean doUpdate(Connection conn) {\r
+ boolean rv = true;\r
+ try (PreparedStatement ps = conn.prepareStatement(\r
+ "update NETWORK_ROUTES set VIANODE = ? where FROMNODE = ? and TONODE = ?")) {\r
+ ps.setInt(1, vianode);\r
+ ps.setInt(2, fromnode);\r
+ ps.setInt(3, tonode);\r
+ ps.executeUpdate();\r
+ } catch (SQLException e) {\r
+ rv = false;\r
+ intlogger.warn("PROV0006 doUpdate: " + e.getMessage(), e);\r
+ }\r
+ return rv;\r
+ }\r
+\r
+ @Override\r
+ public JSONObject asJSONObject() {\r
+ JSONObject jo = new JSONObject();\r
+ jo.put("from", lookupNodeID(fromnode));\r
+ jo.put("to", lookupNodeID(tonode));\r
+ jo.put("via", lookupNodeID(vianode));\r
+ return jo;\r
+ }\r
+\r
+ @Override\r
+ public String getKey() {\r
+ return lookupNodeID(fromnode) + ":" + lookupNodeID(tonode);\r
+ }\r
+\r
+ @Override\r
+ public boolean equals(Object obj) {\r
+ if (!(obj instanceof NetworkRoute)) {\r
+ return false;\r
+ }\r
+ NetworkRoute on = (NetworkRoute) obj;\r
+ return (fromnode == on.fromnode) && (tonode == on.tonode) && (vianode == on.vianode);\r
+ }\r
+\r
+ @Override\r
+ public int hashCode() {\r
+ return Objects.hash(fromnode, tonode, vianode);\r
+ }\r
+\r
+ @Override\r
+ public int compareTo(NetworkRoute nr) {\r
+ if (this.fromnode == nr.fromnode) {\r
+ if (this.tonode == nr.tonode) {\r
+ return this.vianode - nr.vianode;\r
+ }\r
+ return this.tonode - nr.tonode;\r
+ }\r
+ return this.fromnode - nr.fromnode;\r
+ }\r
+\r
+ @Override\r
+ public String toString() {\r
+ return String.format("NETWORK: from=%d, to=%d, via=%d", fromnode, tonode, vianode);\r
+ }\r
}\r