@@ -93,6 +93,8 @@ private void removeAndReplaceClass(List<ClassOutline> removeClasses, ClassOutlin
9393 var removeClass = classOutline .implClass ;
9494 removeFromParentContainer (removeClass );
9595 var jPackage = removeClass .getPackage ();
96+ removeFromObjectFactory (jPackage , removeClass );
97+ removeFromDebugClass (removeClass );
9698
9799 outline .getClasses ().forEach (c -> {
98100 var definedClass = c .implClass ;
@@ -112,6 +114,34 @@ private void removeAndReplaceClass(List<ClassOutline> removeClasses, ClassOutlin
112114 });
113115 }
114116
117+ private void removeFromDebugClass (JDefinedClass removeClass ) {
118+ var codeModel = removeClass .owner ();
119+ var defaultPackage = codeModel ._package ("" );
120+ var debugClass = defaultPackage ._getClass ("JAXBDebug" );
121+ if (debugClass == null ) {
122+ return ;
123+ }
124+ var classes = defaultPackage .classes ();
125+ while (classes .hasNext ()) {
126+ if (classes .next () == debugClass ) {
127+ classes .remove ();
128+ break ;
129+ }
130+ }
131+ }
132+
133+ private void removeFromObjectFactory (JPackage jPackage , JDefinedClass removeClass ) {
134+ if (jPackage == null ) {
135+ return ;
136+ }
137+ var objectFactoryClass = jPackage ._getClass ("ObjectFactory" );
138+ if (objectFactoryClass == null ) {
139+ return ;
140+ }
141+ objectFactoryClass .methods ().removeIf (method ->
142+ ClassNameDetector .detect (method .type ().fullName (), removeClass .fullName ()));
143+ }
144+
115145 private void removeFromParentContainer (JDefinedClass definedClass ) {
116146 var parentContainer = definedClass .parentContainer ();
117147
0 commit comments