CustomMembersHolder (GroovyClassDescriptor descriptor, ProcessingContext ctx) { if (!DefaultGroovyMethods.asBoolean(getEnhancers())) return CustomMembersHolder.EMPTY; List<CustomMembersHolder> holders = new ArrayList<>(); for (Pair<ContextFilter, Closure> pair : getEnhancers()) { ProgressManager.checkCanceled(); ctx.put(DslPointcut.BOUND, null); if (pair.getFirst().isApplicable(descriptor, ctx)) { CustomMembersGenerator generator = new CustomMembersGenerator(descriptor, ctx.get(DslPointcut.BOUND)); doRun(generator, pair.getSecond()); List<CustomMembersHolder> membersHolder = generator.getMembersHolder(); if (membersHolder != null) { holders.addAll(membersHolder); } } } return CustomMembersHolder.create(holders); }