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

Unified Diff: plugins/org.chromium.sdk.wipbackend.dev/src/org/chromium/sdk/internal/wip/WipValueBuilder.java

Issue 12300043: Move setValue operation into a separate JsDeclarativeVariable interface (Closed) Base URL: https://chromedevtools.googlecode.com/svn/trunk
Patch Set: clean Created 7 years, 10 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.sdk.wipbackend.dev/src/org/chromium/sdk/internal/wip/WipValueBuilder.java
diff --git a/plugins/org.chromium.sdk.wipbackend.dev/src/org/chromium/sdk/internal/wip/WipValueBuilder.java b/plugins/org.chromium.sdk.wipbackend.dev/src/org/chromium/sdk/internal/wip/WipValueBuilder.java
index dfefc8b18031b133c708b70c0f60b90835ded577..391be0444d665b42d07e9a2d9c664bb4306534bd 100644
--- a/plugins/org.chromium.sdk.wipbackend.dev/src/org/chromium/sdk/internal/wip/WipValueBuilder.java
+++ b/plugins/org.chromium.sdk.wipbackend.dev/src/org/chromium/sdk/internal/wip/WipValueBuilder.java
@@ -19,6 +19,7 @@ import java.util.logging.Logger;
import org.chromium.sdk.FunctionScopeExtension;
import org.chromium.sdk.JsArray;
+import org.chromium.sdk.JsDeclarativeVariable;
import org.chromium.sdk.JsEvaluateContext.EvaluateCallback;
import org.chromium.sdk.JsFunction;
import org.chromium.sdk.JsObject;
@@ -103,10 +104,6 @@ class WipValueBuilder {
final JsValue setter = wrap(propertyDescriptor.set());
return new ObjectPropertyBase(jsValue, name) {
-
- @Override public boolean isMutable() {
- return false;
- }
@Override public boolean isWritable() {
return propertyDescriptor.writable();
}
@@ -133,12 +130,6 @@ class WipValueBuilder {
}
@Override
- public RelayOk setValue(JsValue newValue, SetValueCallback callback,
- SyncCallback syncCallback) throws UnsupportedOperationException {
- throw new UnsupportedOperationException();
- }
-
- @Override
public RelayOk evaluateGet(EvaluateCallback callback, SyncCallback syncCallback) {
WipContextBuilder.GlobalEvaluateContext evaluateContext =
new WipContextBuilder.GlobalEvaluateContext(valueLoader);
@@ -162,38 +153,36 @@ class WipValueBuilder {
};
}
- public JsVariable createVariable(RemoteObjectValue valueData, String name,
- final WipContextBuilder.ScopeParams scopeParams) {
+ public JsVariable createVariable(RemoteObjectValue valueData, String name) {
JsValue jsValue = wrap(valueData);
apavlov 2013/02/20 09:02:02 is it necessary?
Peter Rybin 2013/02/21 19:08:48 Done.
+ return new VariableImpl(name, jsValue);
+ }
- VariableValueChanger valueChanger;
- if (scopeParams == null) {
- valueChanger = null;
- } else {
- valueChanger = new VariableValueChanger() {
- @Override
- RelayOk setValue(String variableName, JsValue newValue,
- final GenericCallback<JsValue> callback, SyncCallback syncCallback)
- throws UnsupportedOperationException {
- final JsValueBase jsValueBase = JsValueBase.cast(newValue);
- SetVariableValueParams params = new SetVariableValueParams(scopeParams.getScopeNumber(),
- variableName, jsValueBase.createCallArgumentParam(), scopeParams.getCallFrameId(),
- scopeParams.getFunctionId());
- WipCommandCallback rawCallback = new WipCommandCallback.Default() {
- @Override protected void onSuccess(Success success) {
- callback.success(jsValueBase);
- }
- @Override protected void onError(String message) {
- callback.failure(new Exception(message));
- }
- };
- return valueLoader.getTabImpl().getCommandProcessor().send(params,
- rawCallback, syncCallback);
- }
- };
- }
-
- return new VariableImpl(name, jsValue, valueChanger);
+ public JsDeclarativeVariable createDeclarativeVariable(RemoteObjectValue valueData, String name,
+ final WipContextBuilder.ScopeParams scopeParams) {
+ JsValue jsValue = wrap(valueData);
+ VariableValueChanger valueChanger = new VariableValueChanger() {
+ @Override
+ RelayOk setValue(String variableName, JsValue newValue,
+ final GenericCallback<JsValue> callback, SyncCallback syncCallback)
+ throws UnsupportedOperationException {
+ final JsValueBase jsValueBase = JsValueBase.cast(newValue);
+ SetVariableValueParams params = new SetVariableValueParams(scopeParams.getScopeNumber(),
+ variableName, jsValueBase.createCallArgumentParam(), scopeParams.getCallFrameId(),
+ scopeParams.getFunctionId());
+ WipCommandCallback rawCallback = new WipCommandCallback.Default() {
+ @Override protected void onSuccess(Success success) {
+ callback.success(jsValueBase);
+ }
+ @Override protected void onError(String message) {
+ callback.failure(new Exception(message));
+ }
+ };
+ return valueLoader.getTabImpl().getCommandProcessor().send(params,
+ rawCallback, syncCallback);
+ }
+ };
+ return new DeclarativeVariable(name, jsValue, valueChanger);
}
public JsValue wrap(RemoteObjectValue valueData) {
@@ -647,22 +636,35 @@ class WipValueBuilder {
this.name = name;
}
- @Override
- public boolean isReadable() {
- return true;
- }
-
- @Override
- public String getName() {
+ @Override public String getName() {
return name;
}
}
private static class VariableImpl extends VariableBase {
+ private final JsValue jsValue;
+
+ VariableImpl(String name, JsValue jsValue) {
+ super(name);
+ this.jsValue = jsValue;
+ }
+
+ @Override public JsObjectProperty asObjectProperty() {
+ return null;
+ }
+ @Override public JsDeclarativeVariable asDeclarativeVariable() {
+ return null;
+ }
+ @Override public JsValue getValue() {
+ return jsValue;
+ }
+ }
+
+ private static class DeclarativeVariable extends VariableBase implements JsDeclarativeVariable {
private final VariableValueChanger valueChanger;
private volatile JsValue jsValue;
- VariableImpl(String name, JsValue jsValue, VariableValueChanger valueChanger) {
+ DeclarativeVariable(String name, JsValue jsValue, VariableValueChanger valueChanger) {
super(name);
this.jsValue = jsValue;
this.valueChanger = valueChanger;
@@ -671,6 +673,9 @@ class WipValueBuilder {
@Override public JsObjectProperty asObjectProperty() {
return null;
}
+ @Override public JsDeclarativeVariable asDeclarativeVariable() {
+ return this;
+ }
@Override public boolean isMutable() {
return valueChanger != null;
}
@@ -687,7 +692,7 @@ class WipValueBuilder {
GenericCallback<JsValue> rawCallback = new GenericCallback<JsValue>() {
@Override
public void success(JsValue value) {
- VariableImpl.this.jsValue = value;
+ DeclarativeVariable.this.jsValue = value;
if (callback != null) {
callback.success();
}
@@ -725,6 +730,9 @@ class WipValueBuilder {
@Override public JsObjectProperty asObjectProperty() {
return this;
}
+ @Override public JsDeclarativeVariable asDeclarativeVariable() {
+ return null;
+ }
}
private static class ObjectType extends ValueType {

Powered by Google App Engine
This is Rietveld 408576698