void (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) {} }); }