@Override
  public void getLanguagesToInject(@NotNull final MultiHostRegistrar registrar, final PsiElement @NotNull ... operands) {
    if (operands.length == 0) return;

    final PsiFile file = operands[0].getContainingFile();

    if (!(file instanceof GroovyFileBase)) return;

    LanguageInjectionSupport support = InjectorUtils.findNotNullInjectionSupport(GroovyLanguageInjectionSupport.GROOVY_SUPPORT_ID);
    Project project = file.getProject();
    new InjectionProcessor(Configuration.getProjectInstance(project), support, operands) {
      @Override
      protected void processInjection(Language language,
                                      List<InjectionInfo> list,
                                      boolean settingsAvailable,
                                      boolean unparsable) {
        InjectorUtils.registerInjection(language, file, list, registrar);
        InjectorUtils.registerSupport(support, settingsAvailable, list.get(0).host(), language);
        InjectorUtils.putInjectedFileUserData(list.get(0).host(), language, InjectedLanguageUtil.FRANKENSTEIN_INJECTION, unparsable);
      }

      @Override
      protected boolean areThereInjectionsWithName(String methodName, boolean annoOnly) {
        if (methodName == null) return false;
        if (getAnnotatedElementsValue(project).contains(methodName)) {
          return true;
        }
        if (!annoOnly && getXmlAnnotatedElementsValue(project).contains(methodName)) {
          return true;
        }
        return false;
      }

    }.processInjections();
  }
@Override
  public void getLanguagesToInject(@NotNull final MultiHostRegistrar registrar, final PsiElement @NotNull ... operands)