@@ -78,13 +78,13 @@ public class Generator {
7878 private Set <String > nonPublicNestedClasses ;
7979
8080 public Generator (File outputDir , List <DataRow > libs ) throws IOException {
81- this (outputDir , libs , false , false );
81+ this (outputDir , libs , false );
8282 }
8383
84- public Generator (File outputDir , List <DataRow > libs , boolean suppressCallJSMethodExceptions , boolean throwOnError ) throws IOException {
84+ public Generator (File outputDir , List <DataRow > libs , boolean suppressCallJSMethodExceptions ) throws IOException {
8585 this .outputDir = outputDir ;
8686 this .libs = libs ;
87- this .fileSystemHelper = new FileSystemHelperImpl (throwOnError );
87+ this .fileSystemHelper = new FileSystemHelperImpl (InputParameters . getCurrent (). getThrowOnError () );
8888 ClassesCollection classesCollection = readClasses (libs );
8989 this .classes = classesCollection .getRegularClasses ();
9090 this .nonPublicNestedClasses = classesCollection .getNonPublicNestedClasses ();
@@ -443,16 +443,19 @@ private void writeMethodsToWriter(Writer writer, GenericHierarchyView genericHie
443443 for (ReifiedJavaMethod abstractMethod : inheritedMethodsView .getNonImplementedMethods ()) {
444444 writer .writeln ();
445445 writer .writeln ();
446- methodsWriter .writeMethod (abstractMethod );
446+ methodsWriter .writeMethod (abstractMethod , false );
447447 }
448448
449- for (ReifiedJavaMethod overridableMethod : inheritedMethodsView .getOverridableImplementedMethods ()) {
449+ List <ReifiedJavaMethod > overridableImplementedMethods = inheritedMethodsView .getOverridableImplementedMethods ();
450+
451+ for (ReifiedJavaMethod overridableMethod : overridableImplementedMethods ) {
450452 for (String userImplementedMethodName : userImplementedMethods ) {
451453 if (overridableMethod .getName ().equals (userImplementedMethodName )) {
452454 if (areAllArgumentsAndReturnTypePublic (overridableMethod )) {
453455 writer .writeln ();
454456 writer .writeln ();
455- methodsWriter .writeMethod (overridableMethod );
457+ boolean isUserImplemented = !overridableMethod .isDeprecated () || !hasNonDeprecatedImplementation (overridableMethod , overridableImplementedMethods );
458+ methodsWriter .writeMethod (overridableMethod , isUserImplemented );
456459 }
457460 }
458461 }
@@ -471,6 +474,22 @@ private void writeMethodsToWriter(Writer writer, GenericHierarchyView genericHie
471474 methodsWriter .writeInternalRuntimeEqualsMethod ();
472475 }
473476
477+ /**
478+ * Checks whether in the list of implemented methods there's another method with the same name which is not deprecated.
479+ * In that case we'll consider that method as user implemented, but not the current one
480+ *
481+ * @private
482+ * @param {ReifiedJavaMethod} currentMethod The method to check.
483+ * @param {List<ReifiedJavaMethod>} allOverridableMethods The list will all the overridable methods to check in.
484+ * @returns {boolean} Returns true or false.
485+ */
486+ private boolean hasNonDeprecatedImplementation (ReifiedJavaMethod currentMethod , List <ReifiedJavaMethod > allOverridableMethods ) {
487+ return allOverridableMethods .stream ().anyMatch (method ->
488+ method != currentMethod
489+ && method .getName ().equals (currentMethod .getName ())
490+ && !method .isDeprecated ());
491+ }
492+
474493 private boolean hasOverriddenOnCreateMethod (List <String > overriddenMethods ) {
475494 return overriddenMethods .contains ("onCreate" );
476495 }
0 commit comments