コード例 #1
0
        public ClassReflector(
            Type type,
            IMappingObjectFactory mappingObjectFactory,
            IMemberInformationNameResolver nameResolver,
            IClassIDProvider classIDProvider,
            IPropertyMetadataProvider propertyMetadataProvider,
            IDomainModelConstraintProvider domainModelConstraintProvider,
            IDomainObjectCreator instanceCreator)
        {
            ArgumentUtility.CheckNotNullAndTypeIsAssignableFrom("type", type, typeof(DomainObject));
            ArgumentUtility.CheckNotNull("mappingObjectFactory", mappingObjectFactory);
            ArgumentUtility.CheckNotNull("nameResolver", nameResolver);
            ArgumentUtility.CheckNotNull("classIDProvider", classIDProvider);
            ArgumentUtility.CheckNotNull("propertyMetadataProvider", propertyMetadataProvider);
            ArgumentUtility.CheckNotNull("domainModelConstraintProvider", domainModelConstraintProvider);
            ArgumentUtility.CheckNotNull("instanceCreator", instanceCreator);

            _type = type;
            _mappingObjectFactory          = mappingObjectFactory;
            _nameResolver                  = nameResolver;
            _classIDProvider               = classIDProvider;
            _propertyMetadataProvider      = propertyMetadataProvider;
            _domainModelConstraintProvider = domainModelConstraintProvider;
            _instanceCreator               = instanceCreator;
        }
コード例 #2
0
 protected abstract PropertyFinderBase CreateNewFinder(
     Type type,
     bool includeBaseProperties,
     bool includeMixinProperties,
     IMemberInformationNameResolver nameResolver,
     IPersistentMixinFinder persistentMixinFinder,
     IPropertyMetadataProvider propertyMetadataProvider);
コード例 #3
0
        public MappingReflector(
            ITypeDiscoveryService typeDiscoveryService,
            IClassIDProvider classIDProvider,
            IMemberInformationNameResolver nameResolver,
            IPropertyMetadataProvider propertyMetadataProvider,
            IDomainModelConstraintProvider domainModelConstraintProvider,
            IDomainObjectCreator domainObjectCreator)
        {
            ArgumentUtility.CheckNotNull("typeDiscoveryService", typeDiscoveryService);
            ArgumentUtility.CheckNotNull("classIDProvider", classIDProvider);
            ArgumentUtility.CheckNotNull("propertyMetadataProvider", propertyMetadataProvider);
            ArgumentUtility.CheckNotNull("domainModelConstraintProvider", domainModelConstraintProvider);
            ArgumentUtility.CheckNotNull("nameResolver", nameResolver);
            ArgumentUtility.CheckNotNull("domainObjectCreator", domainObjectCreator);

            _typeDiscoveryService          = typeDiscoveryService;
            _classIDProvider               = classIDProvider;
            _propertyMetadataProvider      = propertyMetadataProvider;
            _domainModelConstraintProvider = domainModelConstraintProvider;
            _nameResolver         = nameResolver;
            _mappingObjectFactory = new ReflectionBasedMappingObjectFactory(
                _nameResolver,
                _classIDProvider,
                _propertyMetadataProvider,
                _domainModelConstraintProvider,
                domainObjectCreator);
        }
コード例 #4
0
 public RelationReflector(
     ClassDefinition classDefinition,
     IPropertyInformation propertyInfo,
     IMemberInformationNameResolver nameResolver,
     IPropertyMetadataProvider propertyMetadataProvider)
     : base(classDefinition, propertyInfo, nameResolver, propertyMetadataProvider)
 {
 }
コード例 #5
0
 public RdbmsRelationEndPointReflector(
     ClassDefinition classDefinition,
     IPropertyInformation propertyInfo,
     IMemberInformationNameResolver nameResolver,
     IPropertyMetadataProvider propertyMetadataProvider,
     IDomainModelConstraintProvider domainModelConstraintProvider)
     : base(classDefinition, propertyInfo, nameResolver, propertyMetadataProvider, domainModelConstraintProvider)
 {
 }
        public MappingAttributesAreOnlyAppliedOnOriginalPropertyDeclarationsValidationRule(
            IMemberInformationNameResolver nameResolver,
            IPropertyMetadataProvider propertyMetadataProvider)
        {
            ArgumentUtility.CheckNotNull("nameResolver", nameResolver);
            ArgumentUtility.CheckNotNull("propertyMetadataProvider", propertyMetadataProvider);

            _nameResolver             = nameResolver;
            _propertyMetadataProvider = propertyMetadataProvider;
        }
コード例 #7
0
 public StubPropertyFinderBase(
     Type type,
     bool includeBaseProperties,
     bool includeMixinProperties,
     IMemberInformationNameResolver nameResolver,
     IPersistentMixinFinder persistentMixinFinder,
     IPropertyMetadataProvider propertyMetadataProvider)
     : base(type, includeBaseProperties, includeMixinProperties, nameResolver, persistentMixinFinder, propertyMetadataProvider)
 {
 }
