@Override
  public void loadState(@NotNull Element element) {
    final PatternCompiler<PsiElement> helper = getCompiler();
    @NlsSafe String displayName = element.getChildTextTrim("display-name");
    myDisplayName = StringUtil.notNullize(displayName);
    myInjectedLanguageId = StringUtil.notNullize(element.getAttributeValue("language"));
    myPrefix = StringUtil.notNullize(getValueOrContent(element, "prefix"));
    mySuffix = StringUtil.notNullize(getValueOrContent(element, "suffix"));
    setValuePattern(getValueOrContent(element, "value-pattern"));
    setIgnorePattern(getValueOrContent(element, "ignore-pattern"));
    Element singleFileElement = element.getChild("single-file");
    mySingleFile = singleFileElement == null || Boolean.parseBoolean(singleFileElement.getAttributeValue("value", "true"));
    readExternalImpl(element);
    final List<Element> placeElements = element.getChildren("place");
    myPlaces = InjectionPlace.ARRAY_FACTORY.create(placeElements.size());
    for (int i = 0, placeElementsSize = placeElements.size(); i < placeElementsSize; i++) {
      Element placeElement = placeElements.get(i);
      final boolean enabled = !Boolean.parseBoolean(placeElement.getAttributeValue("disabled"));
      final String text = placeElement.getText();
      myPlaces[i] = new InjectionPlace(helper.createElementPattern(text, getDisplayName()), enabled);
    }
    if (myPlaces.length == 0) {
      generatePlaces();
    }
  }
@Override
  public void loadState(@NotNull Element element)