Index: templates/TypeBuilder_h.template |
diff --git a/templates/TypeBuilder_h.template b/templates/TypeBuilder_h.template |
index 2edf737ee7ae2d18b642c1e482a3242867fd543b..000b2f5f56435e10ced35154b9b0606030ee316d 100644 |
--- a/templates/TypeBuilder_h.template |
+++ b/templates/TypeBuilder_h.template |
@@ -71,12 +71,12 @@ namespace {{param.name | to_title_case}}Enum { |
{% set type_def = type_definition(domain.domain + "." + type.id)%} |
// {{type.description}} |
-class {{config.protocol.export_macro}} {{type.id}} {% if type.exported %}: public API::{{type.id}} {% endif %}{ |
+class {{config.protocol.export_macro}} {{type.id}} : public Serializable{% if type.exported %}, public API::{{type.id}}{% endif %}{ |
PROTOCOL_DISALLOW_COPY({{type.id}}); |
public: |
- static std::unique_ptr<{{type.id}}> parse(protocol::Value* value, ErrorSupport* errors); |
+ static std::unique_ptr<{{type.id}}> fromValue(protocol::Value* value, ErrorSupport* errors); |
- ~{{type.id}}() { } |
+ ~{{type.id}}() override { } |
{% for property in type.properties %} |
{% if "enum" in property %} |
@@ -96,7 +96,8 @@ public: |
void {{"set" | to_method_case}}{{property.name | to_title_case}}({{resolve_type(property).pass_type}} value) { m_{{property.name}} = {{resolve_type(property).to_rvalue % "value"}}; } |
{% endfor %} |
- std::unique_ptr<protocol::DictionaryValue> serialize() const; |
+ std::unique_ptr<protocol::DictionaryValue> toValue() const; |
+ String serialize() override { return toValue()->serialize(); } |
std::unique_ptr<{{type.id}}> clone() const; |
{% if type.exported %} |
{{config.exported.string_out}} toJSONString() const override; |