libweave: Cleanup creation of PropValues
Hide some constructors and test only methods.
BUG=brillo:1246
TEST='FEATURES=test emerge-gizmo buffet'
Change-Id: I1343809f94999795f8f162e3464ac22413b0dbd5
Reviewed-on: https://chromium-review.googlesource.com/289645
Reviewed-by: Vitaly Buka <vitalybuka@chromium.org>
Commit-Queue: Vitaly Buka <vitalybuka@chromium.org>
Tested-by: Vitaly Buka <vitalybuka@chromium.org>
diff --git a/libweave/src/commands/schema_utils.cc b/libweave/src/commands/schema_utils.cc
index 034eca9..e2c8293 100644
--- a/libweave/src/commands/schema_utils.cc
+++ b/libweave/src/commands/schema_utils.cc
@@ -143,11 +143,11 @@
for (const auto& pair : object_schema->GetProps()) {
const PropValue* def_value = pair.second->GetDefaultValue();
if (dict->HasKey(pair.first)) {
- auto value = pair.second->CreateValue();
const base::Value* param_value = nullptr;
CHECK(dict->GetWithoutPathExpansion(pair.first, ¶m_value))
<< "Unable to get parameter";
- if (!value->FromJson(param_value, error)) {
+ auto value = pair.second->CreatePropValue(*param_value, error);
+ if (!value) {
chromeos::Error::AddToPrintf(
error, FROM_HERE, errors::commands::kDomain,
errors::commands::kInvalidPropValue,
@@ -213,10 +213,10 @@
value_out->clear();
value_out->reserve(list->GetSize());
for (const base::Value* item : *list) {
- std::unique_ptr<PropValue> prop_value = item_type->CreateValue();
- if (!prop_value->FromJson(item, error)) {
+ std::unique_ptr<PropValue> prop_value =
+ item_type->CreatePropValue(*item, error);
+ if (!prop_value)
return false;
- }
value_out->push_back(std::move(prop_value));
}
return true;