@@ -35,72 +35,20 @@ public abstract class SObjectRepository implements ISObjectRepository {
3535 this .addFieldSetMembers ();
3636 }
3737
38- protected SObjectRepository whereIdEquals ( Id recordId ) {
39- return this .whereFieldEquals ( sobjectTypeFieldMap . get ( ' Id ' ), SOQLUtils .toSOQLString (recordId ));
38+ protected SObjectRepository whereFieldOperatorEqualsValue (Schema. SObjectField field , String operator , Object value ) {
39+ return this .addCondition ( field , operator , SOQLUtils .toSOQLString (value ));
4040 }
4141
42- protected SObjectRepository whereIdIn (Set <Id > recordIdSet ) {
43- return this .whereFieldIn (sobjectTypeFieldMap .get (' Id' ), new List <Id >(recordIdSet ));
44- }
45-
46- protected SObjectRepository whereIdIn (List <Id > recordList ) {
47- return this .whereFieldIn (sobjectTypeFieldMap .get (' Id' ), recordList );
48- }
49-
50- protected SObjectRepository whereFieldEquals (Schema.SObjectField field , Object value ) {
51- return this .addCondition (field , ' =' , SOQLUtils .toSOQLString (value ));
52- }
53-
54- protected SObjectRepository whereFieldDoesNotEqual (Schema.SObjectField field , Object value ) {
55- return this .addCondition (field , ' !=' , SOQLUtils .toSOQLString (value ));
56- }
57-
58- protected SObjectRepository whereFieldGreaterThan (Schema.SObjectField field , Object value ) {
59- return this .addCondition (field , ' >' , SOQLUtils .toSOQLString (value ));
60- }
61-
62- protected SObjectRepository whereFieldGreaterThanOrEqualTo (Schema.SObjectField field , Object value ) {
63- return this .addCondition (field , ' >=' , SOQLUtils .toSOQLString (value ));
64- }
65-
66- protected SObjectRepository whereFieldLessThan (Schema.SObjectField field , Object value ) {
67- return this .addCondition (field , ' <' , SOQLUtils .toSOQLString (value ));
68- }
69-
70- protected SObjectRepository whereFieldLessThanOrEqualTo (Schema.SObjectField field , Object value ) {
71- return this .addCondition (field , ' <=' , SOQLUtils .toSOQLString (value ));
72- }
73-
74- protected SObjectRepository whereFieldIn (Schema.SObjectField field , List <Object > valueList ) {
75- return this .addCondition (field , ' IN' , SOQLUtils .toSOQLString (valueList ));
76- }
77-
78- protected SObjectRepository whereFieldNotIn (Schema.SObjectField field , List <Object > valueList ) {
79- return this .addCondition (field , ' NOT IN' , SOQLUtils .toSOQLString (valueList ));
80- }
81-
82- protected SObjectRepository whereFieldIncludes (Schema.SObjectField field , List <Object > valueList ) {
83- return this .addCondition (field , ' INCLUDES' , SOQLUtils .toSOQLString (valueList ));
84- }
85-
86- protected SObjectRepository whereFieldExcludes (Schema.SObjectField field , List <Object > valueList ) {
87- return this .addCondition (field , ' EXCLUDES' , SOQLUtils .toSOQLString (valueList ));
88- }
89-
90- protected SObjectRepository whereFieldLike (Schema.SObjectField field , String comparisonValue ) {
91- return this .addCondition (field , ' LIKE' , comparisonValue );
92- }
93-
94- protected SObjectRepository whereFieldNotLike (Schema.SObjectField field , String comparisonValue ) {
95- return this .addCondition (field , ' NOT LIKE' , comparisonValue );
42+ protected SObjectRepository whereFieldOperatorEqualsListValues (Schema.SObjectField field , String operator , List <Object > values ) {
43+ return this .addCondition (field , operator , SOQLUtils .toSOQLString (values ));
9644 }
9745
9846 protected SObjectRepository orderBy (Schema.SObjectField orderByField ) {
9947 return this .orderBy (orderByField , null , null );
10048 }
10149
10250 protected SObjectRepository orderBy (Schema.SObjectField orderByField , SObjectRepository.SortOrder sortOrder ) {
103- return orderBy (orderByField , sortOrder , null );
51+ return this . orderBy (orderByField , sortOrder , null );
10452 }
10553
10654 protected SObjectRepository orderBy (Schema.SObjectField orderByField , SObjectRepository.SortOrder sortOrder , SObjectRepository.NullsSortOrder nullsSortOrder ) {
@@ -137,6 +85,14 @@ public abstract class SObjectRepository implements ISObjectRepository {
13785 return Search .query (this .getSearchQuery (searchTerm , searchGroup ))[0 ];
13886 }
13987
88+
89+ // CRUD
90+ protected void doInsert (SObject record ) {doInsert (new List <SObject >{record });}
91+ protected void doInsert (List <SObject > records ) {Database .insert (records );}
92+ protected void doUpsert (List <SObject > records ) {Database .upsert (records );}
93+ protected void doUpdate (List <SObject > records ) {Database .update (records );}
94+ protected void doDelete (List <SObject > records ) {Database .delete (records );}
95+
14096 private void addCommonQueryFields () {
14197 if (! this .addCommonQueryFields ) return ;
14298
@@ -159,7 +115,7 @@ public abstract class SObjectRepository implements ISObjectRepository {
159115 }
160116
161117 private SObjectRepository addCondition (Schema.SObjectField field , String operator , String value ) {
162- this .whereClauseList .add (' ( ' + field + ' ' + operator .trim () + ' ' + value + ' ) ' );
118+ this .whereClauseList .add (field + ' ' + operator .trim () + ' ' + value );
163119 return this ;
164120 }
165121
0 commit comments