import {SharedChangeList, ArrayChangeRecordIterator} from "../RepositoryApi";

import {Subject} from 'rxjs/Subject';
import {ChangeListShareInfo, SharingPlatformSetupInfo} from "../SharingAdaptor";
import {ChangeRecordIterator, ChangeError, ChangeRecord} from "../ChangeModel";
/**
 * Created by Papa on 12/14/2016.
 */

export class StubChangeList implements SharedChangeList {

	_errorSubject = new Subject<ChangeError>();
	_changesAddedRemotelySubject = new Subject<ChangeRecordIterator>();

	constructor(
		public shareInfo: ChangeListShareInfo,
		private platformInfo: SharingPlatformSetupInfo
	) {
	}

	async loadFromRecord( changeRecord: ChangeRecord ): Promise<ChangeRecordIterator> {
		return new ArrayChangeRecordIterator([]);
	}

	async addChanges( changeRecords: ChangeRecord[] ): Promise<void> {
	}

	errorSubject(): Subject<ChangeError> {
		return this._errorSubject;
	}

	changesAddedRemotelySubject(): Subject<ChangeRecordIterator> {
		return this._changesAddedRemotelySubject;
	}

}