private static IStoreTimelineValues BuildStorage(ITimeline timeline, Type type) { if (typeof(IDictionaryTimelineStorage<DatasetId, DatasetProxy>).IsAssignableFrom(type)) { return new HistoryObjectDictionaryHistory<DatasetId, DatasetProxy>(id => timeline.IdToObject<DatasetProxy>(id)); } if (typeof(IBidirectionalGraphHistory<DatasetId, Edge<DatasetId>>).IsAssignableFrom(type)) { return new BidirectionalGraphHistory<DatasetId, Edge<DatasetId>>(); } if (typeof(IVariableTimeline<string>).IsAssignableFrom(type)) { return new ValueHistory<string>(); } if (typeof(IVariableTimeline<NetworkIdentifier>).IsAssignableFrom(type)) { return new ValueHistory<NetworkIdentifier>(); } throw new UnknownHistoryMemberTypeException(); }
private static IStoreTimelineValues BuildStorage(ITimeline timeline, Type type) { if (typeof(IDictionaryTimelineStorage <DatasetId, DatasetProxy>).IsAssignableFrom(type)) { return(new HistoryObjectDictionaryHistory <DatasetId, DatasetProxy>(id => timeline.IdToObject <DatasetProxy>(id))); } if (typeof(IBidirectionalGraphHistory <DatasetId, Edge <DatasetId> >).IsAssignableFrom(type)) { return(new BidirectionalGraphHistory <DatasetId, Edge <DatasetId> >()); } if (typeof(IVariableTimeline <string>).IsAssignableFrom(type)) { return(new ValueHistory <string>()); } if (typeof(IVariableTimeline <NetworkIdentifier>).IsAssignableFrom(type)) { return(new ValueHistory <NetworkIdentifier>()); } throw new UnknownHistoryMemberTypeException(); }