All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
InteriorLabelCategoryParser.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 #include "Labels.h"
6 #include "IInteriorLabelCategoryParser.h"
7 #include "Types.h"
8 
9 #include "document.h"
10 
11 #include <string>
12 #include <vector>
13 
14 namespace Eegeo
15 {
16  namespace Resources
17  {
18  namespace Interiors
19  {
21  {
22  public:
24 
25  bool TryParse(const std::string& serializedInteriorCategories, InteriorLabelCategoryParserResult& out_result) const;
26 
27  private:
28 
29  bool ParseLabelNameToTags(const rapidjson::Value& labelNameToTagJsonArray, std::vector<LabelNameToTagDto>& results) const;
30  bool ParseTagToLabelAnchorCategories(const rapidjson::Value& tagToLabelAnchorCategoryJsonArray, std::vector<TagToLabelAnchorCategoryDto>& results) const;
31  bool ParseLabelAnchorCategories(const rapidjson::Value& labelAnchorCategoryJsonArray, std::vector<LabelAnchorCategoryDto>& results) const;
32 
33  bool ParseLabelNameToTag(const rapidjson::Value& labelNameToTagJson, LabelNameToTagDto& result) const;
34  bool ParseTagToLabelAnchorCategory(const rapidjson::Value& tagToLabelAnchorCategoryJson, TagToLabelAnchorCategoryDto& result) const;
35  bool ParseLabelAnchorCategory(const rapidjson::Value& labelAnchorCategoryJson, LabelAnchorCategoryDto& result) const;
36 
37  };
38  }
39  }
40 }