@SuppressWarnings("static-method") public Map<String, Object> processModels( CodegenConfig config, Map<String, Model> definitions, Map<String, Model> allDefinitions) { Map<String, Object> objs = new HashMap<String, Object>(); objs.put("package", config.modelPackage()); List<Object> models = new ArrayList<Object>(); Set<String> allImports = new LinkedHashSet<String>(); for (String key : definitions.keySet()) { Model mm = definitions.get(key); CodegenModel cm = config.fromModel(key, mm, allDefinitions); Map<String, Object> mo = new HashMap<String, Object>(); mo.put("model", cm); mo.put("importPath", config.toModelImport(key)); models.add(mo); allImports.addAll(cm.imports); } objs.put("models", models); Set<String> importSet = new TreeSet<String>(); for (String nextImport : allImports) { String mapping = config.importMapping().get(nextImport); if (mapping == null) { mapping = config.toModelImport(nextImport); } if (mapping != null && !config.defaultIncludes().contains(mapping)) { importSet.add(mapping); } // add instantiation types mapping = config.instantiationTypes().get(nextImport); if (mapping != null && !config.defaultIncludes().contains(mapping)) { importSet.add(mapping); } } List<Map<String, String>> imports = new ArrayList<Map<String, String>>(); for (String s : importSet) { Map<String, String> item = new HashMap<String, String>(); item.put("import", s); imports.add(item); } objs.put("imports", imports); config.postProcessModels(objs); return objs; }