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

Unified Diff: plugins/org.chromium.sdk/src/org/chromium/sdk/internal/v8native/value/JsObjectBase.java

Issue 12300043: Move setValue operation into a separate JsDeclarativeVariable interface (Closed) Base URL: https://chromedevtools.googlecode.com/svn/trunk
Patch Set: fcr 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/src/org/chromium/sdk/internal/v8native/value/JsObjectBase.java
diff --git a/plugins/org.chromium.sdk/src/org/chromium/sdk/internal/v8native/value/JsObjectBase.java b/plugins/org.chromium.sdk/src/org/chromium/sdk/internal/v8native/value/JsObjectBase.java
index f315f5438610e38e34afc63a8ab1aaf150b8c94d..e45e5eb69867c36f1ed33d14cebde9a55160637c 100644
--- a/plugins/org.chromium.sdk/src/org/chromium/sdk/internal/v8native/value/JsObjectBase.java
+++ b/plugins/org.chromium.sdk/src/org/chromium/sdk/internal/v8native/value/JsObjectBase.java
@@ -8,7 +8,6 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
-import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.atomic.AtomicReference;
@@ -16,11 +15,7 @@ import java.util.concurrent.atomic.AtomicReference;
import org.chromium.sdk.JsFunction;
import org.chromium.sdk.JsObject;
import org.chromium.sdk.JsVariable;
-import org.chromium.sdk.RelayOk;
-import org.chromium.sdk.SyncCallback;
import org.chromium.sdk.internal.v8native.InternalContext;
-import org.chromium.sdk.internal.v8native.InternalContext.ContextDismissedCheckedException;
-import org.chromium.sdk.internal.v8native.JsEvaluateContextImpl;
import org.chromium.sdk.internal.v8native.protocol.output.EvaluateMessage;
import org.chromium.sdk.util.AsyncFuture;
import org.chromium.sdk.util.MethodIsBlockingException;
@@ -274,74 +269,30 @@ public abstract class JsObjectBase<D> extends JsValueBase implements JsObject {
private <V> List<V> createPropertiesFromMirror(List<ValueMirror> mirrorProperties,
List<? extends PropertyReference> propertyRefs, Long hostRef,
PropertyMirrorParser<V> parser) {
- JsVariableBase.Host host;
- if (hostRef == null) {
- host = null;
- } else {
- host = new VariableHost(getInternalContext(), hostRef);
- }
-
List<V> result = new ArrayList<V>(mirrorProperties.size());
for (int i = 0; i < mirrorProperties.size(); i++) {
ValueMirror mirror = mirrorProperties.get(i);
Object varName = propertyRefs.get(i).getName();
- result.add(parser.parse(host, valueLoader, mirror, varName));
+ result.add(parser.parse(valueLoader, mirror, varName));
}
return result;
}
- private static class VariableHost extends JsVariableBase.Host {
- private final long objectRef;
-
- protected VariableHost(InternalContext internalContext, long objectRef) {
- super(internalContext);
- this.objectRef = objectRef;
- }
-
- @Override boolean isMutable() {
- return true;
- }
-
- @Override
- RelayOk setValue(String variableName, JsValueBase jsValueBase,
- JsEvaluateContextImpl.CallbackInternal callback, SyncCallback syncCallback) {
- InternalContext intContext = getInternalContext();
- JsEvaluateContextImpl evaluateContext =
- intContext.getUserContext().getGlobalEvaluateContext();
-
- String expression = "object[name] = value";
- Map<String, EvaluateMessage.Value> additionalContext =
- new LinkedHashMap<String, EvaluateMessage.Value>();
- additionalContext.put("object", EvaluateMessage.Value.createForId(objectRef));
- additionalContext.put("name", EvaluateMessage.Value.createForValue(variableName));
- additionalContext.put("value", jsValueBase.getJsonParam(intContext));
-
- try {
- return evaluateContext.evaluateAsyncInternal(expression,
- new ArrayList<Map.Entry<String, EvaluateMessage.Value>>(
- additionalContext.entrySet()),
- callback, syncCallback);
- } catch (ContextDismissedCheckedException e) {
- return intContext.getDebugSession().maybeRethrowContextException(e, syncCallback);
- }
- }
- }
-
/**
* A helper class that helps parameterize some methods with either variable or property.
* Functionally it contains factory method, that creates either this or that.
* @param <V> variable or property type
*/
private static abstract class PropertyMirrorParser<V> {
- abstract V parse(JsVariableBase.Host host, ValueLoader valueLoader, ValueMirror valueData,
+ abstract V parse(ValueLoader valueLoader, ValueMirror valueData,
Object rawName);
static final PropertyMirrorParser<JsVariableBase.Impl> VARIABLE =
new PropertyMirrorParser<JsVariableBase.Impl>() {
@Override
- JsVariableBase.Impl parse(JsVariableBase.Host host, ValueLoader valueLoader,
+ JsVariableBase.Impl parse(ValueLoader valueLoader,
ValueMirror valueData, Object rawName) {
- return new JsVariableBase.Impl(host, valueLoader, valueData, rawName);
+ return new JsVariableBase.Impl(valueLoader, valueData, rawName);
}
};
@@ -350,9 +301,9 @@ public abstract class JsObjectBase<D> extends JsValueBase implements JsObject {
static final PropertyMirrorParser<JsVariableBase.Property> PROPERTY =
new PropertyMirrorParser<JsVariableBase.Property>() {
@Override
- JsVariableBase.Property parse(JsVariableBase.Host host, ValueLoader valueLoader,
+ JsVariableBase.Property parse(ValueLoader valueLoader,
ValueMirror valueData, Object rawName) {
- return new JsVariableBase.Property(host, valueLoader, valueData, rawName);
+ return new JsVariableBase.Property(valueLoader, valueData, rawName);
}
};
}

Powered by Google App Engine
This is Rietveld 408576698