Skip to content

Commit 2d90db7

Browse files
committed
Upgraded to Summer '19 (API v46.0)
1 parent b26d786 commit 2d90db7

18 files changed

+278
-241
lines changed

README.md

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -21,23 +21,23 @@ A dynamic SOQL query & SOSL search library for for Salesforce Apex<br /><br />
2121
## Overview
2222
There are 3 main builder classes
2323

24-
&nbsp; | SobjectQueryBuilder | AggregateQueryBuilder | SearchBuilder
24+
&nbsp; | SObjectQueryBuilder | AggregateQueryBuilder | SearchBuilder
2525
------- | --------------------|-----------------------|--------------
2626
Super Class | Soql.cls (Queries) | Soql.cls (Queries) | Sosl.cls (Searches) | -
27-
Action | Queries an Sobject | Queries an Sobject | Searches 1 or more Sobjects
28-
Returns | `Sobject` or `List<Sobject>` | `AggregateResult` or `List<AggregateResult>` | `Sobject`, `List<Sobject>` or `List<List<Sobject>>`
27+
Action | Queries an SObject | Queries an SObject | Searches 1 or more SObjects
28+
Returns | `SObject` or `List<SObject>` | `AggregateResult` or `List<AggregateResult>` | `SObject`, `List<SObject>` or `List<List<SObject>>`
2929

30-
## SOQL Sobject Query Examples
30+
## SOQL SObject Query Examples
3131
**Basic Usage:** Query an object & return the object's ID and display name field (typically the 'Name' field, but some objects use other fields, like Task.Subject and Case.CaseNumber). Since no filters have been added, this query would also return all accounts.
3232

3333
```
34-
List<Account> accounts = new SobjectQueryBuilder(Schema.Account.SobjectType).getResults();
34+
List<Account> accounts = new SObjectQueryBuilder(Schema.Account.SObjectType).getResults();
3535
```
3636

3737
**Advanced Usage:** Query an object & leverage the query builder methods. The order of the builder methods does not matter - you can arrange the calls to these methods in any order that you prefer.
3838

