count class extensions as references when calculating orphaned classes
[javainspect.git] / src / main / java / eu / svjatoslav / inspector / java / structure / MethodDescriptor.java
index 35e49d5..5e03b6b 100644 (file)
@@ -15,7 +15,12 @@ import java.lang.reflect.Type;
 import java.util.ArrayList;
 import java.util.List;
 
-public class MethodDescriptor implements GraphElement {
+public class MethodDescriptor implements GraphElement,
+Comparable<MethodDescriptor> {
+
+       /**
+        * This class corresponds to single method within a java class.
+        */
 
        public String name;
        public ClassDescriptor returnType;
@@ -52,7 +57,6 @@ public class MethodDescriptor implements GraphElement {
                                }
 
                }
-
        }
 
        @Override
@@ -112,6 +116,19 @@ public class MethodDescriptor implements GraphElement {
                return name;
        }
 
+       public int getOutsideVisibleReferencesCount() {
+               int result = 0;
+
+               if (returnType.isVisible())
+                       result++;
+
+               for (final ClassDescriptor classDescriptor : typeArguments)
+                       if (classDescriptor.isVisible())
+                               result++;
+
+               return result;
+       }
+
        @Override
        public boolean isVisible() {
 
@@ -137,4 +154,14 @@ public class MethodDescriptor implements GraphElement {
                return true;
        }
 
+       @Override
+       public int compareTo(MethodDescriptor o) {
+
+               int nameComparisonResult = name.compareTo(o.name);
+               if (nameComparisonResult != 0)
+                       return nameComparisonResult;
+
+               return toString().compareTo(o.toString());
+       }
+
 }