org.apache.commons.dbutils
Class QueryLoader

java.lang.Object
  extended by org.apache.commons.dbutils.QueryLoader

public class QueryLoader
extends java.lang.Object

QueryLoader loads properties files filled with query name to SQL mappings. It acts as a registry for sets of queries so that multiple copies of the same queries aren't loaded into memory. This class is thread safe.

Author:
David Graham

Field Summary
private static QueryLoader instance
          The Singleton instance of this class.
private  java.util.Map queries
          Maps query set names to Maps of their queries.
 
Constructor Summary
protected QueryLoader()
          QueryLoader constructor.
 
Method Summary
static QueryLoader instance()
          Return an instance of this class.
 java.util.Map load(java.lang.String path)
          Loads a Map of query names to SQL values.
private  java.util.Map loadQueries(java.lang.String path)
          Loads a properties file into a Map object.
 void unload(java.lang.String path)
          Removes the queries for the given path from the cache.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

instance

private static final QueryLoader instance
The Singleton instance of this class.


queries

private java.util.Map queries
Maps query set names to Maps of their queries.

Constructor Detail

QueryLoader

protected QueryLoader()
QueryLoader constructor.

Method Detail

instance

public static QueryLoader instance()
Return an instance of this class.

Returns:
The Singleton instance.

load

public java.util.Map load(java.lang.String path)
                   throws java.io.IOException
Loads a Map of query names to SQL values. The Maps are cached so a subsequent request to load queries from the same path will return the cached Map.

Parameters:
path - The path that the ClassLoader will use to find the file. This is not a file system path. If you had a jarred Queries.properties file in the com.yourcorp.app.jdbc package you would pass "/com/yourcorp/app/jdbc/Queries.properties" to this method.
Throws:
java.io.IOException
java.lang.IllegalArgumentException - if the ClassLoader can't find a file at the given path.

loadQueries

private java.util.Map loadQueries(java.lang.String path)
                           throws java.io.IOException
Loads a properties file into a Map object.

Parameters:
path - The path that the ClassLoader will use to find the file.
Throws:
java.io.IOException

unload

public void unload(java.lang.String path)
Removes the queries for the given path from the cache.

Parameters:
path - The path that the queries were loaded from.