Add private domain selector method in domain template
Allows for generic selectors based on SObjectFields Signed-off-by: WimVelzeboer <wimvelzeboer@protonmail.com>
This commit is contained in:
@@ -22,6 +22,54 @@ public inherited sharing class ${NAME}
|
||||
return (List<${SObject_API_Name}>) getRecords();
|
||||
}
|
||||
|
||||
private I${NAME} selectBlank(Schema.SObjectField sObjectField)
|
||||
{
|
||||
List<${SObject_API_Name}> result = new List<${SObject_API_Name}>();
|
||||
for (${SObject_API_Name} record : get${NAME}())
|
||||
{
|
||||
if (String.isNotBlank((String) record.get(sObjectField))) continue;
|
||||
|
||||
result.add(record);
|
||||
}
|
||||
return new ${NAME}(result);
|
||||
}
|
||||
|
||||
private I${NAME} selectNonBlank(Schema.SObjectField sObjectField)
|
||||
{
|
||||
List<${SObject_API_Name}> result = new List<${SObject_API_Name}>();
|
||||
for (${SObject_API_Name} record : get${NAME}())
|
||||
{
|
||||
if (String.isBlank((String) record.get(sObjectField))) continue;
|
||||
|
||||
result.add(record);
|
||||
}
|
||||
return new ${NAME}(result);
|
||||
}
|
||||
|
||||
private I${NAME} selectWith(Schema.SObjectField sObjectField)
|
||||
{
|
||||
List<${SObject_API_Name}> result = new List<${SObject_API_Name}>();
|
||||
for (${SObject_API_Name} record : get${NAME}())
|
||||
{
|
||||
if (record.get(sObjectField) == null) continue;
|
||||
|
||||
result.add(record);
|
||||
}
|
||||
return new ${NAME}(result);
|
||||
}
|
||||
|
||||
private I${NAME} selectWithout(Schema.SObjectField sObjectField)
|
||||
{
|
||||
List<${SObject_API_Name}> result = new List<${SObject_API_Name}>();
|
||||
for (${SObject_API_Name} record : get${NAME}())
|
||||
{
|
||||
if (record.get(sObjectField) != null) continue;
|
||||
|
||||
result.add(record);
|
||||
}
|
||||
return new ${NAME}(result);
|
||||
}
|
||||
|
||||
public class Constructor implements fflib_IDomainConstructor
|
||||
{
|
||||
public fflib_SObjects construct(List<Object> records)
|
||||
|
||||
Reference in New Issue
Block a user