Print

Print


Author: [log in to unmask]
Date: Tue Nov 25 01:47:10 2014
New Revision: 1578

Log:
Add constructor with arguments.

Modified:
    java/trunk/conditions/src/main/java/org/hps/conditions/api/ConditionsRecord.java

Modified: java/trunk/conditions/src/main/java/org/hps/conditions/api/ConditionsRecord.java
 =============================================================================
--- java/trunk/conditions/src/main/java/org/hps/conditions/api/ConditionsRecord.java	(original)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/api/ConditionsRecord.java	Tue Nov 25 01:47:10 2014
@@ -14,7 +14,7 @@
  * @author Jeremy McCormick <[log in to unmask]>
  */
 public final class ConditionsRecord extends AbstractConditionsObject {
-
+    
     /**
      * Collection type.
      */
@@ -28,19 +28,31 @@
             objects.add(record);
         }
     }
+    
+    public ConditionsRecord(int collectionId, int runStart, int runEnd, String name, String tableName, String notes, String tag) {
+        this.setFieldValue("collection_id", collectionId);
+        this.setFieldValue("run_start", runStart);
+        this.setFieldValue("run_end", runEnd);
+        this.setFieldValue("name", name);
+        this.setFieldValue("table_name", tableName);
+        this.setFieldValue("notes", notes);
+        this.setFieldValue("tag", tag);
+        this.setFieldValue("created", new Date());
+        this.setFieldValue("created_by", System.getProperty("user.name"));
+    }
 
     public ConditionsRecord() {
     }
     
+    // TODO: This should be replaced by generic insert method on ConditionsObject (if possible).
     public void insert() throws ConditionsObjectException {
-        if (!isNew())
-            throw new ConditionsObjectException("Record already exists in database and cannot be inserted.");
-        if (isReadOnly())
-            throw new ConditionsObjectException("This object is set to read only mode.");
         if (fieldValues.size() == 0)
             throw new ConditionsObjectException("There are no field values to insert.");
-        String query = QueryBuilder.buildInsert(getTableMetaData().getTableName(), this.getFieldValues());        
-        System.out.println(query);
+        if (getTableMetaData() == null) {
+            throw new ConditionsObjectException("The table meta data is null for ConditionsRecord.");
+        }
+        String query = QueryBuilder.buildInsert(getTableMetaData().getTableName(), this.getFieldValues());
+        //System.out.println(query);
         List<Integer> keys = DatabaseConditionsManager.getInstance().updateQuery(query);
         if (keys.size() != 1) {
             throw new ConditionsObjectException("SQL insert returned wrong number of keys: " + keys.size());