class BaseEditor {

    protected ParameterizedCommand<Path> onSuccess() {

        return (path) -> {

            final T content = getContentSupplier().get();
            final M metadata = getMetadataSupplier().get();

            setOriginalHash(content.hashCode());

            Optional<M> optionalMetadata = Optional.ofNullable(getMetadataSupplier().get());

            if (optionalMetadata.isPresent()) {
                setMetadataOriginalHash(metadata.hashCode());
            }
        };
    }

      BaseEditor(VersionRecordManager versionRecordManager,
               BaseEditorView baseView,
               BasicFileMenuBuilder menuBuilder,
               Event<ChangeTitleWidgetEvent> changeTitleNotification);
    protected  BaseEditor();
    protected  BaseEditor(final BaseEditorView baseView);

}