diff --git a/JsonGeneratorTests/JsonObjectBase.cpp b/JsonGeneratorTests/JsonObjectBase.cpp index 0aa044a6..ef72ef39 100644 --- a/JsonGeneratorTests/JsonObjectBase.cpp +++ b/JsonGeneratorTests/JsonObjectBase.cpp @@ -1 +1,29 @@ #include "JsonObjectBase.h" + +void JsonObjectBase::writeObjectTo(ObjectContainer& obj, StringBuilder& sb) +{ + switch (obj.type) + { + case JSON_STRING: + if (obj.value.string) + sb.append("\"%s\"", obj.value.string); + else + sb.append("null"); + break; + + case JSON_NUMBER: + sb.append("%lg", obj.value.number); + break; + + case JSON_BOOLEAN: + sb.append(obj.value.boolean ? "true" : "false"); + break; + + case JSON_OBJECT: + if (obj.value.object) + obj.value.object->writeTo(sb); + else + sb.append("null"); + break; + } +} \ No newline at end of file diff --git a/JsonGeneratorTests/JsonObjectBase.h b/JsonGeneratorTests/JsonObjectBase.h index e55627b8..e38c33ac 100644 --- a/JsonGeneratorTests/JsonObjectBase.h +++ b/JsonGeneratorTests/JsonObjectBase.h @@ -14,8 +14,6 @@ public: protected: - virtual void writeTo(StringBuilder& sb) = 0; - enum ObjectType { JSON_STRING, @@ -38,32 +36,8 @@ protected: ObjectValue value; }; - void writeObjectTo(ObjectContainer& obj, StringBuilder& sb) - { - switch (obj.type) - { - case JSON_STRING: - if (obj.value.string) - sb.append("\"%s\"", obj.value.string); - else - sb.append("null"); - break; + void writeObjectTo(ObjectContainer& obj, StringBuilder& sb); - case JSON_NUMBER: - sb.append("%lg", obj.value.number); - break; - - case JSON_BOOLEAN: - sb.append(obj.value.boolean ? "true" : "false"); - break; - - case JSON_OBJECT: - if (obj.value.object) - obj.value.object->writeTo(sb); - else - sb.append("null"); - break; - } - } + virtual void writeTo(StringBuilder& sb) = 0; };