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());
     }
 }
Esempio n. 5
0
        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);
 }
Esempio n. 8
0
 internal ClosedGenericTermMappingProvider(Type closedGenericType, ITermMappingProvider openGenericTermMappingProvider)
 {
     EntityType = closedGenericType;
     _openGenericTermMappingProvider = openGenericTermMappingProvider;
 }
Esempio n. 9
0
        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);
 }