コード例 #8
0
        protected RelationReflectorBase(
            ClassDefinition classDefinition,
            IPropertyInformation propertyInfo,
            IMemberInformationNameResolver nameResolver,
            IPropertyMetadataProvider propertyMetadataProvider)
            : base(propertyInfo, nameResolver, propertyMetadataProvider)
        {
            ArgumentUtility.CheckNotNull("classDefinition", classDefinition);

            ClassDefinition = classDefinition;
            BidirectionalRelationAttribute = PropertyInfo.GetCustomAttribute <T> (true);
        }
コード例 #9
0
        public RelationEndPointDefinitionCollectionFactory(
            IMappingObjectFactory mappingObjectFactory,
            IMemberInformationNameResolver nameResolver,
            IPropertyMetadataProvider propertyMetadataProvider)
        {
            ArgumentUtility.CheckNotNull("mappingObjectFactory", mappingObjectFactory);
            ArgumentUtility.CheckNotNull("nameResolver", nameResolver);
            ArgumentUtility.CheckNotNull("propertyMetadataProvider", propertyMetadataProvider);

            _mappingObjectFactory     = mappingObjectFactory;
            _nameResolver             = nameResolver;
            _propertyMetadataProvider = propertyMetadataProvider;
        }
コード例 #10
0
        public NameBasedPropertyFinder(
            string propertyName,
            Type type,
            bool includeBaseProperties,
            bool includeMixinProperties,
            IMemberInformationNameResolver nameResolver,
            IPersistentMixinFinder persistentMixinFinder,
            IPropertyMetadataProvider propertyMetadataProvider)
            : base(type, includeBaseProperties, includeMixinProperties, nameResolver, persistentMixinFinder, propertyMetadataProvider)
        {
            ArgumentUtility.CheckNotNullOrEmpty("propertyName", propertyName);

            _propertyName = propertyName;
        }
コード例 #11
0
        public PropertyReflector(
            ClassDefinition classDefinition,
            IPropertyInformation propertyInfo,
            IMemberInformationNameResolver nameResolver,
            IPropertyMetadataProvider propertyMetadataProvider,
            IDomainModelConstraintProvider domainModelConstraintProvider)
            : base(propertyInfo, nameResolver, propertyMetadataProvider)
        {
            ArgumentUtility.CheckNotNull("classDefinition", classDefinition);
            ArgumentUtility.CheckNotNull("domainModelConstraintProvider", domainModelConstraintProvider);

            _classDefinition = classDefinition;
            _domainModelConstraintProvider = domainModelConstraintProvider;
        }
コード例 #12
0
        protected MemberReflectorBase(
            IPropertyInformation propertyInfo,
            IMemberInformationNameResolver nameResolver,
            IPropertyMetadataProvider propertyMetadataProvider)
        {
            ArgumentUtility.CheckNotNull("propertyInfo", propertyInfo);
            ArgumentUtility.CheckNotNull("nameResolver", nameResolver);
            ArgumentUtility.CheckNotNull("propertyMetadataProvider", propertyMetadataProvider);

            _propertyInfo             = propertyInfo;
            _nameResolver             = nameResolver;
            _propertyMetadataProvider = propertyMetadataProvider;
            _storageClassAttribute    = PropertyInfo.GetCustomAttribute <StorageClassAttribute> (true);
        }
コード例 #13
0
        public virtual void SetUp()
        {
            DomainObjectsConfiguration.SetCurrent(TestMappingConfiguration.Instance.GetDomainObjectsConfiguration());
            MappingConfiguration.SetCurrent(TestMappingConfiguration.Instance.GetMappingConfiguration());
            ConfigurationWrapper.SetCurrent(null);

            ClassIDProviderStub = MockRepository.GenerateStub <IClassIDProvider>();
            DomainModelConstraintProviderStub = MockRepository.GenerateStub <IDomainModelConstraintProvider>();
            DomainObjectCreatorStub           = MockRepository.GenerateStub <IDomainObjectCreator>();
            PropertyMetadataProvider          = new PropertyMetadataReflector();

            MappingObjectFactory = new ReflectionBasedMappingObjectFactory(
                Configuration.NameResolver, ClassIDProviderStub, PropertyMetadataProvider, DomainModelConstraintProviderStub, DomainObjectCreatorStub);
        }
コード例 #14
0
 protected override PropertyFinderBase CreateNewFinder(
     Type type,
     bool includeBaseProperties,
     bool includeMixinProperties,
     IMemberInformationNameResolver nameResolver,
     IPersistentMixinFinder persistentMixinFinder,
     IPropertyMetadataProvider propertyMetadataProvider)
 {
     return(new StubPropertyFinderBase(
                type,
                includeBaseProperties,
                includeMixinProperties,
                nameResolver,
                persistentMixinFinder,
                propertyMetadataProvider));
 }
