Index: kernel-storage-util/src/main/java/org/sakaiproject/util/BaseDbDoubleStorage.java =================================================================== --- kernel-storage-util/src/main/java/org/sakaiproject/util/BaseDbDoubleStorage.java (revision 120346) +++ kernel-storage-util/src/main/java/org/sakaiproject/util/BaseDbDoubleStorage.java (working copy) @@ -24,6 +24,8 @@ import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Arrays; import java.util.Hashtable; import java.util.Iterator; import java.util.List; @@ -933,6 +935,7 @@ return null; } + /** * Get all Resources. * @@ -948,7 +951,28 @@ * an optional range of elements to return inclusive * @return The list (Resource) of all Resources. */ - public List getAllResources(Entity container, Filter softFilter, String sqlFilter, boolean asc, PagingPosition pager) + public List getAllResources(Entity container, Filter softFilter, String sqlFilter, boolean asc, PagingPosition pager) { + return getAllResources(container, softFilter, sqlFilter, asc, pager, null); + } + + /** + * Get all Resources. + * + * @param container + * The container for this resource. + * @param softFilter + * an optional software filter + * @param sqlFilter + * an optional conditional for select statement + * @param asc + * true means ascending + * @param pager + * an optional range of elements to return inclusive + * @param bindVariables + * an optional list of bind variables + * @return The list (Resource) of all Resources. + */ + public List getAllResources(Entity container, Filter softFilter, String sqlFilter, boolean asc, PagingPosition pager, List bindVariables) { pager = fixPagingPosition(softFilter, pager); @@ -1014,6 +1038,17 @@ fields[0] = container.getReference(); for ( int i=0; i < searchFieldCount; i++) fields[i+1] = "%" + searchString + "%"; + if(bindVariables != null && bindVariables.size() > 0) { + List fieldsArray = new ArrayList(); + if(fields != null && fields.length > 0) { + fieldsArray.addAll(Arrays.asList(fields)); + } + for(Object bindVariable : bindVariables) { + fieldsArray.add(bindVariable); + } + fields = fieldsArray.toArray(); + } + // System.out.println("getAllResources="+sql); // If we are paged in SQL - then do not pass in the pager