code: @Override
      public void visitField(Field obj) {
          if (obj.isStatic() && obj.isPublic() && obj.isFinal()) {
              JavaClass cls = getClassContext().getJavaClass();
              if (!obj.isEnum()) {
                  String fieldClass = obj.getSignature();
                  if (fieldClass.startsWith(Values.SIG_QUALIFIED_CLASS_PREFIX)) {
                      fieldClass = SignatureUtils.trimSignature(fieldClass);
                      String clsClass = cls.getClassName();
                      if (fieldClass.equals(clsClass)) {
                          enumConstNames.add(obj.getName());
                          super.visitField(obj);
                      }
                  }
              }
          }
      }
docs: implements the visitor to look for fields that are public static final and are the same type as the owning class. it collects these object names for
  later
  
  @param obj
  the context object of the currently parsed field