/** * Creates a wrapper model class that contains all model classes as list of objects. This class is * used for storing test data */ private void generateWrapperClassForTestData( List<String> generatedClassNames, StringTemplateGroup templateGroup) { Model model = new Model(); model.setName("TestData"); model.setDescription( "Class used to store all the test data. This should not be used for any development"); List<ModelField> modelFields = new ArrayList<ModelField>(); model.setFields(modelFields); for (String className : generatedClassNames) { ModelField aParam = new ModelField(); aParam.setName(this.getNameGenerator().applyMethodNamingPolicy(className) + "List"); aParam.setParamType(this.getDataTypeMappingProvider().getListReturnTypeSignature(className)); modelFields.add(aParam); } List<String> imports = new ArrayList<String>(); imports.addAll(this.config.getDefaultModelImports()); imports.addAll(this.getDataTypeMappingProvider().getListIncludes()); 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("fields", model.getFields()); template.setAttribute("imports", imports); template.setAttribute("annotationPackageName", languageConfig.getAnnotationPackageName()); template.setAttribute("extends", config.getDefaultModelBaseClass()); template.setAttribute(PACKAGE_NAME, config.getModelPackageName()); template.setAttribute("className", model.getGenratedClassName()); File aFile = new File( languageConfig.getModelClassLocation() + model.getGenratedClassName() + languageConfig.getClassFileExtension()); writeFile(aFile, template.toString(), "Wrapper class for test data file"); }