@@ -1475,7 +1475,7 @@ public boolean hasDeclaredField(final String fieldName) {
14751475 * @return true if this class or one of its superclasses declares a field of the given name.
14761476 */
14771477 public boolean hasField (final String fieldName ) {
1478- for (final ClassInfo ci : getOverrideOrder ()) {
1478+ for (final ClassInfo ci : getFieldOverrideOrder ()) {
14791479 if (ci .hasDeclaredField (fieldName )) {
14801480 return true ;
14811481 }
@@ -1531,7 +1531,7 @@ public boolean hasFieldAnnotation(final Class<? extends Annotation> fieldAnnotat
15311531 * @return true if this class or one of its superclasses declares a field with the named annotation.
15321532 */
15331533 public boolean hasFieldAnnotation (final String fieldAnnotationName ) {
1534- for (final ClassInfo ci : getOverrideOrder ()) {
1534+ for (final ClassInfo ci : getFieldOverrideOrder ()) {
15351535 if (ci .hasDeclaredFieldAnnotation (fieldAnnotationName )) {
15361536 return true ;
15371537 }
@@ -1684,23 +1684,24 @@ public boolean hasMethodParameterAnnotation(final String methodParameterAnnotati
16841684 // -------------------------------------------------------------------------------------------------------------
16851685
16861686 /**
1687- * Recurse to interfaces and superclasses to get the order that fields and methods are overridden in.
1687+ * Recurse to interfaces and superclasses to get the order that fields are overridden in.
16881688 *
16891689 * @param visited
16901690 * visited
16911691 * @param overrideOrderOut
16921692 * the override order
16931693 * @return the override order
16941694 */
1695- private List <ClassInfo > getOverrideOrder (final Set <ClassInfo > visited , final List <ClassInfo > overrideOrderOut ) {
1695+ private List <ClassInfo > getFieldOverrideOrder (final Set <ClassInfo > visited ,
1696+ final List <ClassInfo > overrideOrderOut ) {
16961697 if (visited .add (this )) {
16971698 overrideOrderOut .add (this );
16981699 for (final ClassInfo iface : getInterfaces ()) {
1699- iface .getOverrideOrder (visited , overrideOrderOut );
1700+ iface .getFieldOverrideOrder (visited , overrideOrderOut );
17001701 }
17011702 final ClassInfo superclass = getSuperclass ();
17021703 if (superclass != null ) {
1703- superclass .getOverrideOrder (visited , overrideOrderOut );
1704+ superclass .getFieldOverrideOrder (visited , overrideOrderOut );
17041705 }
17051706 }
17061707 return overrideOrderOut ;
@@ -1711,9 +1712,9 @@ private List<ClassInfo> getOverrideOrder(final Set<ClassInfo> visited, final Lis
17111712 *
17121713 * @return the override order
17131714 */
1714- private List <ClassInfo > getOverrideOrder () {
1715+ private List <ClassInfo > getFieldOverrideOrder () {
17151716 if (overrideOrder == null ) {
1716- overrideOrder = getOverrideOrder (new HashSet <ClassInfo >(), new ArrayList <ClassInfo >());
1717+ overrideOrder = getFieldOverrideOrder (new HashSet <ClassInfo >(), new ArrayList <ClassInfo >());
17171718 }
17181719 return overrideOrder ;
17191720 }
@@ -1728,9 +1729,9 @@ private List<ClassInfo> getOverrideOrder() {
17281729 * See Java Language Specification 8.4.8 for details.
17291730 *
17301731 * @param visited
1731- * nonnull set of already visited ClassInfos
1732+ * non-null set of already visited ClassInfos
17321733 * @param overrideOrderOut
1733- * nonnull outgoing list of ClassInfos in descending override order.
1734+ * non-null outgoing list of ClassInfos in descending override order.
17341735 * @return the overrideOrderOut instance
17351736 */
17361737 private List <ClassInfo > getMethodOverrideOrder (final Set <ClassInfo > visited ,
@@ -1751,12 +1752,13 @@ private List<ClassInfo> getMethodOverrideOrder(final Set<ClassInfo> visited,
17511752 }
17521753 return overrideOrderOut ;
17531754 }
1754- //overrideOrderOut already contains all concrete classes now
1755- //this is an interface. If one of the extended interfaces is already in the output, then this needs to be
1755+ // overrideOrderOut already contains all concrete classes now.
1756+ // This is an interface. If one of the extended interfaces is already in the output, then this needs to be
17561757 // added before it.
1757- //Otherwise, this is unrelated to all collected ClassInfo so far and can simply be added to the result.
1758- //The compiler should've prevented inheriting unrelated interfaces with methods having the same signature.
1759- // Can still happen thanks to dynamically linking a different interface during runtime, for which the returned order is undefined.
1758+ // Otherwise, this is unrelated to all collected ClassInfo so far and can simply be added to the result.
1759+ // The compiler should've prevented inheriting unrelated interfaces with methods having the same signature.
1760+ // Can still happen thanks to dynamically linking a different interface during runtime, for which the
1761+ // returned order is undefined.
17601762 final ClassInfoList interfaces = getInterfaces ();
17611763 int minIndex = Integer .MAX_VALUE ;
17621764 for (final ClassInfo iface : interfaces ) {
@@ -1771,6 +1773,7 @@ private List<ClassInfo> getMethodOverrideOrder(final Set<ClassInfo> visited,
17711773 } else {
17721774 overrideOrderOut .add (minIndex , this );
17731775 }
1776+ // Add interfaces to end of override order
17741777 for (final ClassInfo iface : interfaces ) {
17751778 iface .getMethodOverrideOrder (visited , overrideOrderOut );
17761779 }
@@ -2758,7 +2761,7 @@ public FieldInfoList getFieldInfo() {
27582761 // Implement field overriding
27592762 final FieldInfoList fieldInfoList = new FieldInfoList ();
27602763 final Set <String > fieldNameSet = new HashSet <>();
2761- for (final ClassInfo ci : getOverrideOrder ()) {
2764+ for (final ClassInfo ci : getFieldOverrideOrder ()) {
27622765 for (final FieldInfo fi : ci .getDeclaredFieldInfo ()) {
27632766 // If field has not been overridden by field of same name
27642767 if (fieldNameSet .add (fi .getName ())) {
@@ -2874,7 +2877,7 @@ public FieldInfo getFieldInfo(final String fieldName) {
28742877 throw new IllegalArgumentException ("Please call ClassGraph#enableFieldInfo() before #scan()" );
28752878 }
28762879 // Implement field overriding
2877- for (final ClassInfo ci : getOverrideOrder ()) {
2880+ for (final ClassInfo ci : getFieldOverrideOrder ()) {
28782881 final FieldInfo fi = ci .getDeclaredFieldInfo (fieldName );
28792882 if (fi != null ) {
28802883 return fi ;
0 commit comments