internal static void Accept(this ITermMappingProvider termMappingProvider, IEnumerable <IMappingProviderVisitor> visitors) { foreach (var visitor in visitors) { termMappingProvider.Accept(visitor); } }
internal static ITermMappingProvider TryCloseGenericTermMappingProvider(this ITermMappingProvider openGenericMappingProvider, Type closedGenericType) { var openGenericEntityMappingProvider = openGenericMappingProvider as IEntityMappingProvider; if (openGenericEntityMappingProvider != null) { return(new ClosedGenericEntityMappingProvider(closedGenericType, openGenericEntityMappingProvider)); } var openGenericCollectionMappingProvider = openGenericMappingProvider as ICollectionMappingProvider; if (openGenericCollectionMappingProvider != null) { return(new ClosedGenericCollectionMappingProvider(closedGenericType, openGenericCollectionMappingProvider)); } var openGenericPropertyMappingProvider = openGenericMappingProvider as IPropertyMappingProvider; if (openGenericPropertyMappingProvider != null) { return(new ClosedGenericPropertyMappingProvider(closedGenericType, openGenericPropertyMappingProvider)); } return(openGenericMappingProvider); }
private void AssertTermMapped(ITermMappingProvider term, string errorString = null) { if (term.GetTerm == null) { LogTo.Warn("Entity {0}: missing term for {1}", _currentType, errorString ?? term.ToString()); } }
private void AssertTermMapped(ITermMappingProvider term, string errorString = null) { if (term.GetTerm == null) { _log.Warning("Entity {0}: missing term for {1}", _currentType, errorString ?? term.ToString()); } }
public void BuildMapping(IDictionary <Type, IEntityMapping> mappings, Type closedGenericType, IEnumerable <ITermMappingProvider> openGenericEntityMappingProviders) { IEntityMapping entityMapping; if (mappings.TryGetValue(closedGenericType, out entityMapping)) { return; } foreach (var openGenericMappingProvider in openGenericEntityMappingProviders) { ITermMappingProvider mappingProvider = openGenericMappingProvider.TryCloseGenericTermMappingProvider(closedGenericType); if (mappingProvider is ClosedGenericTermMappingProvider) { mappingProvider.Accept(_mappingProviderVisitors); } var existingEntityMapping = BuildEntityMapping(mappings, mappingProvider); BuildPropertyMapping(existingEntityMapping, mappingProvider as IPropertyMappingProvider); } }
/// <summary> /// Initializes a new instance of the <see cref="DictionaryMappingProvider"/> class. /// </summary> /// <param name="key">The key mapping provider.</param> /// <param name="value">The value mapping provider.</param> /// <param name="property">The property.</param> public DictionaryMappingProvider(IPropertyMappingProvider property, ITermMappingProvider key, ITermMappingProvider value) { _property = property; _key = key; _value = value; }
public IDictionaryMappingProvider Visit(DictionaryAttribute dictionaryAttribute, PropertyInfo property, ITermMappingProvider key, ITermMappingProvider value) { var prop = CreatePropertyMapping(dictionaryAttribute, property); return new DictionaryMappingProvider(prop, key, value); }
internal ClosedGenericTermMappingProvider(Type closedGenericType, ITermMappingProvider openGenericTermMappingProvider) { EntityType = closedGenericType; _openGenericTermMappingProvider = openGenericTermMappingProvider; }
private MergingEntityMapping BuildEntityMapping(IDictionary <Type, IEntityMapping> mappings, ITermMappingProvider mappingProvider) { IEntityMapping existingEntityMapping; if (!mappings.TryGetValue(mappingProvider.EntityType, out existingEntityMapping)) { mappings[mappingProvider.EntityType] = existingEntityMapping = new MergingEntityMapping(mappingProvider.EntityType); } var mergingEntityMapping = existingEntityMapping as MergingEntityMapping; var entityMappingProvider = mappingProvider as IEntityMappingProvider; if (entityMappingProvider == null) { return(mergingEntityMapping); } var term = entityMappingProvider.GetTerm(_qiriMappings); if (term != null) { mergingEntityMapping.Classes.Add(new StatementMapping(entityMappingProvider.GetGraph(_qiriMappings), term)); } return(mergingEntityMapping); }
public IPropertyMappingProvider Visit(DictionaryMap dictionaryMap, ITermMappingProvider key, ITermMappingProvider value) { var propertyMapping = CreatePropertyMapping(dictionaryMap); return new DictionaryMappingProvider(propertyMapping, key, value); }