Author: [log in to unmask] Date: Fri Jun 12 16:55:16 2015 New Revision: 3144 Log: Fix compilation and test errors on conditions branch. Modified: java/branches/HPSJAVA-488/conditions/src/main/java/org/hps/conditions/ConditionsDriver.java java/branches/HPSJAVA-488/conditions/src/main/java/org/hps/conditions/api/AbstractConditionsObjectConverter.java java/branches/HPSJAVA-488/conditions/src/main/java/org/hps/conditions/api/BaseConditionsObject.java java/branches/HPSJAVA-488/conditions/src/main/java/org/hps/conditions/api/BaseConditionsObjectCollection.java java/branches/HPSJAVA-488/conditions/src/main/java/org/hps/conditions/api/ConditionsObject.java java/branches/HPSJAVA-488/conditions/src/main/java/org/hps/conditions/api/ConditionsObjectCollection.java java/branches/HPSJAVA-488/conditions/src/main/java/org/hps/conditions/api/ConditionsRecord.java java/branches/HPSJAVA-488/conditions/src/main/java/org/hps/conditions/package-info.java java/branches/HPSJAVA-488/conditions/src/main/java/org/hps/conditions/svt/SvtBiasConditionsLoader.java java/branches/HPSJAVA-488/conditions/src/main/java/org/hps/conditions/svt/SvtTimingConstantsLoader.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/ConditionsDriver.java ============================================================================= --- java/branches/HPSJAVA-488/conditions/src/main/java/org/hps/conditions/ConditionsDriver.java (original) +++ java/branches/HPSJAVA-488/conditions/src/main/java/org/hps/conditions/ConditionsDriver.java Fri Jun 12 16:55:16 2015 @@ -33,7 +33,7 @@ * end of the hps-distribution. If that class is not being used, then the method must be executed manually at the right * time to achieve the proper behavior. * - * @author <a href="mailto:[log in to unmask]">Jeremy McCormick</a> + * @author Jeremy McCormick, SLAC */ public class ConditionsDriver extends Driver { Modified: java/branches/HPSJAVA-488/conditions/src/main/java/org/hps/conditions/api/AbstractConditionsObjectConverter.java ============================================================================= --- java/branches/HPSJAVA-488/conditions/src/main/java/org/hps/conditions/api/AbstractConditionsObjectConverter.java (original) +++ java/branches/HPSJAVA-488/conditions/src/main/java/org/hps/conditions/api/AbstractConditionsObjectConverter.java Fri Jun 12 16:55:16 2015 @@ -9,12 +9,11 @@ import org.lcsim.conditions.ConditionsManager; /** - * <p> * Implementation of default conversion from database tables to a {@link ConditionsObject} class. * <p> * This class actually returns collections and not individual objects. * - * @author <a href="mailto:[log in to unmask]">Jeremy McCormick</a> + * @author Jeremy McCormick, SLAC * @param <T> The type of the returned data which should be a class extending {@link BaseConditionsObjectCollection}. */ public abstract class AbstractConditionsObjectConverter<T> implements ConditionsConverter<T> { Modified: java/branches/HPSJAVA-488/conditions/src/main/java/org/hps/conditions/api/BaseConditionsObject.java ============================================================================= --- java/branches/HPSJAVA-488/conditions/src/main/java/org/hps/conditions/api/BaseConditionsObject.java (original) +++ java/branches/HPSJAVA-488/conditions/src/main/java/org/hps/conditions/api/BaseConditionsObject.java Fri Jun 12 16:55:16 2015 @@ -1,6 +1,7 @@ package org.hps.conditions.api; import java.sql.Connection; +import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; @@ -37,24 +38,31 @@ */ static final int UNSET_ROW_ID = -1; + /** + * Perform the default to string operation on a conditions object. + * + * @param object the conditions object + * @return the object converted to a string + */ protected static String defaultToString(final BaseConditionsObject object) { final StringBuffer sb = new StringBuffer(); + sb.append(object.getClass().getSimpleName() + " { "); sb.append("id: " + object.getRowId() + ", "); for (final String field : object.getFieldValues().getFieldNames()) { sb.append(field + ": " + object.getFieldValue(Object.class, field) + ", "); } sb.setLength(sb.length() - 2); - sb.append('\n'); + sb.append(" }"); return sb.toString(); } /** - * The JDBC database connection. + * The JDBC connection used for database operations. */ private Connection connection; /** - * The field values. + * The field values which is a map of key-value pairs corresponding to column values in the database. */ private FieldValues fieldValues; @@ -64,7 +72,7 @@ private int rowId = UNSET_ROW_ID; /** - * Flag to indicate object is locally changed and database update has not been executed. + * Flag to indicate that the object is locally changed and a database update has not been executed. */ private boolean isDirty; @@ -74,20 +82,20 @@ private TableMetaData tableMetaData; /** - * + * No argument class constructor; usable by sub-classes only. */ protected BaseConditionsObject() { this.fieldValues = new FieldValuesMap(); } /** - * Class constructor. + * Public class constructor. * <p> * This should be used when creating new objects without a list of field values. A new <code>FieldValues</code> * object will be automatically created from the table information. * - * @param connection - * @param tableMetaData + * @param connection the database connection + * @param tableMetaData the table meta data */ public BaseConditionsObject(final Connection connection, final TableMetaData tableMetaData) { this.connection = connection; @@ -96,13 +104,13 @@ } /** - * Class constructor. + * Full qualified class constructor. * <p> * This should be used when creating new objects from a list of field values. * - * @param connection - * @param tableMetaData - * @param fields + * @param connection the database connection + * @param tableMetaData the table meta data + * @param fields the field values */ public BaseConditionsObject(final Connection connection, final TableMetaData tableMetaData, final FieldValues fields) { this.connection = connection; @@ -114,18 +122,24 @@ } /** - * + * Delete the object from the database using its row ID. + * + * @throws DatabaseObjectException if object is not in the database + * @throws SQLException if there is an error performing the delete operation */ @Override public final void delete() throws DatabaseObjectException, SQLException { - if (isNew()) { - throw new DatabaseObjectException("Object is not in database and so cannot be deleted.", this); - } - final String sql = "DELETE FROM " + this.tableMetaData.getTableName() + " WHERE id=" + this.getRowId(); - Statement statement = null; + if (isNew()) { + throw new DatabaseObjectException("Object is not in the database.", this); + } + if (connection.getAutoCommit() == false) { + connection.setAutoCommit(true); + } + PreparedStatement statement = null; try { - statement = this.connection.createStatement(); - statement.executeUpdate(sql); + statement = this.connection.prepareStatement("DELETE FROM " + this.tableMetaData.getTableName() + " WHERE id = ?"); + statement.setInt(1, + this.getRowId()); + statement.executeUpdate(); this.rowId = UNSET_ROW_ID; } finally { if (statement != null) { @@ -135,7 +149,9 @@ } /** - * + * Get the collection ID of the object. + * + * @return the collection ID of the object */ @Override @Field(names = {"collection_id"}) @@ -148,7 +164,9 @@ } /** - * + * Get the field values. + * + * @return the field values */ @Override public FieldValues getFieldValues() { @@ -156,7 +174,9 @@ } /** - * + * Get the row ID. + * + * @return the row ID */ @Override public final int getRowId() { @@ -164,7 +184,9 @@ } /** - * + * Get the table meta data for the object. + * + * @return the table meta data or <code>null</code> if not set */ @Override public final TableMetaData getTableMetaData() { @@ -172,17 +194,21 @@ } /** - * + * Get a field value by name. + * + * @param type the return type + * @param name the name of the field */ @Override public final <T> T getFieldValue(final Class<T> type, final String name) { return type.cast(this.fieldValues.getValue(type, name)); } - - /** - * - */ - @Override + + /** + * + */ + @Override + // FIXME: Rewrite to use a PreparedStatement. public final void insert() throws DatabaseObjectException, SQLException { if (!this.isNew()) { throw new DatabaseObjectException("Cannot insert existing record with row ID: " + this.getRowId(), this); @@ -291,12 +317,12 @@ * */ void setCollectionId(final int collectionId) throws ConditionsObjectException { - if (this.getCollectionId() != UNSET_COLLECTION_ID) { - throw new ConditionsObjectException("The collection ID is already set on this object."); - } - if (collectionId <= UNSET_COLLECTION_ID) { - throw new ConditionsObjectException("Invalid collection ID value: " + collectionId); - } + //if (this.getCollectionId() != UNSET_COLLECTION_ID) { + // throw new ConditionsObjectException("The collection ID is already set on this object."); + //} + //if (collectionId <= UNSET_COLLECTION_ID) { + // throw new ConditionsObjectException("Invalid collection ID value: " + collectionId); + //} this.setFieldValue(COLLECTION_ID_FIELD, collectionId); } Modified: java/branches/HPSJAVA-488/conditions/src/main/java/org/hps/conditions/api/BaseConditionsObjectCollection.java ============================================================================= --- java/branches/HPSJAVA-488/conditions/src/main/java/org/hps/conditions/api/BaseConditionsObjectCollection.java (original) +++ java/branches/HPSJAVA-488/conditions/src/main/java/org/hps/conditions/api/BaseConditionsObjectCollection.java Fri Jun 12 16:55:16 2015 @@ -148,7 +148,7 @@ + " table.", this); } } - + // Set collection ID on objects. try { setConditionsObjectCollectionIds(); @@ -184,7 +184,7 @@ ((BaseConditionsObject) object).setRowId(resultSet.getInt(1)); resultSet.close(); } - // This will commit the insert statements for the collections info table and the records. + // Commit the object insert statements together. this.connection.commit(); } catch (final SQLException e1) { @@ -302,13 +302,7 @@ private final void setConditionsObjectCollectionIds() throws ConditionsObjectException { if (this.collectionId != BaseConditionsObject.UNSET_COLLECTION_ID) { for (final ConditionsObject object : this) { - if (object.getCollectionId() != this.getCollectionId()) { - throw new ConditionsObjectException("The collection ID on the object does not match."); - } - if (!object.hasValidCollection()) { - // FIXME: Uses concrete type instead of interface. - ((BaseConditionsObject) object).setCollectionId(this.collectionId); - } + ((BaseConditionsObject) object).setCollectionId(this.collectionId); } } } @@ -408,24 +402,27 @@ @Override public boolean isNew() { - if (this.collectionId == BaseConditionsObject.UNSET_COLLECTION_ID) { + if (this.collectionId == BaseConditionsObject.UNSET_COLLECTION_ID) { return true; } try { - return checkExists(); + // Valid collection ID exists but need to check if inserted into database yet. + return checkExists() == false; } catch (final SQLException e) { throw new RuntimeException(e); } } - private boolean checkExists() throws SQLException { - Statement statement = null; + // FIXME: Use PreparedStatement instead of Statement. + private boolean checkExists() throws SQLException { + PreparedStatement statement = null; ResultSet resultSet = null; boolean exists = false; try { - statement = this.connection.createStatement(); - resultSet = statement.executeQuery("SELECT id FROM " + this.tableMetaData.getTableName() - + " where collection_id=" + this.collectionId); + statement = this.connection.prepareStatement("SELECT id FROM " + this.tableMetaData.getTableName() + + " where collection_id = ?"); + statement.setInt(1, this.collectionId); + resultSet = statement.executeQuery(); exists = resultSet.next(); } finally { if (statement != null) { Modified: java/branches/HPSJAVA-488/conditions/src/main/java/org/hps/conditions/api/ConditionsObject.java ============================================================================= --- java/branches/HPSJAVA-488/conditions/src/main/java/org/hps/conditions/api/ConditionsObject.java (original) +++ java/branches/HPSJAVA-488/conditions/src/main/java/org/hps/conditions/api/ConditionsObject.java Fri Jun 12 16:55:16 2015 @@ -32,4 +32,8 @@ * @param value */ void setFieldValue(String name, Object value); + + // void setCollectionId(Integer id); + + // void setRowId(Integer id); } Modified: java/branches/HPSJAVA-488/conditions/src/main/java/org/hps/conditions/api/ConditionsObjectCollection.java ============================================================================= --- java/branches/HPSJAVA-488/conditions/src/main/java/org/hps/conditions/api/ConditionsObjectCollection.java (original) +++ java/branches/HPSJAVA-488/conditions/src/main/java/org/hps/conditions/api/ConditionsObjectCollection.java Fri Jun 12 16:55:16 2015 @@ -11,15 +11,12 @@ int getCollectionId(); - // FIXME: Perhaps this should not be in the interface. void setCollectionId(int id); int size(); - // FIXME: It might be better if this was external to this interface. void sort(final Comparator<ObjectType> comparator); - // FIXME: It might be better if this was external to this interface. ConditionsObjectCollection<ObjectType> sorted(final Comparator<ObjectType> comparator); boolean contains(Object object); Modified: java/branches/HPSJAVA-488/conditions/src/main/java/org/hps/conditions/api/ConditionsRecord.java ============================================================================= --- java/branches/HPSJAVA-488/conditions/src/main/java/org/hps/conditions/api/ConditionsRecord.java (original) +++ java/branches/HPSJAVA-488/conditions/src/main/java/org/hps/conditions/api/ConditionsRecord.java Fri Jun 12 16:55:16 2015 @@ -25,18 +25,6 @@ */ @SuppressWarnings("serial") public static class ConditionsRecordCollection extends BaseConditionsObjectCollection<ConditionsRecord> { - - @Override - public boolean add(final ConditionsRecord object) throws ConditionsObjectException { - if (object == null) { - throw new IllegalArgumentException("The object argument is null."); - } - final boolean added = getObjects().add(object); - if (!added) { - throw new RuntimeException("Failed to add object."); - } - return added; - } /** * Compare conditions records by creation date. @@ -126,6 +114,35 @@ } } + @Override + public boolean add(final ConditionsRecord object) throws ConditionsObjectException { + if (object == null) { + throw new IllegalArgumentException("The object argument is null."); + } + final boolean added = this.getObjects().add(object); + if (!added) { + throw new RuntimeException("Failed to add object."); + } + return added; + } + + /** + * Find a sub-set of the records with matching key name. + */ + public ConditionsRecordCollection findByKey(final String key) { + final ConditionsRecordCollection collection = new ConditionsRecordCollection(); + for (final ConditionsRecord record : this) { + if (record.getName().equals(key)) { + try { + collection.add(record); + } catch (final ConditionsObjectException e) { + throw new RuntimeException("Error adding record to new collection.", e); + } + } + } + return collection; + } + /** * Get the unique conditions keys from the records in this collection. * @@ -143,21 +160,21 @@ * Sort in place by creation date. */ public final void sortByCreated() { - sort(new CreatedComparator()); + this.sort(new CreatedComparator()); } /** * Sort in place by key. */ public final void sortByKey() { - sort(new KeyComparator()); + this.sort(new KeyComparator()); } /** * Sort in place by run start. */ public final void sortByRunStart() { - sort(new RunStartComparator()); + this.sort(new RunStartComparator()); } /** @@ -173,7 +190,7 @@ * @return the sorted collection */ public final ConditionsRecordCollection sortedByCreated() { - return (ConditionsRecordCollection) sorted(new CreatedComparator()); + return (ConditionsRecordCollection) this.sorted(new CreatedComparator()); } /** @@ -182,7 +199,7 @@ * @return the sorted collection */ public final ConditionsRecordCollection sortedByKey() { - return (ConditionsRecordCollection) sorted(new KeyComparator()); + return (ConditionsRecordCollection) this.sorted(new KeyComparator()); } /** @@ -191,7 +208,7 @@ * @return the sorted collection */ public final ConditionsRecordCollection sortedByRunStart() { - return (ConditionsRecordCollection) sorted(new RunStartComparator()); + return (ConditionsRecordCollection) this.sorted(new RunStartComparator()); } /** @@ -200,24 +217,7 @@ * @return the sorted collection */ public final ConditionsRecordCollection sortedByUpdated() { - return (ConditionsRecordCollection) sorted(new UpdatedComparator()); - } - - /** - * Find a sub-set of the records with matching key name. - */ - public ConditionsRecordCollection findByKey(String key) { - ConditionsRecordCollection collection = new ConditionsRecordCollection(); - for (ConditionsRecord record : this) { - if (record.getName().equals(key)) { - try { - collection.add(record); - } catch (ConditionsObjectException e) { - throw new RuntimeException("Error adding record to new collection.", e); - } - } - } - return collection; + return (ConditionsRecordCollection) this.sorted(new UpdatedComparator()); } } @@ -269,23 +269,13 @@ } /** - * Get the collection ID, overriding this method from the parent class. - * - * @return the collection ID - */ - @Field(names = {"collection_id"}) - public Integer getCollectionId() { - return getFieldValue("collection_id"); - } - - /** * Get the date this record was created. * * @return the date this record was created */ @Field(names = {"created"}) public Date getCreated() { - return getFieldValue("created"); + return this.getFieldValue("created"); } /** @@ -295,7 +285,7 @@ */ @Field(names = {"created_by"}) public String getCreatedBy() { - return getFieldValue("created_by"); + return this.getFieldValue("created_by"); } /** @@ -306,7 +296,7 @@ */ @Field(names = {"name"}) public String getName() { - return getFieldValue("name"); + return this.getFieldValue("name"); } /** @@ -316,7 +306,7 @@ */ @Field(names = {"notes"}) public String getNotes() { - return getFieldValue("notes"); + return this.getFieldValue("notes"); } /** @@ -326,7 +316,7 @@ */ @Field(names = {"run_end"}) public Integer getRunEnd() { - return getFieldValue("run_end"); + return this.getFieldValue("run_end"); } /** @@ -336,7 +326,7 @@ */ @Field(names = {"run_start"}) public Integer getRunStart() { - return getFieldValue("run_start"); + return this.getFieldValue("run_start"); } /** @@ -346,7 +336,7 @@ */ @Field(names = {"table_name"}) public String getTableName() { - return getFieldValue("table_name"); + return this.getFieldValue("table_name"); } /** @@ -356,7 +346,7 @@ */ @Field(names = {"tag"}) public String getTag() { - return getFieldValue("tag"); + return this.getFieldValue("tag"); } /** @@ -366,7 +356,7 @@ */ @Field(names = {"updated"}) public Date getUpdated() { - return getFieldValue("updated"); + return this.getFieldValue("updated"); } /** @@ -377,17 +367,17 @@ @Override public String toString() { final StringBuffer sb = new StringBuffer(); - sb.append("id: " + getRowId() + '\n'); - sb.append("name: " + getName() + '\n'); - sb.append("runStart: " + getRunStart() + '\n'); - sb.append("runEnd: " + getRunEnd() + '\n'); - sb.append("tableName: " + getTableName() + '\n'); - sb.append("collectionId: " + getCollectionId() + '\n'); - sb.append("updated: " + getUpdated() + '\n'); - sb.append("created: " + getCreated() + '\n'); - sb.append("tag: " + getTag() + '\n'); - sb.append("createdBy: " + getCreatedBy() + '\n'); - sb.append("notes: " + getNotes() + '\n'); + sb.append("id: " + this.getRowId() + '\n'); + sb.append("name: " + this.getName() + '\n'); + sb.append("runStart: " + this.getRunStart() + '\n'); + sb.append("runEnd: " + this.getRunEnd() + '\n'); + sb.append("tableName: " + this.getTableName() + '\n'); + sb.append("collectionId: " + this.getCollectionId() + '\n'); + sb.append("updated: " + this.getUpdated() + '\n'); + sb.append("created: " + this.getCreated() + '\n'); + sb.append("tag: " + this.getTag() + '\n'); + sb.append("createdBy: " + this.getCreatedBy() + '\n'); + sb.append("notes: " + this.getNotes() + '\n'); return sb.toString(); } } Modified: java/branches/HPSJAVA-488/conditions/src/main/java/org/hps/conditions/package-info.java ============================================================================= --- java/branches/HPSJAVA-488/conditions/src/main/java/org/hps/conditions/package-info.java (original) +++ java/branches/HPSJAVA-488/conditions/src/main/java/org/hps/conditions/package-info.java Fri Jun 12 16:55:16 2015 @@ -3,7 +3,7 @@ * a framework built on the LCSim conditions system. The {@link DatabaseConditionsReader} has a set of converters for * reading data from tables using SQL queries and creating appropriate, typed objects for them. * - * @author <a href="mailto:[log in to unmask]">Jeremy McCormick</a> + * @author Jeremy McCormick, SLAC * @see org.hps.conditions.api * @see org.hps.conditions.database */ Modified: java/branches/HPSJAVA-488/conditions/src/main/java/org/hps/conditions/svt/SvtBiasConditionsLoader.java ============================================================================= --- java/branches/HPSJAVA-488/conditions/src/main/java/org/hps/conditions/svt/SvtBiasConditionsLoader.java (original) +++ java/branches/HPSJAVA-488/conditions/src/main/java/org/hps/conditions/svt/SvtBiasConditionsLoader.java Fri Jun 12 16:55:16 2015 @@ -1,5 +1,5 @@ /** - * + * */ package org.hps.conditions.svt; @@ -40,13 +40,11 @@ /** * @author Per Hansson Adrian <[log in to unmask]> - * */ public class SvtBiasConditionsLoader { private static final Set<String> FIELDS = new HashSet<String>(); - private static Logger logger = LogUtil.create(SvtBiasConditionsLoader.class, new BasicLogFormatter(),Level.INFO); - + private static Logger logger = LogUtil.create(SvtBiasConditionsLoader.class, new BasicLogFormatter(), Level.INFO); /** * Setup conditions. @@ -65,85 +63,81 @@ private static AIDA aida = AIDA.defaultInstance(); static IDataPointSet dpsRuns = null; static IDataPointSet dpsBiasRuns = null; - - private static void setupPlots(boolean show) { - IDataPointSetFactory dpsf = aida.analysisFactory().createDataPointSetFactory(aida.tree()); - dpsRuns = dpsf.create("dpsRuns","Run intervals", 2); - dpsBiasRuns = dpsf.create("dpsBiasRuns","Bias ON intervals associated with runs", 2); - IPlotter plotter = aida.analysisFactory().createPlotterFactory().create("Bias run ranges"); - IPlotterStyle plotterStyle = aida.analysisFactory().createPlotterFactory().createPlotterStyle(); + + private static void setupPlots(final boolean show) { + final IDataPointSetFactory dpsf = aida.analysisFactory().createDataPointSetFactory(aida.tree()); + dpsRuns = dpsf.create("dpsRuns", "Run intervals", 2); + dpsBiasRuns = dpsf.create("dpsBiasRuns", "Bias ON intervals associated with runs", 2); + final IPlotter plotter = aida.analysisFactory().createPlotterFactory().create("Bias run ranges"); + final IPlotterStyle plotterStyle = aida.analysisFactory().createPlotterFactory().createPlotterStyle(); plotterStyle.xAxisStyle().setParameter("type", "date"); plotter.createRegions(1, 3); - plotter.region(0).plot(dpsRuns,plotterStyle); - plotter.region(1).plot(dpsBiasRuns,plotterStyle); - plotter.region(2).plot(dpsRuns,plotterStyle); - plotter.region(2).plot(dpsBiasRuns,plotterStyle,"mode=overlay"); - if(show) plotter.show(); - - } - - private static IDataPoint addPoint(IDataPointSet dps, long mstime, double val) { - IDataPoint dp = dps.addPoint(); - dp.coordinate(0).setValue(mstime/1000.); + plotter.region(0).plot(dpsRuns, plotterStyle); + plotter.region(1).plot(dpsBiasRuns, plotterStyle); + plotter.region(2).plot(dpsRuns, plotterStyle); + plotter.region(2).plot(dpsBiasRuns, plotterStyle, "mode=overlay"); + if (show) { + plotter.show(); + } + + } + + private static IDataPoint addPoint(final IDataPointSet dps, final long mstime, final double val) { + final IDataPoint dp = dps.addPoint(); + dp.coordinate(0).setValue(mstime / 1000.); dp.coordinate(1).setValue(val); return dp; } - - - /** - * Default constructor + + /** + * Default constructor */ public SvtBiasConditionsLoader() { } - - - /** * Check validity of @link RunData + * * @param data the @link RunData to check * @return <code>true</code> if valid, <code>false</code> otherwise. */ - private static boolean isValid(RunData data) { - if(data.getStartDate() == null || data.getEndDate() == null || data.getStartDate().before(new Date(99,1,1))) { + private static boolean isValid(final RunData data) { + if (data.getStartDate() == null || data.getEndDate() == null || data.getStartDate().before(new Date(99, 1, 1))) { logger.warning("This run data is not valid: " + data.toString()); return false; - } + } if (data.getStartDate().after(data.getEndDate())) { throw new RuntimeException("start date is after end date?!" + data.toString()); } return true; } - - //private static Options options = null; - - + + // private static Options options = null; + /** * Load SVT HV bias constants into the conditions database. - * + * * @param args the command line arguments (requires a CVS run log file and a MYA dump file.) */ - public static void main(String[] args) { - - Options options = new Options(); + public static void main(final String[] args) { + + final Options options = new Options(); options.addOption(new Option("c", true, "CVS run file")); options.addOption(new Option("m", true, "MYA dump file")); options.addOption(new Option("g", false, "Actually load stuff into DB")); options.addOption(new Option("s", false, "Show plots")); - + final CommandLineParser parser = new PosixParser(); CommandLine cl = null; try { cl = parser.parse(options, args); - } catch (ParseException e) { + } catch (final ParseException e) { throw new RuntimeException("Cannot parse.", e); } - - + // Setup plots - setupPlots(cl.hasOption("s")?true:false); - - + setupPlots(cl.hasOption("s") ? true : false); + // Load in CSV records from the exported run spreadsheet. final String path = cl.getOptionValue("c"); logger.info(path); @@ -152,116 +146,120 @@ // Find the run ranges that have the same fields values. final List<RunRange> ranges = RunRange.findRunRanges(runSheet, FIELDS); logger.info("Found " + ranges.size() + " ranges."); - for(RunRange range : ranges) logger.info(range.toString()); + for (final RunRange range : ranges) { + logger.info(range.toString()); + } // find the run records (has converted dates and stuff) for these ranges - RunMap runmap = runSheet.getRunMap(ranges); + final RunMap runmap = runSheet.getRunMap(ranges); logger.info("Found " + runmap.size() + " runs in the run map."); - - - + // Load MYA dump - SvtBiasMyaDumpReader biasMyaReader = new SvtBiasMyaDumpReader(cl.getOptionValue("m")); + final SvtBiasMyaDumpReader biasMyaReader = new SvtBiasMyaDumpReader(cl.getOptionValue("m")); logger.info("Got " + biasMyaReader.getRanges().size() + " bias ranges"); - - - // Combine them to run ranges when bias was on + + // Combine them to run ranges when bias was on // each run may have multiple bias ranges - - List<SvtBiasRunRange> biasRunRanges = new ArrayList<SvtBiasRunRange>(); - // loop over runs from CSV + + final List<SvtBiasRunRange> biasRunRanges = new ArrayList<SvtBiasRunRange>(); + // loop over runs from CSV RunData prev = null; - for(Entry<Integer,RunData> entry : runmap.entrySet()) { - int run = entry.getKey(); - RunData data = entry.getValue(); + for (final Entry<Integer, RunData> entry : runmap.entrySet()) { + final int run = entry.getKey(); + final RunData data = entry.getValue(); logger.info("Processing " + run + " " + data.toString()); - - //check that data is ok + + // check that data is ok if (isValid(data)) { - if(prev!=null) { - if(isValid(prev)) { - if(prev.getEndDate().after(data.getStartDate())) { - throw new RuntimeException("prev end date after run started?: " + prev.toString() + " " + data.toString()); - } else if(prev.getStartDate().after(data.getEndDate())) { - throw new RuntimeException("prev start date before run ended?: " + prev.toString() + " " + data.toString()); + if (prev != null) { + if (isValid(prev)) { + if (prev.getEndDate().after(data.getStartDate())) { + throw new RuntimeException("prev end date after run started?: " + prev.toString() + " " + + data.toString()); + } else if (prev.getStartDate().after(data.getEndDate())) { + throw new RuntimeException("prev start date before run ended?: " + prev.toString() + " " + + data.toString()); } } } - + // find the bias ranges applicable to this run - SvtBiasMyaRanges overlaps = biasMyaReader.findOverlappingRanges(data.getStartDate(), data.getEndDate()); + final SvtBiasMyaRanges overlaps = biasMyaReader.findOverlappingRanges(data.getStartDate(), + data.getEndDate()); logger.fine("Found " + overlaps.size() + " overlapping bias ranges"); logger.fine(overlaps.toString()); - biasRunRanges.add(new SvtBiasRunRange(data,overlaps)); + biasRunRanges.add(new SvtBiasRunRange(data, overlaps)); prev = data; } } - - + // fill graphs - if(cl.hasOption("s")) { - for(SvtBiasRunRange r : biasRunRanges) { + if (cl.hasOption("s")) { + for (final SvtBiasRunRange r : biasRunRanges) { logger.info(r.toString()); - if(r.getRun().getRun()>5600) {//9999999999999.0) { - //if(dpsRuns.size()/4.0<500) {//9999999999999.0) { - addPoint(dpsRuns, r.getRun().getStartDate().getTime(),0.0); - addPoint(dpsRuns, r.getRun().getStartDate().getTime(),1.0); - addPoint(dpsRuns, r.getRun().getEndDate().getTime(),1.0); - addPoint(dpsRuns, r.getRun().getEndDate().getTime(),0.0); - - for(SvtBiasMyaRange br : r.getRanges()) { - addPoint(dpsBiasRuns, br.getStart().getDate().getTime(),0.0); - addPoint(dpsBiasRuns, br.getStart().getDate().getTime(),0.5); - addPoint(dpsBiasRuns, br.getEnd().getDate().getTime(),0.5); - addPoint(dpsBiasRuns, br.getEnd().getDate().getTime(),0.0); + if (r.getRun().getRun() > 5600) {// 9999999999999.0) { + // if(dpsRuns.size()/4.0<500) {//9999999999999.0) { + addPoint(dpsRuns, r.getRun().getStartDate().getTime(), 0.0); + addPoint(dpsRuns, r.getRun().getStartDate().getTime(), 1.0); + addPoint(dpsRuns, r.getRun().getEndDate().getTime(), 1.0); + addPoint(dpsRuns, r.getRun().getEndDate().getTime(), 0.0); + + for (final SvtBiasMyaRange br : r.getRanges()) { + addPoint(dpsBiasRuns, br.getStart().getDate().getTime(), 0.0); + addPoint(dpsBiasRuns, br.getStart().getDate().getTime(), 0.5); + addPoint(dpsBiasRuns, br.getEnd().getDate().getTime(), 0.5); + addPoint(dpsBiasRuns, br.getEnd().getDate().getTime(), 0.0); } - - } - - } - } - - + } + + } + } + // load to DB - loadToConditionsDB(biasRunRanges,cl.hasOption("g")?true:false); - - } - - private final static SvtBiasConstantCollection findCollection(final List<SvtBiasConstantCollection> list, Date date) { - for( SvtBiasConstantCollection collection : list) { - if(collection.find(date) != null) { + loadToConditionsDB(biasRunRanges, cl.hasOption("g") ? true : false); + + } + + private final static SvtBiasConstantCollection findCollection(final List<SvtBiasConstantCollection> list, + final Date date) { + for (final SvtBiasConstantCollection collection : list) { + if (collection.find(date) != null) { return collection; - } + } } return null; } - private static final void loadToConditionsDB(List<SvtBiasRunRange> ranges, boolean doIt) { + private static final void loadToConditionsDB(final List<SvtBiasRunRange> ranges, final boolean doIt) { logger.info("Load to DB..."); - + // Create a new collection for each run - List<Integer> runsadded = new ArrayList<Integer>(); - - for(SvtBiasRunRange range : ranges) { + final List<Integer> runsadded = new ArrayList<Integer>(); + + for(final SvtBiasRunRange range : ranges) { logger.info("Loading " + range.toString()); - RunData rundata = range.getRun(); + final RunData rundata = range.getRun(); if(runsadded.contains(rundata.getRun())) { logger.warning("Run " + Integer.toString(rundata.getRun()) + " was already added?"); throw new RuntimeException("Run " + Integer.toString(rundata.getRun()) + " was already added?"); } runsadded.add(rundata.getRun()); - for (SvtBiasMyaRange biasRange : range.getRanges()) { + for (final SvtBiasMyaRange biasRange : range.getRanges()) { //create a collection - SvtBiasConstantCollection collection = new SvtBiasConstantCollection(); + final SvtBiasConstantCollection collection = new SvtBiasConstantCollection(); //create a constant and add to the collection final SvtBiasConstant constant = new SvtBiasConstant(); constant.setFieldValue("start", biasRange.getStartDate()); constant.setFieldValue("end", biasRange.getEndDate()); constant.setFieldValue("value", biasRange.getStart().getValue()); - collection.add(constant); - + try { + collection.add(constant); + } catch (final ConditionsObjectException e) { + throw new RuntimeException(e); + } + final ConditionsRecord condition = new ConditionsRecord(); condition.setFieldValue("run_start", rundata.getRun()); condition.setFieldValue("run_end", rundata.getRun()); @@ -270,25 +268,21 @@ condition.setFieldValue("notes", "constants from mya"); condition.setFieldValue("created", new Date()); condition.setFieldValue("created_by", System.getProperty("user.name")); - + condition.setFieldValue("collection_id", collection.getCollectionId()); - + logger.info(condition.toString()); if(doIt) { try { condition.insert(); - } catch (ConditionsObjectException e) { + } catch (Exception e) { throw new RuntimeException(e); } } } } - - - } - - - - + + + } } Modified: java/branches/HPSJAVA-488/conditions/src/main/java/org/hps/conditions/svt/SvtTimingConstantsLoader.java ============================================================================= --- java/branches/HPSJAVA-488/conditions/src/main/java/org/hps/conditions/svt/SvtTimingConstantsLoader.java (original) +++ java/branches/HPSJAVA-488/conditions/src/main/java/org/hps/conditions/svt/SvtTimingConstantsLoader.java Fri Jun 12 16:55:16 2015 @@ -9,6 +9,7 @@ import java.util.List; import java.util.Set; +import org.hps.conditions.api.ConditionsObjectException; import org.hps.conditions.api.ConditionsRecord; import org.hps.conditions.database.DatabaseConditionsManager; import org.hps.conditions.run.RunRange; @@ -58,7 +59,11 @@ timing.setFieldValue("offset_time", offsetTime); final SvtTimingConstantsCollection collection = new SvtTimingConstantsCollection(); - collection.add(timing); + try { + collection.add(timing); + } catch (ConditionsObjectException e) { + throw new RuntimeException(e); + } collections.add(collection); } return collections; @@ -113,8 +118,7 @@ for (final SvtTimingConstantsCollection collection : collections) { int collectionId = 0; try { - collectionId = MANAGER.addCollection("svt_timing_constants", "SVT timing constants added by " + System.getProperty("user.name"), - "timing constants from run spreadsheet"); + collectionId = MANAGER.getCollectionId(collection, "timing constants from run spreadsheet"); collection.setCollectionId(collectionId); collection.insert(); } catch (final Exception e) { 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 Fri Jun 12 16:55:16 2015 @@ -293,7 +293,7 @@ private void loadCalibrations(EcalCalibrationCollection calibrations) { int collectionId = -1; try { - conditionsManager.getCollectionId(calibrations, "EcalCalibrationsDriver added by " + System.getProperty("user.name"), null); + conditionsManager.getCollectionId(calibrations, "loaded by EcalCalibrationsDriver"); } 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 Fri Jun 12 16:55:16 2015 @@ -168,7 +168,7 @@ int collectionId = -1; try { - collectionId = conditionsManager.getCollectionId(calibrations, "EcalPedestalCalculator added by " + System.getProperty("user.name"), null); + collectionId = conditionsManager.getCollectionId(calibrations, "loaded by EcalPedestalCalculator"); } 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 Fri Jun 12 16:55:16 2015 @@ -667,7 +667,7 @@ int collectionId = -1; try { - collectionId = conditionsManager.getCollectionId(led_calibrations, "EcalLedSequenceMonitor generated by " + System.getProperty("user.name"), null); + collectionId = conditionsManager.getCollectionId(led_calibrations, "loaded by EcalLedSequenceMonitor"); } catch (Exception e) { throw new RuntimeException(e); }