@@ -12,6 +12,7 @@ public virtual without sharing class Repository implements IRepository {
1212 protected System.AccessLevel accessLevel = System .AccessLevel .SYSTEM_MODE ;
1313 protected final Map <String , RepositorySortOrder > fieldToSortOrder = new Map <String , RepositorySortOrder >();
1414
15+ private Boolean shouldPrintBindVars = false ;
1516 private Boolean baseSelectUsed = false ;
1617 private Boolean isSosl = false ;
1718 private Boolean shouldAddChildFields = true ;
@@ -28,7 +29,7 @@ public virtual without sharing class Repository implements IRepository {
2829 // SOQL
2930 public virtual Cursor getCursor (List <Query > queries ) {
3031 String finalQuery = this .getFinalQuery (queries );
31- System . debug ( System . LoggingLevel . DEBUG , ' cursor query:\n ' + finalQuery );
32+ this . logQuery ( ' cursor query:\n ' + finalQuery );
3233 Cursor cursor = new Cursor (finalQuery , this .bindVars , this .accessLevel );
3334 this .clearState ();
3435 this .bindVars .clear ();
@@ -44,7 +45,7 @@ public virtual without sharing class Repository implements IRepository {
4445 Boolean originalValue = this .shouldAddChildFields ;
4546 this .shouldAddChildFields = shouldAddChildFields ;
4647 String finalQuery = this .getFinalQuery (queries );
47- System . debug ( System . LoggingLevel . DEBUG , ' query locator query:\n ' + finalQuery );
48+ this . logQuery ( ' query locator query:\n ' + finalQuery );
4849 Database .QueryLocator locator = Database .getQueryLocatorWithBinds (
4950 this .getFinalQuery (queries ),
5051 this .bindVars ,
@@ -120,6 +121,10 @@ public virtual without sharing class Repository implements IRepository {
120121 return this ;
121122 }
122123
124+ public Repository addParentFields (Schema.SObjectField parentType , List <Schema .SObjectField > parentFields ) {
125+ return this .addParentFields (new List <Schema .SObjectField >{ parentType }, parentFields );
126+ }
127+
123128 public Repository addParentFields (List <Schema .SObjectField > parentTypes , List <Schema .SObjectField > parentFields ) {
124129 this .selectFields .addAll (this .getParentFields (parentTypes , parentFields ));
125130 return this ;
@@ -224,6 +229,11 @@ public virtual without sharing class Repository implements IRepository {
224229 return this ;
225230 }
226231
232+ public Repository setShouldPrintBindVars (Boolean shouldPrintBindVars ) {
233+ this .shouldPrintBindVars = shouldPrintBindVars ;
234+ return this ;
235+ }
236+
227237 protected virtual Set <String > addSelectFields () {
228238 this .baseSelectUsed = true ;
229239 return this .addSelectFields (this .queryFields );
@@ -308,7 +318,7 @@ public virtual without sharing class Repository implements IRepository {
308318 }
309319
310320 private List <SObject > performQuery (String finalQuery ) {
311- System . debug ( System . LoggingLevel . DEBUG , ' performQuery query:\n ' + finalQuery );
321+ this . logQuery ( ' performQuery query:\n ' + finalQuery );
312322 List <SObject > results = Database .queryWithBinds (finalQuery , this .bindVars , this .accessLevel );
313323 this .clearState ();
314324 System .debug (System .LoggingLevel .FINER , ' number of results: ' + results .size () + ' \n results: \n ' + results );
@@ -360,7 +370,7 @@ public virtual without sharing class Repository implements IRepository {
360370 ' RETURNING ' +
361371 this .formatAdditionalSoslObjects (orderedSearchObjects );
362372
363- System . debug ( System . LoggingLevel . DEBUG , ' search query:\n ' + searchQuery );
373+ this . logQuery ( ' search query:\n ' + searchQuery );
364374 List <List <SObject >> results = Search .query (searchQuery , this .accessLevel );
365375 System .debug (System .LoggingLevel .FINER , ' number of results: ' + results .size () + ' \n results: \n ' + results );
366376 this .clearState ();
@@ -388,6 +398,13 @@ public virtual without sharing class Repository implements IRepository {
388398 return String .join (objectsPreJoin , ' ,' );
389399 }
390400
401+ protected void logQuery (String logString ) {
402+ if (this .shouldPrintBindVars ) {
403+ logString += ' \n\n Bind vars: ' + JSON .serializePretty (this .bindVars );
404+ }
405+ System .debug (System .LoggingLevel .DEBUG , logString );
406+ }
407+
391408 // DML
392409 public Database.SaveResult doInsert (SObject record ) {
393410 return this .dml .doInsert (record );
0 commit comments