private static void processCategoryMethods(final String className, final GdslMembersHolderConsumer consumer, final boolean isStatic) {
    final GlobalSearchScope scope = consumer.getResolveScope();
    final PsiClass categoryClass = JavaPsiFacade.getInstance(consumer.getProject()).findClass(className, scope);
    if (categoryClass == null) {
      return;
    }

    NotNullLazyValue<GdkMethodHolder> methodsMap = NotNullLazyValue.volatileLazy(() -> {
      return GdkMethodHolder.getHolderForClass(categoryClass, isStatic);
    });

    consumer.addMemberHolder(new CustomMembersHolder() {
      @Override
      public boolean processMembers(GroovyClassDescriptor descriptor, PsiScopeProcessor processor, ResolveState state) {
        return !ResolveUtil.shouldProcessMethods(processor.getHint(ElementClassHint.KEY)) ||
               methodsMap.getValue().processMethods(processor, state, descriptor.getPsiType(), descriptor.getProject());
      }

      @Override
      public void consumeClosureDescriptors(GroovyClassDescriptor descriptor, Consumer<? super ClosureDescriptor> consumer) {}
    });
  }
private static void processCategoryMethods(final String className, final GdslMembersHolderConsumer consumer, final boolean isStatic)