public ReferenceTypeTester TestReferenceTypeWithName(string name, int?typeArgCnt = null) { ExtractedReferenceType extrType = _typeCollection.GetReferenceTypes() .Where(type => type.NamedType.Name == name && (!typeArgCnt.HasValue || typeArgCnt.Value == type.NamedType.TypeArguments.Count)) .FirstOrDefault() as ExtractedReferenceType; return(new ReferenceTypeTester(extrType, _typeFormatter)); }
/// <summary> /// Formats a name declaration /// </summary> /// <param name="refType"></param> /// <returns></returns> public override string FormatNamedTypeDeclaration(ExtractedReferenceType refType) { // Create the type name appending the number of type arguments if there are duplicate names string name; if (NameCountIndex[GetIndexName(refType)] > 1 && refType.NamedType.TypeArguments.Count > 0) { name = $"{refType.Name}_{refType.NamedType.TypeArguments.Count}"; } else { name = refType.Name; } if (refType.NamedType.TypeArguments.Count > 0) { name += $"<{string.Join(", ", refType.NamedType.TypeArguments.Select(arg => arg.Name))}>"; } return(name); }
private string GetIndexName(ExtractedReferenceType refType) { return($"{_resolver.GetPrefix(refType)}.{refType.Name}"); }
public ReferenceTypeTester(ExtractedReferenceType scriptClass, TypeFormatter typeFormatter) { _namedObjectType = scriptClass; _typeFormatter = typeFormatter; }
/// <summary> /// Formats an extracted reference type declaration /// </summary> /// <param name="refType"></param> /// <returns></returns> public abstract string FormatNamedTypeDeclaration(ExtractedReferenceType refType);
private string GetIndexName(ExtractedReferenceType refType) => $"{refType.Namespace}.{refType.Name}";
private string GetClassDeclaration(ExtractedReferenceType refType) => refType.GetClassDeclaration(_formatter);