diff --git a/source/ArmarXGui/gui-plugins/StatechartEditorPlugin/structuraljson/JsonValue.cpp b/source/ArmarXGui/gui-plugins/StatechartEditorPlugin/structuraljson/JsonValue.cpp index bb9b0ea163561b2fd7fc3af9cc2d3c1106682134..fa68bffaeb2a6c42a2370757f7288f621af6ae77 100644 --- a/source/ArmarXGui/gui-plugins/StatechartEditorPlugin/structuraljson/JsonValue.cpp +++ b/source/ArmarXGui/gui-plugins/StatechartEditorPlugin/structuraljson/JsonValue.cpp @@ -35,6 +35,10 @@ JsonValue::JsonValue(int value) : type(eNumber), value(ToString(value)) { } +JsonValue::JsonValue(long value) + : type(eNumber), value(ToString(value)) +{ } + JsonValue::JsonValue(float value) : type(eNumber), value(ToString(value)) { } @@ -59,6 +63,36 @@ JsonValuePtr JsonValue::False() return value; } +JsonValuePtr JsonValue::Create(const std::string& value) +{ + JsonValuePtr jsonValue(new JsonValue(value)); + return jsonValue; +} + +JsonValuePtr JsonValue::Create(int value) +{ + JsonValuePtr jsonValue(new JsonValue(value)); + return jsonValue; +} + +JsonValuePtr JsonValue::Create(long value) +{ + JsonValuePtr jsonValue(new JsonValue(value)); + return jsonValue; +} + +JsonValuePtr JsonValue::Create(float value) +{ + JsonValuePtr jsonValue(new JsonValue(value)); + return jsonValue; +} + +JsonValuePtr JsonValue::Create(double value) +{ + JsonValuePtr jsonValue(new JsonValue(value)); + return jsonValue; +} + JsonValuePtr JsonValue::CreateRaw(JsonValue::Type type, const std::string& value) { if (!CheckValue(type, value)) @@ -142,6 +176,14 @@ std::string JsonValue::ToString(int value) return oss.str(); } +std::string JsonValue::ToString(long value) +{ + std::ostringstream oss; + oss.imbue(std::locale::classic()); + oss << value; + return oss.str(); +} + std::string JsonValue::ToString(float value) { std::ostringstream oss; diff --git a/source/ArmarXGui/gui-plugins/StatechartEditorPlugin/structuraljson/JsonValue.h b/source/ArmarXGui/gui-plugins/StatechartEditorPlugin/structuraljson/JsonValue.h index fd6f5bb3aa4024b52788aaf22351c54671336217..6e0d5bf00c339d37fa0a34092484ee2a5d78cd97 100644 --- a/source/ArmarXGui/gui-plugins/StatechartEditorPlugin/structuraljson/JsonValue.h +++ b/source/ArmarXGui/gui-plugins/StatechartEditorPlugin/structuraljson/JsonValue.h @@ -40,12 +40,18 @@ namespace armarx JsonValue(const std::string& value); JsonValue(int value); + JsonValue(long value); JsonValue(float value); JsonValue(double value); static JsonValuePtr Null(); static JsonValuePtr True(); static JsonValuePtr False(); + static JsonValuePtr Create(const std::string& value); + static JsonValuePtr Create(int value); + static JsonValuePtr Create(long value); + static JsonValuePtr Create(float value); + static JsonValuePtr Create(double value); static JsonValuePtr CreateRaw(Type type, const std::string& value); static bool CheckValue(Type type, const std::string& value); @@ -55,11 +61,13 @@ namespace armarx static bool CheckBool(const std::string& value); static bool CheckNull(const std::string& value); + void writeJson(const JsonWriterPtr& writer); JsonValuePtr toSharedPtr() const; static std::string ToString(int value); + static std::string ToString(long value); static std::string ToString(float value); static std::string ToString(double value);