/// <summary> /// Initializes a new instance of the <see cref="ObjectRepositoryLoader"/> class. /// </summary> /// <param name="dataAccessorProvider">The data accessor provider.</param> /// <param name="repositoryProvider">The repository provider.</param> /// <param name="repositorySerializerFactory">The <see cref="IObjectRepositorySerializer"/> factory.</param> public ObjectRepositoryLoader(IModelDataAccessorProvider dataAccessorProvider, IRepositoryProvider repositoryProvider, ObjectRepositorySerializerFactory repositorySerializerFactory) { _dataAccessorProvider = dataAccessorProvider ?? throw new ArgumentNullException(nameof(dataAccessorProvider)); _repositoryProvider = repositoryProvider ?? throw new ArgumentNullException(nameof(repositoryProvider)); _repositorySerializerFactory = repositorySerializerFactory ?? throw new ArgumentNullException(nameof(repositorySerializerFactory)); }
internal MigrationScaffolder(IObjectRepositoryContainer container, RepositoryDescription repositoryDescription, IRepositoryProvider repositoryProvider, ObjectRepositorySerializerFactory repositorySerializerFactory) { _repositoryProvider = repositoryProvider ?? throw new ArgumentNullException(nameof(repositoryProvider)); _container = container ?? throw new ArgumentNullException(nameof(container)); _repositoryDescription = repositoryDescription ?? throw new ArgumentNullException(nameof(repositoryDescription)); _repositorySerializerFactory = repositorySerializerFactory ?? throw new ArgumentNullException(nameof(repositorySerializerFactory)); }
public ObjectRepositoryMerge(IObjectRepository repository, ObjectId mergeCommitId, string branchName, MigrationScaffolderFactory migrationScaffolderFactory, MergeProcessor.Factory mergeProcessorFactory, ObjectRepositorySerializerFactory serializerFactory) { if (serializerFactory == null) { throw new ArgumentNullException(nameof(serializerFactory)); } Repository = repository ?? throw new ArgumentNullException(nameof(repository)); HeadCommitId = repository.CommitId ?? throw new GitObjectDbException("Repository instance is not linked to any commit."); MergeCommitId = mergeCommitId ?? throw new ArgumentNullException(nameof(mergeCommitId)); BranchName = branchName ?? throw new ArgumentNullException(nameof(branchName)); _migrationScaffolderFactory = migrationScaffolderFactory ?? throw new ArgumentNullException(nameof(migrationScaffolderFactory)); _mergeProcessorFactory = mergeProcessorFactory ?? throw new ArgumentNullException(nameof(mergeProcessorFactory)); Serializer = serializerFactory(new ModelObjectSerializationContext(Repository.Container)); Initialize(); }
/// <summary> /// Initializes a new instance of the <see cref="ObjectRepositoryContainer{TRepository}"/> class. /// </summary> /// <param name="path">The path.</param> /// <param name="repositoryLoader">The repository loader.</param> /// <param name="computeTreeChangesFactory">The <see cref="IComputeTreeChanges"/> factory.</param> /// <param name="objectRepositoryMergeFactory">The <see cref="IObjectRepositoryMerge"/> factory.</param> /// <param name="objectRepositoryRebaseFactory">The <see cref="IObjectRepositoryRebase"/> factory.</param> /// <param name="objectRepositoryCherryPickFactory">The <see cref="IObjectRepositoryCherryPick"/> factory.</param> /// <param name="repositoryProvider">The repository provider.</param> /// <param name="hooks">The hooks.</param> /// <param name="serializerFactory">The <see cref="IObjectRepositorySerializer"/> factory.</param> /// <param name="logger">The logger.</param> public ObjectRepositoryContainer(string path, IObjectRepositoryLoader repositoryLoader, ComputeTreeChangesFactory computeTreeChangesFactory, ObjectRepositoryMergeFactory objectRepositoryMergeFactory, ObjectRepositoryRebaseFactory objectRepositoryRebaseFactory, ObjectRepositoryCherryPickFactory objectRepositoryCherryPickFactory, IRepositoryProvider repositoryProvider, GitHooks hooks, ObjectRepositorySerializerFactory serializerFactory, ILogger <ObjectRepositoryContainer> logger) { _repositoryLoader = repositoryLoader ?? throw new ArgumentNullException(nameof(repositoryLoader)); _computeTreeChangesFactory = computeTreeChangesFactory ?? throw new ArgumentNullException(nameof(computeTreeChangesFactory)); _objectRepositoryMergeFactory = objectRepositoryMergeFactory ?? throw new ArgumentNullException(nameof(objectRepositoryMergeFactory)); _objectRepositoryRebaseFactory = objectRepositoryRebaseFactory ?? throw new ArgumentNullException(nameof(objectRepositoryRebaseFactory)); _objectRepositoryCherryPickFactory = objectRepositoryCherryPickFactory ?? throw new ArgumentNullException(nameof(objectRepositoryCherryPickFactory)); _repositoryProvider = repositoryProvider ?? throw new ArgumentNullException(nameof(repositoryProvider)); _hooks = hooks ?? throw new ArgumentNullException(nameof(hooks)); _serializerFactory = serializerFactory ?? throw new ArgumentNullException(nameof(serializerFactory)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); Path = path ?? throw new ArgumentNullException(nameof(path)); Directory.CreateDirectory(path); Repositories = LoadRepositories(); _logger.ContainerCreated(path); }
internal CherryPickProcessor(ObjectRepositoryCherryPick objectRepositoryCherryPick, ComputeTreeChangesFactory computeTreeChangesFactory, ObjectRepositorySerializerFactory serializerFactory) { if (serializerFactory == null) { throw new ArgumentNullException(nameof(serializerFactory)); } _cherryPick = objectRepositoryCherryPick ?? throw new ArgumentNullException(nameof(objectRepositoryCherryPick)); _computeTreeChangesFactory = computeTreeChangesFactory ?? throw new ArgumentNullException(nameof(computeTreeChangesFactory)); _serializer = serializerFactory(new ModelObjectSerializationContext(objectRepositoryCherryPick.Repository.Container)); }
internal RebaseProcessor(ObjectRepositoryRebase objectRepositoryRebase, ComputeTreeChangesFactory computeTreeChangesFactory, ObjectRepositorySerializerFactory serializerFactory) { if (serializerFactory == null) { throw new ArgumentNullException(nameof(serializerFactory)); } _rebase = objectRepositoryRebase ?? throw new ArgumentNullException(nameof(objectRepositoryRebase)); _computeTreeChangesFactory = computeTreeChangesFactory ?? throw new ArgumentNullException(nameof(computeTreeChangesFactory)); _serializer = serializerFactory(new ModelObjectSerializationContext(objectRepositoryRebase.Repository.Container)); }
public ModelDataAccessor(Type type, ConstructorParameterBinding.Factory constructorParameterBindingFactory, ObjectRepositorySerializerFactory repositorySerializerFactory, IConstructorSelector constructorSelector) { if (constructorParameterBindingFactory == null) { throw new ArgumentNullException(nameof(constructorParameterBindingFactory)); } if (repositorySerializerFactory == null) { throw new ArgumentNullException(nameof(repositorySerializerFactory)); } if (constructorSelector == null) { throw new ArgumentNullException(nameof(constructorSelector)); } Type = type ?? throw new ArgumentNullException(nameof(type)); _childProperties = new Lazy <IImmutableList <ChildPropertyInfo> >(GetChildProperties); _modifiableProperties = new Lazy <IImmutableList <ModifiablePropertyInfo> >(GetModifiableProperties); _constructorBinding = new Lazy <ConstructorParameterBinding>(() => { var constructors = from c in Type.GetTypeInfo().GetConstructors() select constructorParameterBindingFactory(c); return(constructorSelector.SelectConstructorBinding(Type, constructors.ToArray())); }); repositorySerializerFactory().ValidateSerializable(Type); }