Skip to content
This repository was archived by the owner on Jun 3, 2024. It is now read-only.

Commit 81bac79

Browse files
authored
Added support for SOSL's OFFSET, FOR VIEW & FOR REFERENCE
ISObjectQueryBuilder.setAsUpdate() renamed to forUpdate() for consistency
1 parent 69ac232 commit 81bac79

File tree

3 files changed

+26
-3
lines changed

3 files changed

+26
-3
lines changed

src/classes/ISObjectQueryBuilder.cls

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,10 @@ public interface ISObjectQueryBuilder {
3737

3838
// Additional query option methods
3939
ISObjectQueryBuilder limitCount(Integer limitCount);
40-
ISObjectQueryBuilder setAsUpdate();
40+
ISObjectQueryBuilder offset(Integer numberOfRowsToSkip);
41+
ISObjectQueryBuilder forReference();
42+
ISObjectQueryBuilder forUpdate();
43+
ISObjectQueryBuilder forView();
4144
ISObjectQueryBuilder usingScope(QueryFilterScope filterScope);
4245

4346
// Query string methods

src/classes/SObjectQueryBuilder.cls

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,10 @@ public class SObjectQueryBuilder extends QueryBuilder implements ISObjectQueryBu
1515
private Set<String> queryFields;
1616
private List<String> childRelationshipQueries;
1717
private QueryFilterScope filterScope;
18+
private Integer offset;
19+
private Boolean forReference;
1820
private Boolean forUpdate;
21+
private Boolean forView;
1922
private SObjectType sobjectType;
2023
private Map<String, Schema.SObjectField> sobjectTypeFieldMap;
2124

@@ -25,7 +28,9 @@ public class SObjectQueryBuilder extends QueryBuilder implements ISObjectQueryBu
2528

2629
this.queryFields = new Set<String>();
2730
this.childRelationshipQueries = new List<String>();
31+
this.forReference = false;
2832
this.forUpdate = false;
33+
this.forView = false;
2934

3035
this.addCommonQueryFields();
3136
}
@@ -123,11 +128,26 @@ public class SObjectQueryBuilder extends QueryBuilder implements ISObjectQueryBu
123128
return this;
124129
}
125130

126-
public ISObjectQueryBuilder setAsUpdate() {
131+
public ISObjectQueryBuilder offset(Integer numberOfRowsToSkip) {
132+
this.offset = numberOfRowsToSkip;
133+
return this;
134+
}
135+
136+
public ISObjectQueryBuilder forReference() {
137+
this.forReference = true;
138+
return this;
139+
}
140+
141+
public ISObjectQueryBuilder forUpdate() {
127142
this.forUpdate = true;
128143
return this;
129144
}
130145

146+
public ISObjectQueryBuilder forView() {
147+
this.forView = true;
148+
return this;
149+
}
150+
131151
public ISObjectQueryBuilder usingScope(QueryFilterScope filterScope) {
132152
this.filterScope = filterScope;
133153
return this;

src/classes/SObjectQueryBuilder_Tests.cls

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -407,7 +407,7 @@ private class SObjectQueryBuilder_Tests {
407407

408408
Test.startTest();
409409
SObjectQueryBuilder query = (SObjectQueryBuilder)new SObjectQueryBuilder(sobjectType).addFields(convertToQueryFields(fields));
410-
query.setAsUpdate();
410+
query.forUpdate();
411411
Test.stopTest();
412412

413413
System.assert(query.getQuery().contains('FOR UPDATE'));

0 commit comments

Comments
 (0)