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());