void updateTemplates(@NotNull Collection<? extends FileTemplate> newTemplates) {
    final Set<String> toDisable = new HashSet<>();
    for (DefaultTemplate template : defaultTemplates) {
      toDisable.add(template.getQualifiedName());
    }
    for (FileTemplate template : newTemplates) {
      toDisable.remove(((FileTemplateBase)template).getQualifiedName());
    }
    restoreDefaults(toDisable);
    MultiMap<String, FileTemplate> children = new MultiMap<>();
    for (FileTemplate template : newTemplates) {
      FileTemplateBase _template = addTemplate(template.getName(), template.getExtension());
      _template.setText(template.getText());
      _template.setFileName(template.getFileName());
      _template.setReformatCode(template.isReformatCode());
      _template.setLiveTemplateEnabled(template.isLiveTemplateEnabled());
      if (FileTemplateBase.isChild(_template)) {
        children.putValue(getParentName(_template), _template);
      }
    }
    for (String parentName : children.keySet()) {
      FileTemplateBase template = getTemplate(parentName);
      if (template != null) {
        template.setChildren(children.get(parentName).toArray(FileTemplate.EMPTY_ARRAY));
      }
    }
    saveTemplates(true);
  }
void updateTemplates(@NotNull Collection<? extends FileTemplate> newTemplates)