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