@@ -11,10 +11,10 @@ public class OrphanDestroyer {
1111 private static Set <String > primitiveModels = new HashSet <>(Arrays .asList ("object" , "array" , "string" , "boolean" , "integer" ));
1212
1313 private Map <String , CodegenModel > models ;
14- private HashSet <String > visitedModels ;
14+ private Set <String > visitedModels ;
1515
1616 private OrphanDestroyer (Map <String , CodegenModel > models ) {
17- this .visitedModels = new HashSet <>();
17+ this .visitedModels = new TreeSet <>(String . CASE_INSENSITIVE_ORDER );
1818 this .models = models ;
1919 }
2020
@@ -43,7 +43,12 @@ private void exploreProperties(CodegenModel model, List<CodegenProperty> propert
4343 }
4444 CodegenModel itemsModel = propertyToModel (property .mostInnerItems );
4545 if (itemsModel != null && !visitedModels .contains (itemsModel .name )) {
46- System .out .println ("Visiting item: " + itemsModel .name + " from " + model .name );
46+ System .out .println (
47+ "Visiting item: " + itemsModel .name + " from " + model .name + " original name " + property .mostInnerItems .openApiType
48+ );
49+ // In csharp the real model name varies if its part of the modelMapping so we have to add
50+ // both
51+ visitedModels .add (property .mostInnerItems .openApiType );
4752 visitedModels .add (itemsModel .name );
4853 visitModelRecursive (itemsModel );
4954 }
@@ -57,11 +62,12 @@ private void visitModelRecursive(CodegenModel model) {
5762 }
5863 }
5964
60- private static Map <String , CodegenModel > convertToMap (List <ModelMap > models ) {
65+ private static Map <String , CodegenModel > convertToMap (CodegenConfig config , List <ModelMap > models ) {
6166 Map <String , CodegenModel > modelsMap = new TreeMap <>(String .CASE_INSENSITIVE_ORDER );
6267 for (ModelMap modelMap : models ) {
6368 CodegenModel model = modelMap .getModel ();
64- modelsMap .put (model .name , model );
69+
70+ modelsMap .put (config .toModelName (model .name ), model );
6571 }
6672 return modelsMap ;
6773 }
@@ -98,8 +104,8 @@ public static void removeOrphans(CodegenConfig config, OperationsMap operations,
98104 // - the return type of an operation
99105 // - the parameters of an operation
100106
101- OrphanDestroyer orphanDestroyer = new OrphanDestroyer (convertToMap (allModels ));
102-
107+ OrphanDestroyer orphanDestroyer = new OrphanDestroyer (convertToMap (config , allModels ));
108+ Helpers . prettyPrint ( orphanDestroyer . models . keySet ());
103109 orphanDestroyer .exploreGraph (operations );
104110
105111 List <String > toRemove = new ArrayList <>();
0 commit comments