public ITypeBuildingContext ResolveType(string initialUnitPath, Type type, ITypeScriptUnitFactory unitFactory) { if (InternalApiTypeBuildingContext.Accept(type)) { var targetUnit = unitFactory.GetOrCreateTypeUnit(initialUnitPath); return(new InternalApiTypeBuildingContext(targetUnit, type)); } if (type == typeof(Guid)) { return(TypeBuilding.RedirectToType("Guid", @".\DataTypes\Guid", typeof(Guid))); } if (type == typeof(DateTime)) { return(TypeBuilding.RedirectToType("DateTime", @".\DataTypes\DateTime", typeof(DateTime))); } if (type == typeof(DateTimeOffset)) { return(TypeBuilding.RedirectToType("DateTime", @".\DataTypes\DateTime", typeof(DateTimeOffset))); } if (type == typeof(TimeSpan)) { return(TypeBuilding.RedirectToType("TimeSpan", @".\DataTypes\TimeSpan", typeof(TimeSpan))); } return(null); }
public ITypeBuildingContext ResolveType(string initialUnitPath, Type type, ITypeScriptUnitFactory unitFactory) { if (type == typeof(MethodRootType)) { return(new MethodTypeBuildingContext(unitFactory.GetOrCreateTypeUnit(initialUnitPath), type)); } if (CollectionTypeBuildingContext.Accept(type)) { return(new CollectionTypeBuildingContext(type)); } if (type == typeof(TimeSpan)) { return(new StringBuildingContext()); } if (type.IsAbstract) { return(new AbstractTypeBuildingContext(unitFactory.GetOrCreateTypeUnit(initialUnitPath), type)); } return(null); }
public ITypeBuildingContext?ResolveType(string initialUnitPath, ITypeGenerator typeGenerator, ITypeInfo type, ITypeScriptUnitFactory unitFactory) { return(null); }
public virtual ITypeBuildingContext?ResolveType(string initialUnitPath, ITypeGenerator typeGenerator, ITypeInfo typeInfo, ITypeScriptUnitFactory unitFactory) { if (typeRedirects.TryGetValue(typeInfo, out var redirect)) { return(TypeBuilding.RedirectToType(redirect.Name, redirect.Location, typeInfo)); } var contextCreation = typeBuildingContextRules.SingleOrDefault(x => x.Accept(typeInfo)); if (contextCreation == null) { return(null); } return(contextCreation.CreateContext != null ? contextCreation.CreateContext(typeInfo) : contextCreation.CreateContextWithUnit(unitFactory.GetOrCreateTypeUnit(initialUnitPath), typeInfo)); }
public ITypeBuildingContext ResolveType(string initialUnitPath, Type type, ITypeScriptUnitFactory unitFactory) { return(null); }
public virtual ITypeBuildingContext?ResolveType(string initialUnitPath, ITypeGenerator typeGenerator, ITypeInfo typeInfo, ITypeScriptUnitFactory unitFactory) { if (typeRedirects.TryGetValue(typeInfo, out var redirect)) { return(TypeBuilding.RedirectToType(redirect.Name, redirect.Location, typeInfo)); } if (typeBuildingContexts.TryGetValue(typeInfo, out var createContext)) { return(createContext(typeInfo)); } foreach (var typeBuildingContextWithAcceptanceChecking in typeBuildingContextsWithAcceptanceChecking) { if (typeBuildingContextWithAcceptanceChecking.Accept(typeInfo)) { return(typeBuildingContextWithAcceptanceChecking.CreateContext(unitFactory.GetOrCreateTypeUnit(initialUnitPath), typeInfo)); } } return(null); }
public ITypeBuildingContext ResolveType(string initialUnitPath, ITypeGenerator typeGenerator, ITypeInfo type, ITypeScriptUnitFactory unitFactory) { if (type.Equals(TypeInfo.From <TimeGuid>())) { return(TypeBuilding.RedirectToType("TimeGuid", @"..\DataTypes\TimeGuid", type)); } if (type.Equals(TypeInfo.From <Timestamp>())) { return(TypeBuilding.RedirectToType("Timestamp", @"..\DataTypes\Timestamp", type)); } if (type.Equals(TypeInfo.From <TimestampRange>())) { return(TypeBuilding.RedirectToType("DateTimeRange", @"..\DataTypes\DateTimeRange", type)); } if (InternalApiTypeBuildingContext.Accept(type)) { return(new InternalApiTypeBuildingContext(unitFactory.GetOrCreateTypeUnit(initialUnitPath), type)); } return(null); }
public ITypeBuildingContext?ResolveType(string initialUnitPath, ITypeGenerator typeGenerator, ITypeInfo typeInfo, ITypeScriptUnitFactory unitFactory) { if (typeInfo.Equals(TypeInfo.From <MethodRootType>()) || typeInfo.Equals(TypeInfo.From <NullableReferenceMethodType>())) { return(new MethodTypeBuildingContext(unitFactory.GetOrCreateTypeUnit(initialUnitPath), typeInfo)); } if (CollectionTypeBuildingContext.Accept(typeInfo)) { return(new CollectionTypeBuildingContext(typeInfo)); } if (typeInfo.Equals(TypeInfo.From <TimeSpan>())) { return(new StringBuildingContext(typeInfo)); } if (typeInfo.IsAbstract) { return(new AbstractTypeBuildingContext(unitFactory.GetOrCreateTypeUnit(initialUnitPath), typeInfo)); } return(null); }
public ITypeBuildingContext ResolveType([NotNull] string initialUnitPath, [NotNull] Type type, [NotNull] ITypeScriptUnitFactory unitFactory) { return(null); }
public ITypeBuildingContext ResolveType(string initialUnitPath, ITypeGenerator typeGenerator, ITypeInfo type, ITypeScriptUnitFactory unitFactory) { if (InternalApiTypeBuildingContext.Accept(type)) { return(new InternalApiTypeBuildingContext(unitFactory.GetOrCreateTypeUnit(initialUnitPath), type)); } return(null); }