+ SmartObject def_value;
+ const std::set<std::string> objectKeys = Object.enumerate();
+ for (std::map<std::string, CObjectSchemaItem::SMember>::const_iterator i =
+ mMembers.begin(); i != mMembers.end(); ++i) {
+ if ((objectKeys.end() == objectKeys.find(i->first)) &&
+ (true == i->second.mSchemaItem->hasDefaultValue(def_value))) {
+ // create default value
+ Object[i->first] = SmartObject(def_value.getType());
+ if (SmartType_Boolean == def_value.getType()) {
+ Object[i->first] = def_value.asBool();
+ } else if (SmartType_Integer == def_value.getType()) {
+ Object[i->first] = def_value.asUInt();
+ } else if (SmartType_Double == def_value.getType()) {
+ Object[i->first] = def_value.asDouble();
+ }
+ }
+ }
+