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

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

Issue 11659026: Fix JsObject#getProperties method so that it returns collection of JsObjectProperty (Closed) Base URL: https://chromedevtools.googlecode.com/svn/trunk
Patch Set: fcr Created 8 years 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
« no previous file with comments | « plugins/org.chromium.sdk/src/org/chromium/sdk/internal/v8native/value/JsScopeImpl.java ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: plugins/org.chromium.sdk/src/org/chromium/sdk/internal/v8native/value/JsVariableImpl.java
diff --git a/plugins/org.chromium.sdk/src/org/chromium/sdk/internal/v8native/value/JsVariableImpl.java b/plugins/org.chromium.sdk/src/org/chromium/sdk/internal/v8native/value/JsVariableImpl.java
index 6d636c814f1d8bdeeb38f54930d061ac2736292a..3b0af565114c88ed3ae984cc9467c11814bc3745 100644
--- a/plugins/org.chromium.sdk/src/org/chromium/sdk/internal/v8native/value/JsVariableImpl.java
+++ b/plugins/org.chromium.sdk/src/org/chromium/sdk/internal/v8native/value/JsVariableImpl.java
@@ -5,14 +5,20 @@
package org.chromium.sdk.internal.v8native.value;
+import org.chromium.sdk.JsEvaluateContext.EvaluateCallback;
+import org.chromium.sdk.JsFunction;
+import org.chromium.sdk.JsValue;
import org.chromium.sdk.JsValue.Type;
import org.chromium.sdk.JsObjectProperty;
import org.chromium.sdk.JsVariable;
+import org.chromium.sdk.RelayOk;
+import org.chromium.sdk.SyncCallback;
/**
* A generic implementation of the JsVariable interface.
+ * TODO(TBR-robot): rename into JsVariableBase
*/
-public class JsVariableImpl implements JsVariable {
+public abstract class JsVariableImpl implements JsVariable {
/** The lazily constructed value of this variable. */
private final JsValueBase value;
@@ -88,11 +94,6 @@ public class JsVariableImpl implements JsVariable {
}
@Override
- public JsObjectProperty asObjectProperty() {
- return null;
- }
-
- @Override
public String toString() {
return new StringBuilder()
.append("[JsVariable: name=")
@@ -102,4 +103,51 @@ public class JsVariableImpl implements JsVariable {
.append(']')
.toString();
}
+
+ /**
+ * A non-abstract class that implements JsVariable.
+ */
+ public static class Impl extends JsVariableImpl {
+ public Impl(ValueLoader valueLoader, ValueMirror valueData, Object rawName) {
+ super(valueLoader, valueData, rawName);
+ }
+
+ @Override public JsObjectProperty asObjectProperty() {
+ return null;
+ }
+ }
+
+ /**
+ * An extension to {@JsVariableImpl} that additional provides {@link JsObjectProperty} interface.
+ * TODO: properly support getters, setters etc. once supported by protocol.
+ */
+ static class Property extends JsVariableImpl implements JsObjectProperty {
+ public Property(ValueLoader valueLoader, ValueMirror valueData, Object rawName) {
+ super(valueLoader, valueData, rawName);
+ }
+ @Override public JsObjectProperty asObjectProperty() {
+ return this;
+ }
+ @Override public boolean isWritable() {
+ return true;
+ }
+ @Override public JsValue getGetter() {
+ return null;
+ }
+ @Override public JsFunction getGetterAsFunction() {
+ return null;
+ }
+ @Override public JsValue getSetter() {
+ return null;
+ }
+ @Override public boolean isConfigurable() {
+ return true;
+ }
+ @Override public boolean isEnumerable() {
+ return true;
+ }
+ @Override public RelayOk evaluateGet(EvaluateCallback callback, SyncCallback syncCallback) {
+ throw new RuntimeException();
+ }
+ }
}
« no previous file with comments | « plugins/org.chromium.sdk/src/org/chromium/sdk/internal/v8native/value/JsScopeImpl.java ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698