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;
}
}