summaryrefslogtreecommitdiff
path: root/src/components/smart_objects/src/array_schema_item.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/smart_objects/src/array_schema_item.cc')
-rw-r--r--src/components/smart_objects/src/array_schema_item.cc21
1 files changed, 19 insertions, 2 deletions
diff --git a/src/components/smart_objects/src/array_schema_item.cc b/src/components/smart_objects/src/array_schema_item.cc
index 3c28396213..6f1e65d2eb 100644
--- a/src/components/smart_objects/src/array_schema_item.cc
+++ b/src/components/smart_objects/src/array_schema_item.cc
@@ -44,6 +44,14 @@ std::shared_ptr<CArraySchemaItem> CArraySchemaItem::create(
new CArraySchemaItem(ElementSchemaItem, MinSize, MaxSize));
}
+std::shared_ptr<CArraySchemaItem> CArraySchemaItem::create(
+ ISchemaItem* ElementSchemaItem,
+ const TSchemaItemParameter<size_t>& MinSize,
+ const TSchemaItemParameter<size_t>& MaxSize) {
+ return std::shared_ptr<CArraySchemaItem>(
+ new CArraySchemaItem(ElementSchemaItem, MinSize, MaxSize));
+}
+
errors::eType CArraySchemaItem::validate(
const SmartObject& Object,
rpc::ValidationReport* report,
@@ -146,7 +154,7 @@ void CArraySchemaItem::BuildObjectBySchema(const SmartObject& pattern_object,
if (SmartType_Array == pattern_object.getType()) {
const size_t array_len = pattern_object.length();
if (array_len > 0) {
- for (size_t i = 0u; i < array_len; i++) {
+ for (size_t i = 0u; i < array_len; ++i) {
mElementSchemaItem->BuildObjectBySchema(pattern_object.getElement(i),
result_object[i]);
}
@@ -161,10 +169,19 @@ TypeID CArraySchemaItem::GetType() {
return TYPE_ARRAY;
}
-CArraySchemaItem::CArraySchemaItem(const ISchemaItemPtr ElementSchemaItem,
+CArraySchemaItem::CArraySchemaItem(ISchemaItem* ElementSchemaItem,
const TSchemaItemParameter<size_t>& MinSize,
const TSchemaItemParameter<size_t>& MaxSize)
: mElementSchemaItem(ElementSchemaItem)
+ , mElementSchemaItemShared(nullptr)
+ , mMinSize(MinSize)
+ , mMaxSize(MaxSize) {}
+
+CArraySchemaItem::CArraySchemaItem(const ISchemaItemPtr ElementSchemaItem,
+ const TSchemaItemParameter<size_t>& MinSize,
+ const TSchemaItemParameter<size_t>& MaxSize)
+ : mElementSchemaItem(ElementSchemaItem.get())
+ , mElementSchemaItemShared(ElementSchemaItem)
, mMinSize(MinSize)
, mMaxSize(MaxSize) {}