class AbstractEditor implements Editor {

    @Override
    public boolean equals(Object o) {
        if(this == o) {
            return true;
        }
        if(o == null || getClass() != o.getClass()) {
            return false;
        }
        AbstractEditor that = (AbstractEditor) o;
        if(!Objects.equals(application, that.application)) {
            return false;
        }
        if(!Objects.equals(local, that.local)) {
            return false;
        }
        return true;
    }

    public  AbstractEditor(final Application application,
                          final SessionPool session,
                          final Path file,
                          final ProgressListener listener);
    public  AbstractEditor(final Application application,
                          final SessionPool session,
                          final Path file,
                          final ApplicationLauncher launcher,
                          final ApplicationFinder finder,
                          final ProgressListener listener);

}