3939
```
40-
SobjectQueryBuilder accountQuery = new SobjectQueryBuilder(Schema.Account.SobjectType) // Query the account object
40+
SObjectQueryBuilder accountQuery = new SObjectQueryBuilder(Schema.Account.SObjectType) // Query the account object
4141
.addField(Schema.Account.ParentId) // Include the ParentId field, using SObjectField. The current user must have at least read access to the field
4242
.addField(Schema.Account.Type, Soql.FieldCategory.UPDATEABLE) // Include the Type field if the current user has access to update it
4343
.addFields(Soql.FieldCategory.CUSTOM) // Include all custom fields - only fields that are accessible to the user are included
@@ -74,8 +74,8 @@ System.debug(accountQuery.getQuery());
7474
**Basic Usage:** Search a single object
7575

7676
```
77-
SobjectQueryBuilder userQuery = new SobjectQueryBuilder(Schema.User.SobjectType); // Create an instance of SobjectQueryBuilder for an Sobject - you can include additional fields, filters, etc
78-
SearchBuilder userSearch = new SearchBuilder('my search term', userQuery); // Create a new SearchBuilder instance with a search term & instance of SobjectQueryBuilder
77+
SObjectQueryBuilder userQuery = new SObjectQueryBuilder(Schema.User.SObjectType); // Create an instance of SObjectQueryBuilder for an SObject - you can include additional fields, filters, etc
78+
SearchBuilder userSearch = new SearchBuilder('my search term', userQuery); // Create a new SearchBuilder instance with a search term & instance of SObjectQueryBuilder
7979
List<User> userSearchResults = userSearch.getFirstResults(); // SearchBuilder returns a list of lists of sobjects - getFirstResults() returns the first list
8080
8181
/****** Resulting output *******
@@ -88,13 +88,13 @@ System.debug(userSearch.getSearch());
8888
**Advanced Usage:** Search several objects
8989

9090
```
91-
SobjectQueryBuilder accountQuery = new SobjectQueryBuilder(Schema.Account.SobjectType); // Create an instance of SobjectQueryBuilder for the Account object
92-
SobjectQueryBuilder contactQuery = new SobjectQueryBuilder(Schema.Contact.SobjectType); // Create an instance of SobjectQueryBuilder for the Contact object
93-
SobjectQueryBuilder leadQuery = new SobjectQueryBuilder(Schema.Lead.SobjectType); // Create an instance of SobjectQueryBuilder for the Lead object
94-
List<SobjectQueryBuilder> queries = new List<SobjectQueryBuilder>{contactQuery, accountQuery, leadQuery}; // Add the SobjectQueryBuilder queries to a list
91+
SObjectQueryBuilder accountQuery = new SObjectQueryBuilder(Schema.Account.SObjectType); // Create an instance of SObjectQueryBuilder for the Account object
92+
SObjectQueryBuilder contactQuery = new SObjectQueryBuilder(Schema.Contact.SObjectType); // Create an instance of SObjectQueryBuilder for the Contact object
93+
SObjectQueryBuilder leadQuery = new SObjectQueryBuilder(Schema.Lead.SObjectType); // Create an instance of SObjectQueryBuilder for the Lead object
94+
List<SObjectQueryBuilder> queries = new List<SObjectQueryBuilder>{contactQuery, accountQuery, leadQuery}; // Add the SObjectQueryBuilder queries to a list
9595
96-
SearchBuilder mySearch = new SearchBuilder('my search term', queries); // Create a new SearchBuilder instance with a search term & the list of SobjectQueryBuilder queries
97-
List<List<Sobject>> searchResults = mySearch.getResults(); // Returns all search results
96+
SearchBuilder mySearch = new SearchBuilder('my search term', queries); // Create a new SearchBuilder instance with a search term & the list of SObjectQueryBuilder queries
97+
List<List<SObject>> searchResults = mySearch.getResults(); // Returns all search results
9898
9999
/****** Resulting output *******
100100
FIND 'my search term' IN ALL FIELDS RETURNING Account(Id, Name), Contact(Id, Name), Lead(Id, Name)

src/classes/AggregateQueryBuilder.cls

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -8,24 +8,24 @@ public class AggregateQueryBuilder extends Soql {
88
private List<AggregateField> aggregateFields;
99
private List<String> havingConditions;
1010

11-
public AggregateQueryBuilder(Schema.SobjectType sobjectType) {
11+
public AggregateQueryBuilder(Schema.SObjectType sobjectType) {
1212
super(sobjectType, false);
1313

1414
this.aggregateFields = new List<AggregateField>();
1515
this.havingConditions = new List<String>();
1616
}
1717

18-
public AggregateQueryBuilder groupByField(Schema.SobjectField field) {
19-
return this.groupByFields(new List<Schema.SobjectField>{field});
18+
public AggregateQueryBuilder groupByField(Schema.SObjectField field) {
19+
return this.groupByFields(new List<Schema.SObjectField>{field});
2020
}
2121

2222
public AggregateQueryBuilder groupByField(Soql.QueryField queryField) {
2323
return this.groupByFields(new List<Soql.QueryField>{queryField});
2424
}
2525

26-
public AggregateQueryBuilder groupByFields(List<Schema.SobjectField> fields) {
26+
public AggregateQueryBuilder groupByFields(List<Schema.SObjectField> fields) {
2727
List<Soql.QueryField> queryFields = new List<Soql.QueryField>();
28-
for(Schema.SobjectField field : fields) {
28+
for(Schema.SObjectField field : fields) {
2929
queryFields.add(new Soql.QueryField(field));
3030
}
3131
return this.groupByFields(queryFields);
@@ -49,11 +49,11 @@ public class AggregateQueryBuilder extends Soql {
4949
return this.setHasChanged();
5050
}
5151

52-
public AggregateQueryBuilder addAggregate(Soql.Aggregate aggregateFunction, Schema.SobjectField field) {
52+
public AggregateQueryBuilder addAggregate(Soql.Aggregate aggregateFunction, Schema.SObjectField field) {
5353
return this.addAggregate(aggregateFunction, field, null);
5454
}
5555

56-
public AggregateQueryBuilder addAggregate(Soql.Aggregate aggregateFunction, Schema.SobjectField field, String fieldAlias) {
56+
public AggregateQueryBuilder addAggregate(Soql.Aggregate aggregateFunction, Schema.SObjectField field, String fieldAlias) {
5757
return this.addAggregate(aggregateFunction, new Soql.QueryField(field), fieldAlias);
5858
}
5959

@@ -62,11 +62,11 @@ public class AggregateQueryBuilder extends Soql {
6262
}
6363

6464
public AggregateQueryBuilder addAggregate(Soql.Aggregate aggregateFunction, Soql.QueryField queryField, String fieldAlias) {
65-
this.aggregateFields.add(new AggregateField(this.getSobjectType(), aggregateFunction, queryField, fieldAlias));
65+
this.aggregateFields.add(new AggregateField(this.getSObjectType(), aggregateFunction, queryField, fieldAlias));
6666
return this.setHasChanged();
6767
}
6868

69-
public AggregateQueryBuilder havingAggregate(Soql.Aggregate aggregateFunction, Schema.SobjectField field, Soql.Operator operator, Object value) {
69+
public AggregateQueryBuilder havingAggregate(Soql.Aggregate aggregateFunction, Schema.SObjectField field, Soql.Operator operator, Object value) {
7070
return this.havingAggregate(aggregateFunction, new Soql.QueryField(field), operator, value);
7171
}
7272

@@ -75,7 +75,7 @@ public class AggregateQueryBuilder extends Soql {
7575
return this.setHasChanged();
7676
}
7777

78-
public AggregateQueryBuilder filterWhere(Schema.SobjectField field, Soql.Operator operator, Object value) {
78+
public AggregateQueryBuilder filterWhere(Schema.SObjectField field, Soql.Operator operator, Object value) {
7979
return this.filterWhere(new Soql.QueryField(field), operator, value);
8080
}
8181

@@ -97,23 +97,23 @@ public class AggregateQueryBuilder extends Soql {
9797
return this.setHasChanged();
9898
}
9999

100-
public AggregateQueryBuilder orderByField(Schema.SobjectField field) {
100+
public AggregateQueryBuilder orderByField(Schema.SObjectField field) {
101101
return this.orderByField(field, null);
102102
}
103103

104104
public AggregateQueryBuilder orderByField(Soql.QueryField queryField) {
105105
return this.orderByField(queryField, null);
106106
}
107107

108-
public AggregateQueryBuilder orderByField(Schema.SobjectField field, Soql.SortOrder sortOrder) {
108+
public AggregateQueryBuilder orderByField(Schema.SObjectField field, Soql.SortOrder sortOrder) {
109109
return this.orderByField(field, sortOrder, null);
110110
}
111111

112112
public AggregateQueryBuilder orderByField(Soql.QueryField queryField, Soql.SortOrder sortOrder) {
113113
return this.orderByField(queryField, sortOrder, null);
114114
}
115115

116-
public AggregateQueryBuilder orderByField(Schema.SobjectField field, Soql.SortOrder sortOrder, Boolean sortNullsFirst) {
116+
public AggregateQueryBuilder orderByField(Schema.SObjectField field, Soql.SortOrder sortOrder, Boolean sortNullsFirst) {
117117
return this.orderByField(new Soql.QueryField(field), sortOrder, sortNullsFirst);
118118
}
119119

@@ -122,15 +122,15 @@ public class AggregateQueryBuilder extends Soql {
122122
return this.setHasChanged();
123123
}
124124

125-
public AggregateQueryBuilder orderByAggregate(Soql.Aggregate aggregateFunction, Schema.SobjectField field) {
125+
public AggregateQueryBuilder orderByAggregate(Soql.Aggregate aggregateFunction, Schema.SObjectField field) {
126126
return this.orderByAggregate(aggregateFunction, field, null);
127127
}
128128

129-
public AggregateQueryBuilder orderByAggregate(Soql.Aggregate aggregateFunction, Schema.SobjectField field, Soql.SortOrder sortOrder) {
129+
public AggregateQueryBuilder orderByAggregate(Soql.Aggregate aggregateFunction, Schema.SObjectField field, Soql.SortOrder sortOrder) {
130130
return this.orderByAggregate(aggregateFunction, field, sortOrder, null);
131131
}
132132

133-
public AggregateQueryBuilder orderByAggregate(Soql.Aggregate aggregateFunction, Schema.SobjectField field, Soql.SortOrder sortOrder, Boolean sortNullsFirst) {
133+
public AggregateQueryBuilder orderByAggregate(Soql.Aggregate aggregateFunction, Schema.SObjectField field, Soql.SortOrder sortOrder, Boolean sortNullsFirst) {
134134
return this.orderByAggregate(aggregateFunction, new Soql.QueryField(field), sortOrder, sortNullsFirst);
135135
}
136136

@@ -171,8 +171,8 @@ public class AggregateQueryBuilder extends Soql {
171171

172172
String combinedFieldsString = queryFieldString + aggregateFieldDelimiter + aggregateQueryFieldString;
173173
if(String.isBlank(combinedFieldsString)) {
174-
Schema.SobjectField idField = this.getSobjectType().getDescribe().fields.getMap().get('Id');
175-
combinedFieldsString = new AggregateField(this.getSobjectType(), Soql.Aggregate.COUNT, new Soql.QueryField(idField), null).toString();
174+
Schema.SObjectField idField = this.getSObjectType().getDescribe().fields.getMap().get('Id');
175+
combinedFieldsString = new AggregateField(this.getSObjectType(), Soql.Aggregate.COUNT, new Soql.QueryField(idField), null).toString();
176176
}
177177

178178
this.query = 'SELECT ' + combinedFieldsString
@@ -245,10 +245,10 @@ public class AggregateQueryBuilder extends Soql {
245245

246246
private class AggregateField {
247247

248-
private Schema.SobjectType sobjectType;
248+
private Schema.SObjectType sobjectType;
249249
private String aggregateFieldPath;
250250

251-
public AggregateField(Schema.SobjectType sobjectType, Soql.Aggregate aggregateFunction, Soql.QueryField queryField, String fieldAlias) {
251+
public AggregateField(Schema.SObjectType sobjectType, Soql.Aggregate aggregateFunction, Soql.QueryField queryField, String fieldAlias) {
252252
this.sobjectType = sobjectType;
253253
this.aggregateFieldPath = this.getAggregateFieldPath(aggregateFunction, queryField, fieldAlias);
254254
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<ApexClass xmlns="http://soap.sforce.com/2006/04/metadata">
3-
<apiVersion>43.0</apiVersion>
3+
<apiVersion>46.0</apiVersion>
44
<status>Active</status>
55
</ApexClass>

0 commit comments

Comments
 (0)