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:
WimVelzeboer
2022-01-03 16:50:31 +00:00
parent 24ba673d8e
commit 558242b34f
@@ -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)