public NakedObjectAdapter(IMetamodelManager metamodel,
                                  ISession session,
                                  IObjectPersistor persistor,
                                  ILifecycleManager lifecycleManager,
                                  INakedObjectManager nakedObjectManager,
                                  object poco,
                                  IOid oid,
                                  ILoggerFactory loggerFactory,
                                  ILogger <NakedObjectAdapter> logger)
        {
            this.metamodel          = metamodel ?? throw new InitialisationException($"{nameof(metamodel)} is null");
            this.session            = session ?? throw new InitialisationException($"{nameof(session)} is null");
            this.persistor          = persistor ?? throw new InitialisationException($"{nameof(persistor)} is null");
            this.nakedObjectManager = nakedObjectManager ?? throw new InitialisationException($"{nameof(nakedObjectManager)} is null");
            this.logger             = logger ?? throw new InitialisationException($"{nameof(logger)} is null");
            this.lifecycleManager   = lifecycleManager ?? throw new InitialisationException($"{nameof(lifecycleManager)} is null");

            if (poco is INakedObjectAdapter)
            {
                throw new AdapterException(logger.LogAndReturn($"Adapter can't be used to adapt an adapter: {poco}"));
            }

            Object       = poco;
            Oid          = oid;
            ResolveState = new ResolveStateMachine(this, session);
            Version      = new NullVersion(loggerFactory.CreateLogger <NullVersion>());
        }
Exemplo n.º 2
0
        public NakedObjectAdapter(IMetamodelManager metamodel, ISession session, IObjectPersistor persistor, ILifecycleManager lifecycleManager, INakedObjectManager nakedObjectManager, object poco, IOid oid)
        {
            Assert.AssertNotNull(metamodel);
            Assert.AssertNotNull(session);

            if (poco is INakedObjectAdapter)
            {
                throw new AdapterException(Log.LogAndReturn($"Adapter can't be used to adapt an adapter: {poco}"));
            }
            this.metamodel          = metamodel;
            this.session            = session;
            this.persistor          = persistor;
            this.nakedObjectManager = nakedObjectManager;
            this.lifecycleManager   = lifecycleManager;

            this.poco    = poco;
            Oid          = oid;
            ResolveState = new ResolveStateMachine(this, session);
            version      = new NullVersion();
        }