class BaseEditor {

    boolean isMetadataDirty() {

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

        if (optionalMetadata.isPresent()) {
            return isMetadataDirty(optionalMetadata.get());
        } else {
            return false;
        }
    }

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

}