package sk.stuba.fiit.perconik.elasticsearch; import javax.annotation.Nullable; import sk.stuba.fiit.perconik.eclipse.core.runtime.PluginConsole; import sk.stuba.fiit.perconik.elasticsearch.plugin.Activator; import sk.stuba.fiit.perconik.elasticsearch.preferences.ElasticsearchOptions; import sk.stuba.fiit.perconik.elasticsearch.preferences.ElasticsearchOptions.Schema; import sk.stuba.fiit.perconik.elasticsearch.ui.preferences.ElasticsearchMessageDialogs; import static java.lang.String.format; import static com.google.common.base.Preconditions.checkNotNull; import static com.google.common.base.Strings.isNullOrEmpty; final class ElasticsearchReporter { final ElasticsearchOptions options; final PluginConsole console; ElasticsearchReporter(final ElasticsearchOptions options) { this.options = checkNotNull(options); this.console = Activator.defaultInstance().getConsole(); } void logNotice(final String message) { if (!Schema.logNotices.getValue(this.options)) { return; } this.console.notice(format("ElasticsearchProxy: %s", message)); } void logError(final String message, @Nullable final Exception failure) { if (!Schema.logErrors.getValue(this.options)) { return; } this.console.error(failure, format("ElasticsearchProxy: %s", message)); } void displayError(final String message, @Nullable final Exception failure) { if (!Schema.displayErrors.getValue(this.options)) { return; } synchronized (ElasticsearchReporter.class) { ElasticsearchMessageDialogs.openError(Schema.displayErrors.getKey(), format("ElasticsearchProxy: %s", isNullOrEmpty(message) ? failure.getMessage() : message)); } } }