internal static DataTypeCategory FromId(AdsDatatypeId id, string typeName) { DataTypeCategory pointer = FromId(id); if (!string.IsNullOrEmpty(typeName) && (pointer == DataTypeCategory.Unknown)) { if (DataTypeStringParser.IsPointer(typeName)) { pointer = DataTypeCategory.Pointer; } else if (DataTypeStringParser.IsReference(typeName)) { pointer = DataTypeCategory.Reference; } else if (DataTypeStringParser.IsArray(typeName)) { pointer = DataTypeCategory.Array; } else if (DataTypeStringParser.IsSubRange(typeName)) { pointer = DataTypeCategory.SubRange; } else if (DataTypeStringParser.IsIntrinsicType(typeName)) { pointer = DataTypeCategory.Primitive; } else if (DataTypeStringParser.IsString(typeName)) { pointer = DataTypeCategory.String; } } return(pointer); }
internal static DataTypeCategory FromType(ITcAdsDataType type) => (!DataTypeStringParser.IsReference(type.Name) ? (!DataTypeStringParser.IsPointer(type.Name) ? (!DataTypeStringParser.IsSubRange(type.Name) ? (!type.HasSubItemInfo ? (!type.HasArrayInfo ? (!type.HasEnumInfo ? (string.IsNullOrEmpty(type.BaseTypeName) ? (!DataTypeStringParser.IsString(type.Name) ? FromId(type.DataTypeId, type.Name) : DataTypeCategory.String) : DataTypeCategory.Alias) : DataTypeCategory.Enum) : DataTypeCategory.Array) : DataTypeCategory.Struct) : DataTypeCategory.SubRange) : DataTypeCategory.Pointer) : DataTypeCategory.Reference);