Lines Matching refs:resourceItem

147     ResourceItem resourceItem(nameNode->valuestring, fileInfo.keyParams, fileInfo.fileType);
148 resourceItem.SetFilePath(fileInfo.filePath);
149 resourceItem.SetLimitKey(fileInfo.limitKey);
156 if (!ret->second(objectNode, resourceItem)) {
160 return MergeResourceItem(resourceItem);
163 bool JsonCompiler::HandleString(const cJSON *objectNode, ResourceItem &resourceItem) const
166 if (!CheckJsonStringValue(valueNode, resourceItem)) {
169 return PushString(valueNode->valuestring, resourceItem);
172 bool JsonCompiler::HandleInteger(const cJSON *objectNode, ResourceItem &resourceItem) const
175 if (!CheckJsonIntegerValue(valueNode, resourceItem)) {
179 return PushString(valueNode->valuestring, resourceItem);
181 return PushString(to_string(valueNode->valueint), resourceItem);
187 bool JsonCompiler::HandleBoolean(const cJSON *objectNode, ResourceItem &resourceItem) const
194 cerr << NEW_LINE_PATH << resourceItem.GetFilePath() << endl;
197 return PushString(valueNode->valuestring, resourceItem);
200 cerr << "Error: '" << resourceItem.GetName() << "' value not boolean.";
201 cerr << NEW_LINE_PATH << resourceItem.GetFilePath() << endl;
204 return PushString(cJSON_IsTrue(valueNode) == 1 ? "true" : "false", resourceItem);
207 bool JsonCompiler::HandleColor(const cJSON *objectNode, ResourceItem &resourceItem) const
209 return HandleString(objectNode, resourceItem);
212 bool JsonCompiler::HandleFloat(const cJSON *objectNode, ResourceItem &resourceItem) const
214 return HandleString(objectNode, resourceItem);
217 bool JsonCompiler::HandleStringArray(const cJSON *objectNode, ResourceItem &resourceItem) const
220 return ParseValueArray(objectNode, resourceItem, extra,
221 [this](const cJSON *arrayItem, const ResourceItem &resourceItem, vector<string> &values) -> bool {
223 cerr << "Error: '" << resourceItem.GetName() << "' value array item not object.";
224 cerr << NEW_LINE_PATH << resourceItem.GetFilePath() << endl;
228 if (!CheckJsonStringValue(valueNode, resourceItem)) {
236 bool JsonCompiler::HandleIntegerArray(const cJSON *objectNode, ResourceItem &resourceItem) const
239 return ParseValueArray(objectNode, resourceItem, extra,
240 [this](const cJSON *arrayItem, const ResourceItem &resourceItem, vector<string> &values) -> bool {
241 if (!CheckJsonIntegerValue(arrayItem, resourceItem)) {
253 bool JsonCompiler::HandleTheme(const cJSON *objectNode, ResourceItem &resourceItem) const
256 if (!ParseParent(objectNode, resourceItem, extra)) {
259 return ParseValueArray(objectNode, resourceItem, extra,
260 [this](const cJSON *arrayItem, const ResourceItem &resourceItem, vector<string> &values) {
261 return ParseAttribute(arrayItem, resourceItem, values);
265 bool JsonCompiler::HandlePattern(const cJSON *objectNode, ResourceItem &resourceItem) const
267 return HandleTheme(objectNode, resourceItem);
270 bool JsonCompiler::HandlePlural(const cJSON *objectNode, ResourceItem &resourceItem) const
274 bool result = ParseValueArray(objectNode, resourceItem, extra,
275 [&attrs, this](const cJSON *arrayItem, const ResourceItem &resourceItem, vector<string> &values) {
276 if (!CheckPluralValue(arrayItem, resourceItem)) {
285 cerr << "Error: Plural '" << resourceItem.GetName() << "' quantity '" << quantityValue;
286 cerr << "' duplicated." << NEW_LINE_PATH << resourceItem.GetFilePath() << endl;
302 cerr << "Error: Plural '" << resourceItem.GetName() << "' quantity must contains 'other'.";
303 cerr << NEW_LINE_PATH << resourceItem.GetFilePath() << endl;
309 bool JsonCompiler::HandleSymbol(const cJSON *objectNode, ResourceItem &resourceItem) const
312 if (!CheckJsonSymbolValue(valueNode, resourceItem)) {
315 return PushString(valueNode->valuestring, resourceItem);
318 bool JsonCompiler::PushString(const string &value, ResourceItem &resourceItem) const
320 if (!resourceItem.SetData(reinterpret_cast<const int8_t *>(value.c_str()), value.length())) {
321 cerr << "Error: resourceItem setdata fail,'" << resourceItem.GetName() << "'.";
322 cerr << NEW_LINE_PATH << resourceItem.GetFilePath() << endl;
328 bool JsonCompiler::CheckJsonStringValue(const cJSON *valueNode, const ResourceItem &resourceItem) const
331 cerr << "Error: '" << resourceItem.GetName() << "' value not string.";
332 cerr << NEW_LINE_PATH << resourceItem.GetFilePath() << endl;
344 ResType type = resourceItem.GetResType();
348 cerr << "Error: " << error << NEW_LINE_PATH << resourceItem.GetFilePath() << endl;
355 cerr << NEW_LINE_PATH << resourceItem.GetFilePath() << endl;
361 bool JsonCompiler::CheckJsonIntegerValue(const cJSON *valueNode, const ResourceItem &resourceItem) const
364 cerr << "Error: '" << resourceItem.GetName() << "' value is empty";
365 cerr << NEW_LINE_PATH << resourceItem.GetFilePath() << endl;
372 cerr << NEW_LINE_PATH << resourceItem.GetFilePath() << endl;
376 cerr << "Error: '" << resourceItem.GetName() << "' value not integer.";
377 cerr << NEW_LINE_PATH << resourceItem.GetFilePath() << endl;
383 bool JsonCompiler::CheckJsonSymbolValue(const cJSON *valueNode, const ResourceItem &resourceItem) const
386 cerr << "Error: '" << resourceItem.GetName() << "' value not string.";
387 cerr << NEW_LINE_PATH << resourceItem.GetFilePath() << endl;
396 cerr << "Error: '" << resourceItem.GetName() << "' value must in 0xF0000 ~ 0xFFFFF or 0x100000 ~ 0x10FFFF.";
397 cerr << NEW_LINE_PATH << resourceItem.GetFilePath() << endl;
403 bool JsonCompiler::ParseValueArray(const cJSON *objectNode, ResourceItem &resourceItem,
408 cerr << "Error: '" << resourceItem.GetName() << "' value not array.";
409 cerr << NEW_LINE_PATH << resourceItem.GetFilePath() << endl;
414 cerr << "Error: '" << resourceItem.GetName() << "' value empty.";
415 cerr << NEW_LINE_PATH << resourceItem.GetFilePath() << endl;
425 if (!callback(item, resourceItem, values)) {
433 cerr << "Error: '" << resourceItem.GetName() << "' array too large.";
434 cerr << NEW_LINE_PATH << resourceItem.GetFilePath() << endl;
437 return PushString(data, resourceItem);
440 bool JsonCompiler::ParseParent(const cJSON *objectNode, const ResourceItem &resourceItem,
444 string type = ResourceUtil::ResTypeToString(resourceItem.GetResType());
447 cerr << "Error: " << type << " '" << resourceItem.GetName() << "' parent not string.";
448 cerr << NEW_LINE_PATH << resourceItem.GetFilePath() << endl;
453 cerr << "Error: " << type << " '"<< resourceItem.GetName() << "' parent empty.";
454 cerr << NEW_LINE_PATH << resourceItem.GetFilePath() << endl;
467 bool JsonCompiler::ParseAttribute(const cJSON *arrayItem, const ResourceItem &resourceItem,
470 string type = ResourceUtil::ResTypeToString(resourceItem.GetResType());
472 cerr << "Error: " << type << " '" << resourceItem.GetName() << "' attribute not object.";
473 cerr << NEW_LINE_PATH << resourceItem.GetFilePath() << endl;
478 cerr << "Error: " << type << " '" << resourceItem.GetName() << "' attribute name empty.";
479 cerr << NEW_LINE_PATH << resourceItem.GetFilePath() << endl;
483 cerr << "Error: " << type << " '" << resourceItem.GetName() << "' attribute name not string.";
484 cerr << NEW_LINE_PATH << resourceItem.GetFilePath() << endl;
491 cerr << "Error: " << type << " '" << resourceItem.GetName() << "' attribute '" << nameNode->valuestring;
492 cerr << "' value empty." << NEW_LINE_PATH << resourceItem.GetFilePath() << endl;
496 cerr << "Error: " << type << " '" << resourceItem.GetName() << "' attribute '" << nameNode->valuestring;
497 cerr << "' value not string." << NEW_LINE_PATH << resourceItem.GetFilePath() << endl;
504 bool JsonCompiler::CheckPluralValue(const cJSON *arrayItem, const ResourceItem &resourceItem) const
507 cerr << "Error: Plural '" << resourceItem.GetName() << "' array item not object.";
508 cerr << NEW_LINE_PATH << resourceItem.GetFilePath() << endl;
513 cerr << "Error: Plural '" << resourceItem.GetName() << "' quantity empty.";
514 cerr << NEW_LINE_PATH << resourceItem.GetFilePath() << endl;
518 cerr << "Error: Plural '" << resourceItem.GetName() << "' quantity not string.";
519 cerr << NEW_LINE_PATH << resourceItem.GetFilePath() << endl;
528 cerr << "Error: Plural '" << resourceItem.GetName() << "' quantity '" << quantityValue;
529 cerr << "' not in [" << buffer << "]." << NEW_LINE_PATH << resourceItem.GetFilePath() << endl;
535 cerr << "Error: Plural '" << resourceItem.GetName() << "' quantity '" << quantityValue;
536 cerr << "' value empty." << NEW_LINE_PATH << resourceItem.GetFilePath() << endl;
540 cerr << "Error: Plural '" << resourceItem.GetName() << "' quantity '" << quantityValue;
541 cerr << "' value not string." << NEW_LINE_PATH << resourceItem.GetFilePath() << endl;