Commit in java/trunk/conditions/src/main/java/org/hps/conditions on MAIN
DatabaseConditionsManager.java+39-12752 -> 753
Make instance variables protected instead of private.  Add missing method doc.  Add reading of connection properties from file specified by a Java system property.

java/trunk/conditions/src/main/java/org/hps/conditions
DatabaseConditionsManager.java 752 -> 753
--- java/trunk/conditions/src/main/java/org/hps/conditions/DatabaseConditionsManager.java	2014-07-01 21:29:30 UTC (rev 752)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/DatabaseConditionsManager.java	2014-07-01 21:30:35 UTC (rev 753)
@@ -47,18 +47,19 @@
 @SuppressWarnings("rawtypes")
 public final class DatabaseConditionsManager extends ConditionsManagerImplementation {
 
-    int runNumber = -1;
-    String detectorName;
-    List<TableMetaData> tableMetaData;
-    List<ConditionsConverter> converters;
-    File connectionPropertiesFile;
-    ConditionsReader baseReader;
-    static Logger logger = null;
-    ConnectionParameters connectionParameters;
-    Connection connection;
-    boolean wasConfigured = false;
-    boolean isConnected = false;
-    ConditionsSeriesConverter conditionsSeriesConverter = new ConditionsSeriesConverter(this);
+    static String connectionProperty = "org.hps.conditions.connection.file";
+    protected int runNumber = -1;
+    protected String detectorName;
+    protected List<TableMetaData> tableMetaData;
+    protected List<ConditionsConverter> converters;
+    protected File connectionPropertiesFile;
+    protected ConditionsReader baseReader;
+    protected static Logger logger = null;
+    protected ConnectionParameters connectionParameters;
+    protected Connection connection;
+    protected boolean wasConfigured = false;
+    protected boolean isConnected = false;
+    protected ConditionsSeriesConverter conditionsSeriesConverter = new ConditionsSeriesConverter(this);
 
     /**
      * Class constructor.
@@ -66,6 +67,7 @@
     public DatabaseConditionsManager() {
         registerConditionsConverter(new DetectorConditionsConverter());
         baseReader = new BaseClasspathConditionsReader();
+        setupConnectionFromSystemProperty();
     }
 
     /**
@@ -507,6 +509,21 @@
         // Load table meta data from the "tables" section of the config document.
         (this.new TableMetaDataLoader()).load(config.getRootElement().getChild("tables"));
     }
+    
+    /**
+     * Setup the database connection from a file specified by Java system property setting.
+     * This is possible overridden by subsequent API calls to {@link #setConnectionProperties(File)} or
+     * {@link #setConnectionResource(String)}, as it is setup in this class's constructor.
+     */
+    private void setupConnectionFromSystemProperty() {
+        String systemPropertiesConnectionPath = (String)System.getProperties().get(connectionProperty);
+        if (systemPropertiesConnectionPath != null) {
+            File f = new File(systemPropertiesConnectionPath);
+            if (!f.exists())
+                throw new RuntimeException("Connection properties specified from system property does not exist!");
+            this.setConnectionProperties(f);
+        }
+    }
 
     /**
      * Open the database connection.
@@ -546,10 +563,20 @@
             closeConnection();
     }
     
+    /**
+     * Get multiple <code>ConditionsObjectCollection</code> objects that may have overlapping time validity information.
+     * @param conditionsKey The conditions key.
+     * @return The <code>ConditionsSeries</code> containing the matching <code>ConditionsObjectCollection</code>. 
+     */
     public <CollectionType extends ConditionsObjectCollection> ConditionsSeries<CollectionType> getConditionsSeries(String conditionsKey) {
         return conditionsSeriesConverter.createSeries(conditionsKey);
     }
        
+    /**
+     * Simple utility method to cast the generic <code>ConditionsManager</code> to this class.
+     * @param conditionsManager The <code>ConditionsManager</code>.
+     * @return The <code>DatabaseConditionsManager</code> object.
+     */
     public static DatabaseConditionsManager castFrom(ConditionsManager conditionsManager) {
         if (conditionsManager instanceof DatabaseConditionsManager) {
             return (DatabaseConditionsManager) conditionsManager;
SVNspam 0.1