/* * Node.java * Node class defining methods for creating * and editing nodes, as well as saving or * retrieving them from the database. This * class extends the DBObject class which * deals with the nitty gritty of the * database connections. * * To Do * --------------- * Filter input to remove possible command characters */ package base; import java.sql.ResultSet; public class Node extends DBObject{ //Node Values private String label; private int templateID; //Create a node object from a specific //node instance in the Database. i is the //nodeID you want to retrieve public Node(int i){ //Set our ID from user Input id = i; getConn(); //Query the database and get the result set ResultSet rs = query("SELECT * FROM node WHERE NodeID = " + id + ";"); //Get the node information from the result set try { rs.next(); label = rs.getString("NodeLabel"); templateID = rs.getInt("TemplateID"); } catch(Exception e){e.printStackTrace();} } //Create a new node object to be placed in //the database, get the label and template //id from the user. public Node(String l, int t){ label = l; templateID = t; //Build the MySQL Query String query = "INSERT INTO node VALUES (NULL, '" + label + "', '" + templateID + "');"; //Connect to the Database getConn(); //Execute the Query and set NodeID id = create(query); } //Setters to make sure that the database //is kept up to date when things are //updated. This is probably really ineffecient //when used in a batch mode, but I'm not quite //sure how else I should do this. public void setLabel(String l) { label = l; if (DBWrite){ String q = "UPDATE node SET NodeLabel = '" + label + "' WHERE NodeID = " + id + ";"; query(q); } } public void setTemplateID(int t) { templateID = t; if (DBWrite){ query("UPDATE node SET TemplateID = " + templateID + " WHERE NodeID = " + "" + id + ";"); } } public String getLabel(){ if (DBWrite){ getConn(); ResultSet rs = query("SELECT NodeLabel FROM node WHERE NodeID = " + id + ";"); try { rs.next(); label = rs.getString("NodeLabel"); } catch (Exception e){ label = "Label Information Unavailable"; e.printStackTrace(); } } return label; } public int getTemplateID(){ if (DBWrite){ ResultSet rs = query("SELECT TemplateID FROM node WHERE NodeID = " + id + ";"); try { rs.next(); templateID = rs.getInt("TemplateID"); } catch (Exception e){ templateID = 0; e.printStackTrace(); } } return templateID; } }