@Override
public void doFreemarkerGenerate() throws IOException, TemplateException {
File genDir = getGenerateDir();
if (!enunciate.isUpToDateWithSources(genDir)) {
EnunciateFreemarkerModel model = getModel();
ClientPackageForMethod namespaceFor = new ClientPackageForMethod(this.packageToNamespaceConversions);
namespaceFor.setUseClientNameConversions(true);
model.put("namespaceFor", namespaceFor);
model.put("findRootElement", new FindRootElementMethod());
model.put("requestDocumentQName", new RequestDocumentQNameMethod());
model.put("responseDocumentQName", new ResponseDocumentQNameMethod());
ClientClassnameForMethod classnameFor = new ClientClassnameForMethod(this.packageToNamespaceConversions);
classnameFor.setUseClientNameConversions(true);
model.put("classnameFor", classnameFor);
model.put("listsAsArraysClassnameFor", new ListsAsArraysClientClassnameForMethod(this.packageToNamespaceConversions));
model.put("simpleNameFor", new SimpleNameWithParamsMethod(classnameFor));
model.put("csFileName", getSourceFileName());
model.put("accessorOverridesAnother", new AccessorOverridesAnotherMethod());
debug("Generating the C# client classes...");
URL apiTemplate = isSingleFilePerClass() ? getTemplateURL("api-multiple-files.fmt") : getTemplateURL("api.fmt");
processTemplate(apiTemplate, model);
}
else {
info("Skipping C# code generation because everything appears up-to-date.");
}
}