MCPcopy Create free account
hub / github.com/EmbeddedRPC/erpc / getTypeInfo

Method getTypeInfo

erpcgen/src/JavaGenerator.cpp:954–1135  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

952}
953
954data_map JavaGenerator::getTypeInfo(DataType *t, int isReference, bool inDataContainer)
955{
956 data_map info;
957 std::string name = filterName(getOutputName(t, false));
958 info["name"] = name;
959 info["typeName"] = getTypenameName(t, isReference, isReference); // Java type: Float, List<int[]>, ...
960
961 info["isNonEncapsulatedUnion"] = false;
962 switch (t->getDataType())
963 {
964 case DataType::data_type_t::kAliasType:
965 {
966 info = getTypeInfo(t->getTrueDataType(), false);
967 break;
968 }
969 case DataType::data_type_t::kArrayType:
970 {
971 // Array type requires the array element count to come after the variable/member name.
972 info["type"] = "array";
973 break;
974 }
975 case DataType::data_type_t::kBuiltinType:
976 {
977 assert(dynamic_cast<const BuiltinType *>(t));
978 info["type"] = getBuiltinTypename(dynamic_cast<const BuiltinType *>(t));
979 info["codecTypeName"] = getBuiltinCodecTypeName(dynamic_cast<const BuiltinType *>(t));
980 break;
981 }
982 case DataType::data_type_t::kEnumType:
983 {
984 info["type"] = "enum";
985 break;
986 }
987 case DataType::data_type_t::kFunctionType:
988 {
989 info["type"] = "function";
990 break;
991 }
992 case DataType::data_type_t::kListType:
993 {
994 info["type"] = "list";
995 break;
996 }
997 case DataType::data_type_t::kStructType:
998 {
999 info["type"] = "struct";
1000 info["decode"] = m_templateData["decodeStructType"];
1001 info["encode"] = m_templateData["encodeStructType"];
1002 break;
1003 }
1004 case DataType::data_type_t::kUnionType:
1005 {
1006 UnionType *unionType = dynamic_cast<UnionType *>(t);
1007 assert(unionType);
1008 info["type"] = "union";
1009 info["encode"] = m_templateData["decodeUnionType"];
1010 info["decode"] = m_templateData["encodeUnionType"];
1011

Callers

nothing calls this directly

Calls 15

semantic_errorClass · 0.85
format_stringFunction · 0.85
internal_errorClass · 0.85
getTrueDataTypeMethod · 0.80
getDiscriminatorNameMethod · 0.80
getSymbolMethod · 0.80
getParentStructMethod · 0.80
getCaseNameMethod · 0.80
getCaseValueMethod · 0.80
hasMethod · 0.80
getvalueMethod · 0.80

Tested by

no test coverage detected