Exemplo n.º 1
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);
        }
Exemplo n.º 2
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;
        }
        public ClassDefinition(
            string id,
            Type classType,
            bool isAbstract,
            ClassDefinition baseClass,
            Type storageGroupType,
            IPersistentMixinFinder persistentMixinFinder,
            IDomainObjectCreator instanceCreator)
        {
            ArgumentUtility.CheckNotNullOrEmpty("id", id);
            ArgumentUtility.CheckNotNull("classType", classType);
            ArgumentUtility.CheckNotNull("persistentMixinFinder", persistentMixinFinder);

            _id = id;
            _storageGroupType = storageGroupType;

            _classType             = classType;
            _persistentMixinFinder = persistentMixinFinder;
            _isAbstract            = isAbstract;

            _propertyAccessorDataCache         = new PropertyAccessorDataCache(this);
            _cachedRelationEndPointDefinitions = new DoubleCheckedLockingContainer <RelationEndPointDefinitionCollection> (
                () => RelationEndPointDefinitionCollection.CreateForAllRelationEndPoints(this, true));
            _cachedPropertyDefinitions =
                new DoubleCheckedLockingContainer <PropertyDefinitionCollection> (
                    () => new PropertyDefinitionCollection(PropertyDefinitionCollection.CreateForAllProperties(this, true), true));

            _baseClass       = baseClass;
            _instanceCreator = instanceCreator;
            _handleCreator   = new Lazy <Func <ObjectID, IDomainObjectHandle <DomainObject> > > (BuildHandleCreator, LazyThreadSafetyMode.PublicationOnly);
        }
Exemplo n.º 4
0
        public override void SetUp()
        {
            base.SetUp();

            _transaction       = ClientTransactionObjectMother.Create();
            _eventSinkWithMock = MockRepository.GenerateStrictMock <IClientTransactionEventSink>();
            _invalidDomainObjectManagerMock = MockRepository.GenerateStrictMock <IInvalidDomainObjectManager> ();
            _dataManagerMock = MockRepository.GenerateStrictMock <IDataManager> ();
            _enlistedDomainObjectManagerMock = MockRepository.GenerateStrictMock <IEnlistedDomainObjectManager> ();
            _persistenceStrategyMock         = MockRepository.GenerateStrictMock <IPersistenceStrategy>();

            _agent = new ObjectLifetimeAgent(
                _transaction,
                _eventSinkWithMock,
                _invalidDomainObjectManagerMock,
                _dataManagerMock,
                _enlistedDomainObjectManagerMock,
                _persistenceStrategyMock);

            _objectID1      = DomainObjectIDs.Order1;
            _domainObject1  = DomainObjectMother.CreateFakeObject(_objectID1);
            _dataContainer1 = DataContainerObjectMother.CreateExisting(_domainObject1);

            _objectID2      = DomainObjectIDs.Order3;
            _domainObject2  = DomainObjectMother.CreateFakeObject(_objectID2);
            _dataContainer2 = DataContainerObjectMother.CreateExisting(_domainObject2);

            _domainObjectCreatorMock       = MockRepository.GenerateStrictMock <IDomainObjectCreator>();
            _typeDefinitionWithCreatorMock = ClassDefinitionObjectMother.CreateClassDefinitionWithTable(
                TestDomainStorageProviderDefinition,
                classType: typeof(OrderItem),
                instanceCreator: _domainObjectCreatorMock);

            _objectIDWithCreatorMock = new ObjectID(_typeDefinitionWithCreatorMock, Guid.NewGuid());
        }
 public ClassDefinitionWithUnresolvedClassType(
     string id,
     Type classType,
     bool isAbstract,
     ClassDefinition baseClass,
     IPersistentMixinFinder persistentMixinFinder,
     IDomainObjectCreator instanceCreator)
     : base(id, classType, isAbstract, baseClass, null, persistentMixinFinder, instanceCreator)
 {
 }
        public static ClassDefinition CreateClassDefinitionWithTable(
            StorageProviderDefinition storageProviderDefinition,
            string id                 = null,
            Type classType            = null,
            bool isAbstract           = false,
            ClassDefinition baseClass = null,
            Type storageGroupType     = null,
            IPersistentMixinFinder persistentMixinFinder = null,
            IDomainObjectCreator instanceCreator         = null)
        {
            var classDefinition = CreateClassDefinition(id, classType, isAbstract, baseClass, storageGroupType, persistentMixinFinder, instanceCreator);

            classDefinition.SetStorageEntity(TableDefinitionObjectMother.Create(storageProviderDefinition));
            return(classDefinition);
        }
        public static ClassDefinition CreateClassDefinition(
            string id                 = null,
            Type classType            = null,
            bool isAbstract           = false,
            ClassDefinition baseClass = null,
            Type storageGroupType     = null,
            IPersistentMixinFinder persistentMixinFinder = null,
            IDomainObjectCreator instanceCreator         = null)
        {
            id                    = id ?? "Test";
            classType             = classType ?? typeof(Order);
            persistentMixinFinder = persistentMixinFinder ?? new PersistentMixinFinderStub(classType, Type.EmptyTypes);
            instanceCreator       = instanceCreator ?? MockRepository.GenerateStrictMock <IDomainObjectCreator>();

            return(new ClassDefinition(id, classType, isAbstract, baseClass, storageGroupType, persistentMixinFinder, instanceCreator));
        }
Exemplo n.º 8
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;
        }