X-Git-Url: http://www2.svjatoslav.eu/gitweb/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Finspector%2Fjava%2Fstructure%2FClassDescriptor.java;h=55ef66ccfcf045fdc2b49ceafd94916c84c53213;hb=aa556ce8e3099d7bbd07afe5cd04a482bd4b7938;hp=fbd491bdefe7aa964739d7d8b4a172adb2f85371;hpb=79db54fde2069b536c95e9da810efb27f2e4efb5;p=javainspect.git diff --git a/src/main/java/eu/svjatoslav/inspector/java/structure/ClassDescriptor.java b/src/main/java/eu/svjatoslav/inspector/java/structure/ClassDescriptor.java index fbd491b..55ef66c 100644 --- a/src/main/java/eu/svjatoslav/inspector/java/structure/ClassDescriptor.java +++ b/src/main/java/eu/svjatoslav/inspector/java/structure/ClassDescriptor.java @@ -55,7 +55,7 @@ public class ClassDescriptor implements GraphElement { /** * Amount of field and method references pointing to this class. */ - private int referenceCount = 0; + private int incomingReferencesCount = 0; public ClassDescriptor(final Class clazz, final ClassGraph dump) { @@ -92,7 +92,7 @@ public class ClassDescriptor implements GraphElement { } public boolean areReferencesShown() { - return referenceCount <= MAX_REFERECNES_COUNT; + return incomingReferencesCount <= MAX_REFERECNES_COUNT; } public void enlistFieldReferences(final StringBuffer result) { @@ -354,6 +354,31 @@ public class ClassDescriptor implements GraphElement { isShown = false; } + public boolean hideClassIfNoReferences() { + if (!isVisible()) + return false; + + int outgoingVisibleReferencesCount = 0; + + for (final MethodDescriptor methodDescriptor : methods) + outgoingVisibleReferencesCount += methodDescriptor + .getOutsideVisibleReferencesCount(); + + for (final FieldDescriptor fieldDescriptor : nameToFieldMap.values()) + outgoingVisibleReferencesCount += fieldDescriptor + .getOutsideVisibleReferencesCount(); + + final int totalReferencesCount = outgoingVisibleReferencesCount + + incomingReferencesCount; + + if (totalReferencesCount == 0) { + hide(); + return true; + } + + return false; + } + public void indexFields(final Field[] fields) { for (final Field field : fields) { if (nameToFieldMap.containsKey(field.getName())) @@ -389,7 +414,7 @@ public class ClassDescriptor implements GraphElement { } public void registerReference() { - referenceCount++; + incomingReferencesCount++; } public void setDistinctiveColor(final String distinctiveColor) {