Author: [log in to unmask]
Date: Mon Apr 27 18:36:09 2015
New Revision: 2838
Log:
Change method for getting new collection ID
Modified:
java/branches/HPSJAVA-488/conditions/src/main/java/org/hps/conditions/database/DatabaseConditionsManager.java
java/branches/HPSJAVA-488/ecal-recon/src/main/java/org/hps/recon/ecal/EcalCalibrationsDriver.java
java/branches/HPSJAVA-488/ecal-recon/src/main/java/org/hps/recon/ecal/EcalPedestalCalculator.java
java/branches/HPSJAVA-488/monitoring-drivers/src/main/java/org/hps/monitoring/ecal/plots/EcalLedSequenceMonitor.java
Modified: java/branches/HPSJAVA-488/conditions/src/main/java/org/hps/conditions/database/DatabaseConditionsManager.java
=============================================================================
--- java/branches/HPSJAVA-488/conditions/src/main/java/org/hps/conditions/database/DatabaseConditionsManager.java (original)
+++ java/branches/HPSJAVA-488/conditions/src/main/java/org/hps/conditions/database/DatabaseConditionsManager.java Mon Apr 27 18:36:09 2015
@@ -12,7 +12,6 @@
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
-import java.util.Calendar;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
@@ -287,11 +286,11 @@
* @return the collection's ID
* @throws SQLException
*/
- public synchronized int addCollection(final String tableName, final String log, final String description)
+ public synchronized int getCollectionId(final ConditionsObjectCollection<?> collection, final String description)
throws SQLException {
- if (tableName == null) {
- throw new IllegalArgumentException("The tableName argument is null.");
- }
+
+ final String caller = Thread.currentThread().getStackTrace()[2].getClassName();
+ final String log = caller + " created by " + System.getProperty("user.name");
final boolean opened = this.openConnection();
PreparedStatement statement = null;
ResultSet resultSet = null;
@@ -300,12 +299,8 @@
statement = this.connection.prepareStatement(
"INSERT INTO collections (table_name, log, description, created) VALUES (?, ?, ?, NOW())",
Statement.RETURN_GENERATED_KEYS);
- statement.setString(1, tableName);
- if (log == null) {
- statement.setNull(2, java.sql.Types.VARCHAR);
- } else {
- statement.setString(2, log);
- }
+ statement.setString(1, collection.getTableMetaData().getTableName());
+ statement.setString(2, log);
if (description == null) {
statement.setNull(3, java.sql.Types.VARCHAR);
} else {
@@ -324,6 +319,7 @@
}
this.closeConnection(opened);
}
+ collection.setCollectionId(collectionId);
return collectionId;
}
@@ -739,10 +735,8 @@
tableMetaData = metaDataList.get(0);
}
if (collection.getCollectionId() == -1) {
- collection.setCollectionId(this.addCollection(tableMetaData.getTableName(),
- "DatabaseConditionsManager created collection by " + System.getProperty("user.name"), null));
- }
- // FIXME: If collection ID is already set this should be an error!
+ collection.setCollectionId(this.getCollectionId(collection, null));
+ }
logger.info("inserting collection with ID " + collection.getCollectionId() + " and key "
+ tableMetaData.getKey() + " into table " + tableMetaData.getTableName());
@@ -1183,4 +1177,34 @@
this.closeConnection(openedConnection);
return keys;
}
+
+ public <CollectionType extends ConditionsObjectCollection<?>> CollectionType newCollection(Class<CollectionType> collectionType) {
+ List<TableMetaData> tableMetaDataList = TableRegistry.getTableRegistry().findByCollectionType(collectionType);
+ if (tableMetaDataList.size() > 1) {
+ throw new RuntimeException("More than one table meta data object returned for type: " + collectionType.getName());
+ }
+ TableMetaData tableMetaData = tableMetaDataList.get(0);
+ CollectionType collection;
+ try {
+ collection = collectionType.newInstance();
+ } catch (InstantiationException | IllegalAccessException e) {
+ throw new RuntimeException("Error creating new collection.", e);
+ }
+ collection.setTableMetaData(tableMetaData);
+ collection.setConnection(this.getConnection());
+ return collection;
+ }
+
+ public <CollectionType extends ConditionsObjectCollection<?>> CollectionType newCollection(Class<CollectionType> collectionType, String tableName) {
+ TableMetaData tableMetaData = TableRegistry.getTableRegistry().findByTableName(tableName);
+ CollectionType collection;
+ try {
+ collection = collectionType.newInstance();
+ } catch (InstantiationException | IllegalAccessException e) {
+ throw new RuntimeException("Error creating new collection.", e);
+ }
+ collection.setTableMetaData(tableMetaData);
+ collection.setConnection(this.getConnection());
+ return collection;
+ }
}
Modified: java/branches/HPSJAVA-488/ecal-recon/src/main/java/org/hps/recon/ecal/EcalCalibrationsDriver.java
=============================================================================
--- java/branches/HPSJAVA-488/ecal-recon/src/main/java/org/hps/recon/ecal/EcalCalibrationsDriver.java (original)
+++ java/branches/HPSJAVA-488/ecal-recon/src/main/java/org/hps/recon/ecal/EcalCalibrationsDriver.java Mon Apr 27 18:36:09 2015
@@ -293,7 +293,7 @@
private void loadCalibrations(EcalCalibrationCollection calibrations) {
int collectionId = -1;
try {
- conditionsManager.addCollection(ECAL_CALIBRATIONS, "EcalCalibrationsDriver added by " + System.getProperty("user.name"), null);
+ conditionsManager.getCollectionId(calibrations, "EcalCalibrationsDriver added by " + System.getProperty("user.name"), null);
} catch (Exception e) {
throw new RuntimeException(e);
}
Modified: java/branches/HPSJAVA-488/ecal-recon/src/main/java/org/hps/recon/ecal/EcalPedestalCalculator.java
=============================================================================
--- java/branches/HPSJAVA-488/ecal-recon/src/main/java/org/hps/recon/ecal/EcalPedestalCalculator.java (original)
+++ java/branches/HPSJAVA-488/ecal-recon/src/main/java/org/hps/recon/ecal/EcalPedestalCalculator.java Mon Apr 27 18:36:09 2015
@@ -168,7 +168,7 @@
int collectionId = -1;
try {
- collectionId = conditionsManager.addCollection(dbTableName, "EcalPedestalCalculator added by " + System.getProperty("user.name"), null);
+ collectionId = conditionsManager.getCollectionId(calibrations, "EcalPedestalCalculator added by " + System.getProperty("user.name"), null);
} catch (Exception e) {
throw new RuntimeException(e);
}
Modified: java/branches/HPSJAVA-488/monitoring-drivers/src/main/java/org/hps/monitoring/ecal/plots/EcalLedSequenceMonitor.java
=============================================================================
--- java/branches/HPSJAVA-488/monitoring-drivers/src/main/java/org/hps/monitoring/ecal/plots/EcalLedSequenceMonitor.java (original)
+++ java/branches/HPSJAVA-488/monitoring-drivers/src/main/java/org/hps/monitoring/ecal/plots/EcalLedSequenceMonitor.java Mon Apr 27 18:36:09 2015
@@ -666,12 +666,10 @@
int collectionId = -1;
try {
- collectionId = conditionsManager.addCollection(dbTableName, "EcalLedSequenceMonitor generated by " + System.getProperty("user.name"), null);
+ collectionId = conditionsManager.getCollectionId(led_calibrations, "EcalLedSequenceMonitor generated by " + System.getProperty("user.name"), null);
} catch (Exception e) {
throw new RuntimeException(e);
}
-
- led_calibrations.setCollectionId(collectionId);
System.err.println("CollectionID: "+collectionId);
led_calibrations.insert();
ConditionsRecord conditionsRecord = new ConditionsRecord(
|