@Override
  public final @NotNull List<Pair<Element, String>> splitState(@NotNull Element state) {
    UniqueNameGenerator generator = new UniqueNameGenerator();
    List<Pair<Element, String>> result = new SmartList<>();
    for (Iterator<Element> iterator = state.getChildren(getSubStateTagName()).iterator(); iterator.hasNext(); ) {
      Element element = iterator.next();
      iterator.remove();
      result.add(createItem(getSubStateFileName(element), generator, element));
    }
    if (!JDOMUtil.isEmpty(state)) {
      result.add(createItem(getComponentStateFileName(), generator, state));
    }
    return result;
  }
@Override
  public final @NotNull List<Pair<Element, String>> splitState(@NotNull Element state)