/* * Attribute.java * Attribute class defining methods for creating * and editing Attribute types, as well as * retrieving them from the database. This * class extends the DBObject class */ package base; import java.sql.ResultSet; public class Attribute extends DBObject{ private String Name; private String Type; //Creates an attribute instance for //an attribute already in the Database public Attribute(int i){ //Set ID from User Input id = i; getConn(); ResultSet rs = query("SELECT * FROM attribute WHERE AttributeID = " + id + ";"); try { rs.next(); Name = rs.getString("AttributeName"); Type = rs.getString("Attribute Type"); } catch (Exception e){e.printStackTrace();} } //Creates a new attribute type from User Input public Attribute(String n, String t){ if (checkType(t)){ Type = t; Name = n; String query = "INSERT INTO attribute VALUES (NULL, '" + Name + "', '" + Type + "');" ; //Connect to the Database getConn(); //Execute the Query and set NodeID id = create(query); } else { System.out.println("Invalid Attribute Type, Attribute not Created"); } } /* checkType(Attribute Type) * function to allow for easy checking * of an attribute type to ensure it's * validity. */ public boolean checkType(String t){ //Basic Data Types if (t.equals("Text")){return true;} if (t.equals("Int")){return true;} if (t.equals("Long")){return true;} if (t.equals("Date")){return true;} if (t.equals("URL")){return true; } // Blob Types if (t.equals("Audio")){return true;} if (t.equals("Video")){return true;} if (t.equals("Image")){return true;} if (t.equals("File")){return true;} return false; /* * This is pretty clumsy currently, at a * future point i'll sit down and hammer * out a more thought out list for data * types, but these seem to cover most * everything for now. the File type is * in there to catch any other blob objects * which aren't covered in those other types */ } public String getAttributeName(){ if (DBWrite){ getConn(); ResultSet rs = query("SELECT AttributeName from attribute WHERE AttributeID = " + id + ";"); try { rs.next(); Name = rs.getString("AttributeName"); } catch (Exception e){ e.printStackTrace(); Name = "Unable to Retrieve Attribute Name"; } return Name; } else { return Name; } } public String getAttributeType(){ if (DBWrite){ getConn(); ResultSet rs = query("SELECT AttributeType FROM attribute WHERE AttributeID = " + id + ";"); try{ rs.next(); Type = rs.getString("AttributeType"); }catch(Exception e){ e.printStackTrace(); Type = "Unable to Retrieve Attribute Type"; } return Type; } else { return Type; } } public void setAttributeName(String n){ Name = n; if (DBWrite){ String q = "UPDATE attribute SET AttributeName = '" + Name + "' WHERE AttributeID = " + id + ";"; query(q); } } public void setAttributeType(String t){ if (checkType(t)){ Type = t; if (DBWrite){ String q = "UPDATE attribute set AttributeType = '" + Type + "' WHERE AttributeID = " + id + ";"; query(q); } } else {System.out.println("Invalid Attribute Type Submitted");} } }