コード例 #15
0
        public PropertyFinder(
            Type type,
            ClassDefinition classDefinition,
            bool includeBaseProperties,
            bool includeMixinProperties,
            IMemberInformationNameResolver nameResolver,
            IPersistentMixinFinder persistentMixinFinder,
            IPropertyMetadataProvider propertyMetadataProvider,
            IDomainModelConstraintProvider domainModelConstraintProvider)
            : base(type, includeBaseProperties, includeMixinProperties, nameResolver, persistentMixinFinder, propertyMetadataProvider)
        {
            ArgumentUtility.CheckNotNull("classDefinition", classDefinition);

            _classDefinition = classDefinition;
            _domainModelConstraintProvider = domainModelConstraintProvider;
        }
コード例 #16
0
 protected override PropertyFinderBase CreateNewFinder(
     Type type,
     bool includeBaseProperties,
     bool includeMixinProperties,
     IMemberInformationNameResolver nameResolver,
     IPersistentMixinFinder persistentMixinFinder,
     IPropertyMetadataProvider propertyMetadataProvider)
 {
     return(new PropertyFinder(
                type,
                _classDefinition,
                includeBaseProperties,
                includeMixinProperties,
                nameResolver,
                persistentMixinFinder,
                propertyMetadataProvider,
                _domainModelConstraintProvider));
 }
コード例 #17
0
        public ReflectionBasedMappingObjectFactory(
            IMemberInformationNameResolver nameResolver,
            IClassIDProvider classIDProvider,
            IPropertyMetadataProvider propertyMetadataProvider,
            IDomainModelConstraintProvider domainModelConstraintProvider,
            IDomainObjectCreator instanceCreator)
        {
            ArgumentUtility.CheckNotNull("nameResolver", nameResolver);
            ArgumentUtility.CheckNotNull("classIDProvider", classIDProvider);
            ArgumentUtility.CheckNotNull("propertyMetadataProvider", propertyMetadataProvider);
            ArgumentUtility.CheckNotNull("domainModelConstraintProvider", domainModelConstraintProvider);
            ArgumentUtility.CheckNotNull("instanceCreator", instanceCreator);

            _nameResolver                  = nameResolver;
            _classIDProvider               = classIDProvider;
            _propertyMetadataProvider      = propertyMetadataProvider;
            _domainModelConstraintProvider = domainModelConstraintProvider;
            _instanceCreator               = instanceCreator;
        }
コード例 #18
0
        protected override PropertyFinderBase CreateNewFinder(
            Type type,
            bool includeBaseProperties,
            bool includeMixinProperties,
            IMemberInformationNameResolver nameResolver,
            IPersistentMixinFinder persistentMixinFinder,
            IPropertyMetadataProvider propertyMetadataProvider)
        {
            ArgumentUtility.CheckNotNull("type", type);
            ArgumentUtility.CheckNotNull("nameResolver", nameResolver);
            ArgumentUtility.CheckNotNull("persistentMixinFinder", persistentMixinFinder);
            ArgumentUtility.CheckNotNull("propertyMetadataProvider", propertyMetadataProvider);

            return(new AllMappingPropertiesFinder(
                       type,
                       includeBaseProperties,
                       includeMixinProperties,
                       nameResolver,
                       persistentMixinFinder,
                       propertyMetadataProvider));
        }
コード例 #19
0
        protected PropertyFinderBase(
            Type type,
            bool includeBaseProperties,
            bool includeMixinProperties,
            IMemberInformationNameResolver nameResolver,
            IPersistentMixinFinder persistentMixinFinder,
            IPropertyMetadataProvider propertyMetadataProvider)
        {
            ArgumentUtility.CheckNotNull("type", type);
            ArgumentUtility.CheckNotNull("nameResolver", nameResolver);
            ArgumentUtility.CheckNotNull("persistentMixinFinder", persistentMixinFinder);
            ArgumentUtility.CheckNotNull("propertyMetadataProvider", propertyMetadataProvider);

            _type = type;
            _includeBaseProperties            = includeBaseProperties;
            _includeMixinProperties           = includeMixinProperties;
            _nameResolver                     = nameResolver;
            _persistentMixinFinder            = persistentMixinFinder;
            _propertyMetadataProvider         = propertyMetadataProvider;
            _explicitInterfaceImplementations = new Lazy <HashSet <IMethodInformation> > (
                () => new HashSet <IMethodInformation> (
                    s_explicitInterfaceImplementations.GetOrCreateValue(_type, GetExplicitInterfaceImplementations)
                    .Select(MethodInfoAdapter.Create)));
        }