- // count method references
- for (final MethodDescriptor methodDescriptor : methods)
- result += methodDescriptor.getOutsideVisibleReferencesCount();
-
- // count field references
- for (final FieldDescriptor fieldDescriptor : nameToFieldMap.values())
- result += fieldDescriptor.getOutsideVisibleReferencesCount();
-
- // count implemented interfaces
- for (final ClassDescriptor classDescriptor : interfaces)
- if (classDescriptor.isVisible())
- result++;
-
- // count superclass
- if (superClass != null)
- if (superClass.isVisible())
- result++;
-
- return result;
- }
-
- public String getPackageName() {
-
- final int i = classFullyQualifiedName.lastIndexOf('.');
-
- if (i == -1)
- return "";
-
- return classFullyQualifiedName.substring(0, i).replace("[L", "");
- }
-
- public String getParentClassesName() {
- int i = classFullyQualifiedName.lastIndexOf('.');
- final String fullClassName = classFullyQualifiedName.substring(i + 1);
-
- i = fullClassName.lastIndexOf('$');
- if (i == -1)
- return "";
- final String parentClassesName = fullClassName.substring(0, i);
- return parentClassesName.replace('$', '.');
- }
-
- public String getSuperClassColor() {
- if (superClassColor == null)
- superClassColor = Utils.getNextLightColor();
-
- return superClassColor;
- }
-
- /**
- * Checks if class has field with given name (case is ignored). Returns
- * <code>true</code> if such field is found.
- */
- public boolean hasFieldIgnoreCase(final String fieldToSearch) {
-
- for (final String fieldName : nameToFieldMap.keySet())
- if (fieldToSearch.equalsIgnoreCase(fieldName))
- return true;
-
- return false;
- }
-
- public void hide() {
- isShown = false;
- }
-
- public void hideClassIfNoReferences() {
- if (!isVisible())
- return;
-
- final int totalReferencesCount = getOutgoingReferencesCount()
- + referencesCount + extensionsCount + implementationsCount;
-
- if (totalReferencesCount == 0) {
- hide();
- return;
- }
-
- return;
- }
-
- public void indexFields(final Field[] fields) {
- for (final Field field : fields)
- getOrCreateFieldDescriptor(field);
- }
-
- private void indexMethods(final Class<? extends Object> clazz) {
- for (final Method method : clazz.getMethods()) {
- final MethodDescriptor methodDescriptor = new MethodDescriptor(
- this, method.getName());
-
- methods.add(methodDescriptor);
-
- methodDescriptor.analyze(method);
- }
-
- }
-
- @Override
- public boolean isVisible() {
-
- if (Utils.isSystemDataType(classFullyQualifiedName))
- return false;
-
- if (Utils.isSystemPackage(classFullyQualifiedName))
- return false;
-
- if (!getClassGraph().getFilter().isClassShown(classFullyQualifiedName))
- return false;
-
- if (isArray)
- if (arrayComponent != null)
- if (Utils
- .isSystemDataType(arrayComponent.classFullyQualifiedName))
- // Do not show references to primitive data types in arrays.
- // That is: there is no point to show reference to byte when
- // we have class with byte array field.
- return false;
-
- return isShown;
- }
-
- /**
- * Register event when another class is extending this one.
- */
- public void registerExtension() {
- extensionsCount++;
- }
-
- public void registerImplementation() {
- implementationsCount++;
- }
-
- public void registerReference() {
- referencesCount++;
- }
-
- public void setDistinctiveColor(final String distinctiveColor) {
- distinctiveReferenceColor = distinctiveColor;
- }