CGMES_3_0_0
Loading...
Searching...
No Matches
CimClassDetails.hpp
1#ifndef CIMCLASSDETAILS_HPP
2#define CIMCLASSDETAILS_HPP
3
4#include <list>
5#include <map>
6#include <string>
7
8#include "CGMESProfile.hpp"
9
10class BaseClass;
11class AttrDetails;
12
13class CimClassDetails
14{
15public:
16 CimClassDetails(
17 const BaseClass& obj,
18 std::string classNamespace,
19 std::list<CGMESProfile> possibleProfiles,
20 CGMESProfile recommendedProfile);
21
22 const std::string ClassNamespace;
23 const std::map<std::string, AttrDetails> AttrDetailsMap;
24 const std::list<std::string> AttrNamesList;
25 const std::list<CGMESProfile> PossibleProfiles;
26 const CGMESProfile RecommendedProfile;
27 const std::list<CGMESProfile> PossibleProfilesIncludingAttributes;
28
29 const std::string& getAttributeNamespaceUrl(const std::string& attrName) const;
30 const std::list<CGMESProfile>& getPossibleAttributeProfiles(const std::string& attrName) const;
31
32private:
33 static std::list<std::string> constructAttrNamesList(const std::map<std::string, AttrDetails>& attrDetailsMap);
34 static std::list<CGMESProfile> constructPossibleProfilesIncludingAttributes(
35 const std::list<CGMESProfile>& possibleProfiles,
36 const std::map<std::string, AttrDetails>& attrDetailsMap);
37
38public:
39 static const std::list<std::string> UnknownAttributes;
40 static const std::string UnknownNamespace;
41 static const std::list<CGMESProfile> UnknownProfiles;
42};
43
44class AttrDetails
45{
46public:
47 AttrDetails(std::string n, std::list<CGMESProfile> c) : nameSpace(n), profiles(c) {}
48 const std::string nameSpace;
49 const std::list<CGMESProfile> profiles;
50};
51#endif
Definition CimClassDetails.hpp:45
Definition BaseClass.hpp:22