BinaryContent (CompileContext context, CompiledClass compiled, ClassReader reader, ClassWriter writer, InstrumentationClassFinder finder) { JpsGlobal project = context.getProjectDescriptor().getModel().getGlobal(); JpsIntelliLangConfiguration config = JpsIntelliLangExtensionService.getInstance().getConfiguration(project); try { boolean instrumented = processClassFile(reader, writer, finder, config.getPatternAnnotationClass(), config.getInstrumentationType()); if (instrumented) { return new BinaryContent(writer.toByteArray()); } } catch (InstrumentationException e) { context.processMessage(new CompilerMessage(getPresentableName(), BuildMessage.Kind.ERROR, e.getMessage())); } return null; }