docs: @Override
      protected String getClassName() {
          if (className == null) {
              getTypeSignature();
              if (typeSignature instanceof BaseTypeSignature) {
                  className = ((BaseTypeSignature) typeSignature).getType().getName();
              } else if (typeSignature instanceof ClassRefTypeSignature) {
                  className = ((ClassRefTypeSignature) typeSignature).getFullyQualifiedClassName();
              } else {
                  throw new IllegalArgumentException("Got unexpected type " + typeSignature.getClass().getName()
                          + " for ref type signature: " + typeDescriptorStr);
              }
          }
          return className;
      }