@@ -266,6 +266,52 @@ public virtual class fflib_SObjects
266266		}
267267	}
268268
269+ 	/**  
270+ 	 * Sets a value to the given field only when key field Id value is provided in the given map 
271+ 	 * 
272+ 	 * @param  sObjectIdFieldToCheck  The SObject Id Field to match the key against in the provided map 
273+ 	 * @param  sObjectFieldToUpdate  The SObjectField to store the mapped value when the key matches the value in the sObjectFieldToUpdate field 
274+ 	 * @param  values  Map of values to store by the sObjectIdFieldToCheck fields value 
275+ 	 */  
276+ 	@TestVisible
277+ 	protected  virtual  void  setFieldValue (
278+ 			Schema.SObjectField  sObjectIdFieldToCheck ,
279+ 			Schema.SObjectField  sObjectFieldToUpdate ,
280+ 			Map <Id , Object > values )
281+ 	{
282+ 		for  (SObject  record  :  getRecords ())
283+ 		{
284+ 			Id  keyValue  =  (Id ) record .get (sObjectIdFieldToCheck );
285+ 			if  (values ?. containsKey (keyValue ))
286+ 			{
287+ 				record .put (sObjectFieldToUpdate , values .get (keyValue ));
288+ 			}
289+ 		}
290+ 	}
291+ 
292+ 	/**  
293+ 	 * Sets a value to the given field only when key field String value is provided in the given map 
294+ 	 * 
295+ 	 * @param  sObjectStringFieldToCheck  The SObject String Field to match the key against in the provided map 
296+ 	 * @param  sObjectFieldToUpdate  The SObjectField to store the mapped value when the key matches the value in the sObjectFieldToUpdate field 
297+ 	 * @param  values  Map of values to store by the sObjectIdFieldToCheck fields value 
298+ 	 */  
299+ 	@TestVisible
300+ 	protected  virtual  void  setFieldValue (
301+ 			Schema.SObjectField  sObjectStringFieldToCheck ,
302+ 			Schema.SObjectField  sObjectFieldToUpdate ,
303+ 			Map <String , Object > values )
304+ 	{
305+ 		for  (SObject  record  :  getRecords ())
306+ 		{
307+ 			String  keyValue  =  (String ) record .get (sObjectStringFieldToCheck );
308+ 			if  (values ?. containsKey (keyValue ))
309+ 			{
310+ 				record .put (sObjectFieldToUpdate , values .get (keyValue ));
311+ 			}
312+ 		}
313+ 	}
314+ 
269315	/**  
270316	 * @param  sObjectFieldToCheck  The SObjectField to match the key against in the provided map 
271317	 * @param  sObjectFieldToUpdate  The SObjectField to store the mapped value when the key matches the value in the sObjectFieldToUpdate field 
0 commit comments