void resolveParent(@NotNull Function<? super String, ? extends EditorColorsScheme> nameResolver) {
    if (parentScheme instanceof TemporaryParent) {
      String parentName = ((TemporaryParent)parentScheme).getParentName();
      EditorColorsScheme newParent = nameResolver.apply(parentName);
      if (newParent == null || !newParent.isReadOnly()) {
        throw new InvalidDataException(parentName);
      }
      parentScheme = newParent;
    }
    else {
      String originalSchemeName = getMetaProperties().getProperty(META_INFO_ORIGINAL);
      String isPartial = getMetaProperties().getProperty(META_INFO_PARTIAL);
      if (originalSchemeName != null && isPartial != null && Boolean.parseBoolean(isPartial)) {
        EditorColorsScheme original = nameResolver.apply(originalSchemeName);
        if (original == null) {
          throw new InvalidDataException(originalSchemeName);
        }
      }
    }
  }
void resolveParent(@NotNull Function<? super String, ? extends EditorColorsScheme> nameResolver)