summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdam Lesinski <adamlesinski@google.com>2018-01-23 01:11:54 -0800
committerAdam Lesinski <adamlesinski@google.com>2018-02-06 14:49:09 -0800
commit18b65ca7f0edccfa0c7f1b298b7de48cedf558b1 (patch)
tree851e09d29b91efbd27ed4567851ed83ff90b4876
parentcc8c74cd1233e3258bd0a8c9c92effbb6839043f (diff)
downloadplatform_external_doclava-18b65ca7f0edccfa0c7f1b298b7de48cedf558b1.tar.gz
platform_external_doclava-18b65ca7f0edccfa0c7f1b298b7de48cedf558b1.tar.bz2
platform_external_doclava-18b65ca7f0edccfa0c7f1b298b7de48cedf558b1.zip
Reduce 'final' method churn when class is 'final'
Final classes cannot be overridden, making each method effectively final. Removal or addition of 'final' identifiers shouldn't affect the api file. Test: manual Merged-In: Icce1d75ed535a40147ebe5e75a41c63b8e6f8ad4 Change-Id: Icce1d75ed535a40147ebe5e75a41c63b8e6f8ad4
-rw-r--r--src/com/google/doclava/Converter.java15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/com/google/doclava/Converter.java b/src/com/google/doclava/Converter.java
index 269c860..a6f803b 100644
--- a/src/com/google/doclava/Converter.java
+++ b/src/com/google/doclava/Converter.java
@@ -474,15 +474,20 @@ public class Converter {
return result;
} else if (o instanceof MethodDoc) {
MethodDoc m = (MethodDoc) o;
+ final ClassInfo containingClass = Converter.obtainClass(m.containingClass());
+
+ // The containing class is final, so it is implied that every method is final as well.
+ // No need to apply 'final' to each method.
+ final boolean isMethodFinal = m.isFinal() && !containingClass.isFinal();
MethodInfo result =
new MethodInfo(m.getRawCommentText(),
new ArrayList<TypeInfo>(Arrays.asList(
Converter.convertTypes(m.typeParameters()))), m.name(), m.signature(),
- Converter.obtainClass(m.containingClass()),
- Converter.obtainClass(m.containingClass()), m.isPublic(), m.isProtected(),
- m.isPackagePrivate(), m.isPrivate(), m.isFinal(), m.isStatic(), m.isSynthetic(),
- m.isAbstract(), m.isSynchronized(), m.isNative(), m.isDefault(), false,
- "method", m.flatSignature(), Converter.obtainMethod(m.overriddenMethod()),
+ containingClass, containingClass, m.isPublic(), m.isProtected(),
+ m.isPackagePrivate(), m.isPrivate(), isMethodFinal, m.isStatic(),
+ m.isSynthetic(), m.isAbstract(), m.isSynchronized(), m.isNative(),
+ m.isDefault(), false, "method", m.flatSignature(),
+ Converter.obtainMethod(m.overriddenMethod()),
Converter.obtainType(m.returnType()),
new ArrayList<ParameterInfo>(Arrays.asList(
Converter.convertParameters(m.parameters(), m))),