compareDeprecated(isAPIDeprecated(api), ec.isAnnotationPresent(Deprecated.class), enumName, ecName,\r
"Enum Constant");\r
}\r
+\r
+ // check methods\r
+ for (Method mtd : cls.getDeclaredMethods()) {\r
+ // Note: We exclude built-in methods in a Java Enum instance\r
+ if (!isPublicOrProtected(mtd.getModifiers()) || isBuiltinEnumMethod(mtd)) {\r
+ continue;\r
+ }\r
+\r
+ String mtdName = mtd.getName();\r
+ List<String> paramNames = getParamNames(mtd);\r
+ api = findMethodInfo(apiInfoSet, enumName, mtdName, paramNames);\r
+\r
+ if (api == null) {\r
+ pw.println("## Error ## Method " + enumName + "#" + mtdName + formatParams(paramNames)\r
+ + " is not found in the API signature data.");\r
+ errCount++;\r
+ continue;\r
+ }\r
+\r
+ compareDeprecated(isAPIDeprecated(api), mtd.isAnnotationPresent(Deprecated.class), enumName, mtdName\r
+ + formatParams(paramNames), "Method");\r
+\r
+ }\r
}\r
\r
private void compareDeprecated(boolean depTag, boolean depAnt, String cls, String name, String type) {\r
return ((modifier & Modifier.PUBLIC) != 0) || ((modifier & Modifier.PROTECTED) != 0);\r
}\r
\r
+ // Check if a method is automatically generated for a each Enum\r
+ private static boolean isBuiltinEnumMethod(Method mtd) {\r
+ // Just check method name for now\r
+ String name = mtd.getName();\r
+ return name.equals("values") || name.equals("valueOf");\r
+ }\r
+\r
private static boolean isAPIDeprecated(APIInfo api) {\r
return api.isDeprecated() || api.isInternal() || api.isObsolete();\r
}\r