using System; using System.Collections.Generic; namespace Deltares.Maps { public interface IReader { IEnumerable Read(); } public interface IFileReader : IReader { TFile File { get; } } public abstract class FileReader : IFileReader // note: restricted to geometry stuff for now, this can change in the future where TFile : class, IFile where TObject : IFeature { private readonly TFile file; protected FileReader(TFile file) { if (file == null) { throw new ArgumentNullException("file"); } this.file = file; } #region Implementation of IFileReader public TFile File { get { return file; } } public abstract IEnumerable Read(); #endregion } }