/** * prepares the model for template generation * * @param resources */ protected void preprocess(List<Resource> resources) { for (Resource resource : resources) { for (Model model : resource.getModels()) { // apply keyword mapping for (ModelField modelField : model.getFields()) { modelField.setName(reservedWordMapper.translate(modelField.getName())); } } } }
/** Generates model classes. If the class is already generated then ignores the same. */ private void generateModelClasses(List<Resource> resources, StringTemplateGroup templateGroup) { List<String> generatedClassNames = new ArrayList(); for (Resource resource : resources) { for (Model model : resource.getModels()) { if (!generatedClassNames.contains(model.getName()) && !this.getCodeGenRulesProvider().isModelIgnored(model.getName())) { List<String> imports = new ArrayList<String>(); imports.addAll(this.config.getDefaultModelImports()); for (ModelField param : model.getFields()) { for (String importDef : param .getFieldDefinition(this.getDataTypeMappingProvider(), config, nameGenerator) .getImportDefinitions()) { if (!imports.contains(importDef)) { imports.add(importDef); } } } StringTemplate template = templateGroup.getInstanceOf(MODEL_OBJECT_TEMPLATE); template.setAttribute("model", model); template.setAttribute("fields", model.getFields()); template.setAttribute("imports", imports); template.setAttribute("annotationPackageName", languageConfig.getAnnotationPackageName()); template.setAttribute("extends", config.getDefaultModelBaseClass()); template.setAttribute("className", model.getGenratedClassName()); template.setAttribute(PACKAGE_NAME, config.getModelPackageName()); File aFile = new File( languageConfig.getModelClassLocation() + model.getGenratedClassName() + languageConfig.getClassFileExtension()); writeFile(aFile, template.toString(), "Model class"); generatedClassNames.add(model.getName()); } } } generateWrapperClassForTestData(generatedClassNames, templateGroup); }