Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(113)

Unified Diff: plugins/org.chromium.debug.ui/src/org/chromium/debug/ui/liveedit/PreviewLoader.java

Issue 12035015: Disaply compile error position in diff viewer (Closed) Base URL: https://chromedevtools.googlecode.com/svn/trunk
Patch Set: fcr Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: plugins/org.chromium.debug.ui/src/org/chromium/debug/ui/liveedit/PreviewLoader.java
diff --git a/plugins/org.chromium.debug.ui/src/org/chromium/debug/ui/liveedit/PreviewLoader.java b/plugins/org.chromium.debug.ui/src/org/chromium/debug/ui/liveedit/PreviewLoader.java
index 6775a11ce94a7e2e4dcb951597356f28e8aa7e03..f4413880de68366f3ff17b826873da6670db7e7b 100644
--- a/plugins/org.chromium.debug.ui/src/org/chromium/debug/ui/liveedit/PreviewLoader.java
+++ b/plugins/org.chromium.debug.ui/src/org/chromium/debug/ui/liveedit/PreviewLoader.java
@@ -16,7 +16,7 @@ import org.chromium.debug.ui.DialogUtils.Updater;
import org.chromium.debug.ui.DialogUtils.ValueConsumer;
import org.chromium.debug.ui.DialogUtils.ValueSource;
import org.chromium.sdk.UpdatableScript;
-import org.chromium.sdk.UpdatableScript.ChangeDescription;
+import org.chromium.sdk.UpdatableScript.CompileErrorFailure;
import org.eclipse.osgi.util.NLS;
/**
@@ -35,7 +35,8 @@ class PreviewLoader implements ValueSource<Optional<PreviewLoader.Data>> {
private boolean active = false;
private final Monitor dataMonitor = new Monitor();
- PreviewLoader(Updater updater, ValueSource<PushChangesPlan> inputParameterSource) {
+ PreviewLoader(Updater updater,
+ ValueSource<PushChangesPlan> inputParameterSource) {
this.updater = updater;
this.inputParameterSource = inputParameterSource;
}
@@ -64,11 +65,31 @@ class PreviewLoader implements ValueSource<Optional<PreviewLoader.Data>> {
updater.reportChanged(this);
UpdatableScript.UpdateCallback callback = new UpdatableScript.UpdateCallback() {
- public void failure(String message, UpdatableScript.Failure failure) {
- Optional<Data> error = createErrorOptional(
- new Message(NLS.bind(Messages.PreviewLoader_FAILED_TO_GET, message),
- MessagePriority.WARNING));
- done(error);
+ public void failure(final String message, UpdatableScript.Failure failure) {
+ Optional<Data> result = failure.accept(
+ new UpdatableScript.Failure.Visitor<Optional<Data>>() {
+ @Override
+ public Optional<Data> visitUnspecified() {
+ return createErrorOptional(
+ new Message(NLS.bind(Messages.PreviewLoader_FAILED_TO_GET, message),
+ MessagePriority.WARNING));
+ }
+
+ @Override
+ public Optional<Data> visitCompileError(final CompileErrorFailure compileError) {
+ Data data = new Data() {
+ @Override
+ public <R> R accept(Visitor<R> visitor) {
+ return visitor.visitCompileError(compileError);
+ }
+ @Override public PushChangesPlan getChangesPlan() {
+ return plan;
+ }
+ };
+ return createOptional(data);
+ }
+ });
+ done(result);
}
public void success(Object report,
final UpdatableScript.ChangeDescription changeDescription) {
@@ -80,8 +101,8 @@ class PreviewLoader implements ValueSource<Optional<PreviewLoader.Data>> {
@Override public PushChangesPlan getChangesPlan() {
return plan;
}
- @Override public ChangeDescription getChangeDescription() {
- return changeDescription;
+ @Override public <R> R accept(Visitor<R> visitor) {
+ return visitor.visitSuccess(changeDescription);
}
};
result = createOptional(data);
@@ -101,7 +122,13 @@ class PreviewLoader implements ValueSource<Optional<PreviewLoader.Data>> {
}
public interface Data {
- UpdatableScript.ChangeDescription getChangeDescription();
+ interface Visitor<R> {
+ R visitSuccess(UpdatableScript.ChangeDescription changeDescription);
+ R visitCompileError(UpdatableScript.CompileErrorFailure compileError);
+ }
+
+ <R> R accept(Visitor<R> visitor);
+
PushChangesPlan getChangesPlan();
}

Powered by Google App Engine
This is Rietveld 408576698