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

Unified Diff: third_party/WebKit/Source/platform/JSONValues.h

Issue 1728873002: DevTools: simplify JSONValues API, prepare to the OwnPtr migration. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebaselines Created 4 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: third_party/WebKit/Source/platform/JSONValues.h
diff --git a/third_party/WebKit/Source/platform/JSONValues.h b/third_party/WebKit/Source/platform/JSONValues.h
index 4a06be7eae0b8a7c7f3cf16f5cc41a6f0a50a1ab..a6cf1ddbb9f80f60b2b70468c5d7e3e8511d22f7 100644
--- a/third_party/WebKit/Source/platform/JSONValues.h
+++ b/third_party/WebKit/Source/platform/JSONValues.h
@@ -56,7 +56,6 @@ class PLATFORM_EXPORT JSONValue : public RefCounted<JSONValue> {
public:
static const int maxDepth = 1000;
- JSONValue() : m_type(TypeNull) { }
virtual ~JSONValue() { }
static PassRefPtr<JSONValue> null()
@@ -84,10 +83,6 @@ public:
virtual bool asNumber(unsigned long* output) const;
virtual bool asNumber(unsigned* output) const;
virtual bool asString(String* output) const;
- virtual bool asObject(RefPtr<JSONObject>* output);
- virtual bool asArray(RefPtr<JSONArray>* output);
- virtual PassRefPtr<JSONObject> asObject();
- virtual PassRefPtr<JSONArray> asArray();
String toJSONString() const;
String toPrettyJSONString() const;
@@ -97,12 +92,13 @@ public:
static String quoteString(const String&);
protected:
+ JSONValue() : m_type(TypeNull) { }
explicit JSONValue(Type type) : m_type(type) { }
virtual void prettyWriteJSONInternal(StringBuilder* output, int depth) const;
private:
- friend class JSONObjectBase;
- friend class JSONArrayBase;
+ friend class JSONObject;
+ friend class JSONArray;
Type m_type;
};
@@ -168,7 +164,7 @@ private:
String m_stringValue;
};
-class PLATFORM_EXPORT JSONObjectBase : public JSONValue {
+class PLATFORM_EXPORT JSONObject : public JSONValue {
private:
typedef HashMap<String, RefPtr<JSONValue>> Dictionary;
@@ -176,18 +172,22 @@ public:
typedef Dictionary::iterator iterator;
typedef Dictionary::const_iterator const_iterator;
- PassRefPtr<JSONObject> asObject() override;
- JSONObject* openAccessors();
+ static PassRefPtr<JSONObject> create()
+ {
+ return adoptRef(new JSONObject());
+ }
+
+ static PassRefPtr<JSONObject> cast(PassRefPtr<JSONValue> value)
+ {
+ if (!value || value->type() != TypeObject)
+ return nullptr;
+ return adoptRef(static_cast<JSONObject*>(value.leakRef()));
+ }
void writeJSON(StringBuilder* output) const override;
int size() const { return m_data.size(); }
-protected:
- ~JSONObjectBase() override;
-
- bool asObject(RefPtr<JSONObject>* output) override;
-
void setBoolean(const String& name, bool);
void setNumber(const String& name, double);
void setString(const String& name, const String&);
@@ -214,71 +214,42 @@ protected:
void remove(const String& name);
- void prettyWriteJSONInternal(StringBuilder* output, int depth) const override;
-
iterator begin() { return m_data.begin(); }
iterator end() { return m_data.end(); }
const_iterator begin() const { return m_data.begin(); }
const_iterator end() const { return m_data.end(); }
+ ~JSONObject() override;
protected:
- JSONObjectBase();
+ void prettyWriteJSONInternal(StringBuilder* output, int depth) const override;
private:
+ JSONObject();
+
Dictionary m_data;
Vector<String> m_order;
};
-class PLATFORM_EXPORT JSONObject : public JSONObjectBase {
-public:
- static PassRefPtr<JSONObject> create()
- {
- return adoptRef(new JSONObject());
- }
-
- using JSONObjectBase::asObject;
-
- using JSONObjectBase::setBoolean;
- using JSONObjectBase::setNumber;
- using JSONObjectBase::setString;
- using JSONObjectBase::setValue;
- using JSONObjectBase::setObject;
- using JSONObjectBase::setArray;
-
- using JSONObjectBase::find;
- using JSONObjectBase::getBoolean;
- using JSONObjectBase::getNumber;
- using JSONObjectBase::getString;
- using JSONObjectBase::getObject;
- using JSONObjectBase::getArray;
- using JSONObjectBase::get;
-
- using JSONObjectBase::booleanProperty;
-
- using JSONObjectBase::remove;
-
- using JSONObjectBase::begin;
- using JSONObjectBase::end;
-
- using JSONObjectBase::size;
-};
-
-
-class PLATFORM_EXPORT JSONArrayBase : public JSONValue {
+class PLATFORM_EXPORT JSONArray : public JSONValue {
public:
typedef Vector<RefPtr<JSONValue>>::iterator iterator;
typedef Vector<RefPtr<JSONValue>>::const_iterator const_iterator;
- PassRefPtr<JSONArray> asArray() override;
-
- unsigned length() const { return m_data.size(); }
+ static PassRefPtr<JSONArray> create()
+ {
+ return adoptRef(new JSONArray());
+ }
- void writeJSON(StringBuilder* output) const override;
+ static PassRefPtr<JSONArray> cast(PassRefPtr<JSONValue> value)
+ {
+ if (!value || value->type() != TypeArray)
+ return nullptr;
+ return adoptRef(static_cast<JSONArray*>(value.leakRef()));
+ }
-protected:
- ~JSONArrayBase() override;
+ ~JSONArray() override;
- bool asArray(RefPtr<JSONArray>* output) override;
+ void writeJSON(StringBuilder* output) const override;
void pushBoolean(bool);
void pushInt(int);
@@ -289,8 +260,7 @@ protected:
void pushArray(PassRefPtr<JSONArray>);
PassRefPtr<JSONValue> get(size_t index);
-
- void prettyWriteJSONInternal(StringBuilder* output, int depth) const override;
+ unsigned length() const { return m_data.size(); }
iterator begin() { return m_data.begin(); }
iterator end() { return m_data.end(); }
@@ -298,35 +268,13 @@ protected:
const_iterator end() const { return m_data.end(); }
protected:
- JSONArrayBase();
+ void prettyWriteJSONInternal(StringBuilder* output, int depth) const override;
private:
+ JSONArray();
Vector<RefPtr<JSONValue>> m_data;
};
-class PLATFORM_EXPORT JSONArray : public JSONArrayBase {
-public:
- static PassRefPtr<JSONArray> create()
- {
- return adoptRef(new JSONArray());
- }
-
- using JSONArrayBase::asArray;
-
- using JSONArrayBase::pushBoolean;
- using JSONArrayBase::pushInt;
- using JSONArrayBase::pushNumber;
- using JSONArrayBase::pushString;
- using JSONArrayBase::pushValue;
- using JSONArrayBase::pushObject;
- using JSONArrayBase::pushArray;
-
- using JSONArrayBase::get;
-
- using JSONArrayBase::begin;
- using JSONArrayBase::end;
-};
-
PLATFORM_EXPORT void escapeStringForJSON(const String&, StringBuilder*);
void doubleQuoteStringForJSON(const String&, StringBuilder*);
« no previous file with comments | « third_party/WebKit/Source/platform/JSONParserTest.cpp ('k') | third_party/WebKit/Source/platform/JSONValues.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698