assert template != null;
TemplateInjector templateInjector = getTemplateInjector();
assert templateInjector != null;
WriterProvider writerProvider = getWriterProvider(destDir);
assert writerProvider != null;
// Write filtered data to the template
int numGeneratedCode = 0;
for (DescribeSObjectResult dsr : objectFilter.filter(allOrgObjects)) {
// Before we write a new source file, make sure the template is reset
template.reset();
// Inject the data into the template
templateInjector.inject(userInfo, dsr, fieldFilter.filter(dsr), template);
Writer writer = null;
try {
writer = writerProvider.getWriter(userInfo, dsr);
template.write(writer);
numGeneratedCode++;
} finally {
if (writer != null) writer.close();
}