package com.laboki.eclipse.plugin.smartsave.main;
import org.eclipse.ui.IEditorPart;
import com.google.common.base.Optional;
import com.laboki.eclipse.plugin.smartsave.contexts.EditorContext;
import com.laboki.eclipse.plugin.smartsave.instance.EventBusInstance;
import com.laboki.eclipse.plugin.smartsave.instance.Instance;
public final class FinalSaver extends EventBusInstance {
private final Optional<IEditorPart> editor = EditorContext.getEditor();
@Override
public Instance
stop() {
if (this.editor.isPresent()) this.forceSave();
return super.stop();
}
private void
forceSave() {
if (this.canSave()) this.save();
}
private boolean
canSave() {
return EditorContext.canSaveAutomatically(this.editor);
}
private void
save() {
new ForceSaver(this.editor.get()).save();
}
}