Dynamic SOQL Generator

public class SOQLGenerator {

    public static String generateSOQL(String objectName, Set<String> fieldSet, Map<String, String> mapFilterNameToValue) {
        String soql;
        
        soql = 'SELECT ';
        for (String field : fieldSet) {
            if (soql == 'SELECT ') {
                soql = soql + field;
            }
            else {
                soql = soql + ', ' + field;
            }
        }
        soql = soql + ' FROM  ' + objectName;
        soql = soql + ' WHERE ';
        for (String filterName : mapFilterNameToValue.keySet()) {
            soql = soql + filterName + ' = \'' + mapFilterNameToValue.get(filterName) + '\' AND ';
        }
		
        Integer lastIndexOfAND = soql.lastIndexOf('AND');
        soql                   = soql.substring(0, lastIndexOfAND - 1);
        
        return soql;
    }
}
Unknown's avatar

Author: Jyotirmay Paul

A tech enthusiast!

Leave a comment