using System; using System.Collections.Generic; namespace ZeroLevel.DocumentObjectModel { public interface IMetadataReader<T> { void ReadId(Guid Id); void ReadSummary(string summary); void ReadHeader(string header); void EnterIdentifier(Identifier identifier); void ReadVersion(int version); void ReadTimestamp(long timestamp); void ReadDateLabel(string datelabel); void LeaveIdentifier(Identifier identifier); void EnterTagsBlock(TagMetadata tagBlock); void EnterKeywords(IEnumerable<string> keywords); void ReadKeyword(string keyword, int order); void LeaveKeywords(IEnumerable<string> keywords); void EnterPlaces(IEnumerable<Tag> places); void ReadPlace(Tag place, int order); void LeavePlaces(IEnumerable<Tag> places); void EnterCompanies(IEnumerable<Tag> companies); void ReadCompany(Tag company, int order); void LeaveCompanies(IEnumerable<Tag> companies); void EnterPersons(IEnumerable<Tag> persons); void ReadPerson(Tag person, int order); void LeavePersons(IEnumerable<Tag> persons); void LeaveTagsBlock(TagMetadata tagBlock); void EnterDescriptioveBlock(DescriptiveMetadata metadata); void ReadAuthors(string byline); void ReadCopiright(string copyright); void ReadCreated(DateTime created); void ReadLanguage(string language); void ReadPriority(Priority priority); void ReadSource(Agency source); void ReadPublisher(Agency publisher); void ReadOriginal(Tag original); void EnterHeaders(IEnumerable<Header> headers); void ReadHeader(Header header, int order); void LeaveHeaders(IEnumerable<Header> headers); void LeaveDescriptioveBlock(DescriptiveMetadata metadata); void EnterAsides(IEnumerable<AttachContent> asides); void ReadAside(AttachContent aside, int order); void LeaveAsides(IEnumerable<AttachContent> asides); void EnterAssotiations(IEnumerable<Assotiation> assotiations); void ReadAssotiation(Assotiation assotiation, int order); void LeaveAssotiations(IEnumerable<Assotiation> assotiations); void EnterCategories(IEnumerable<Category> categories); void ReadCategory(Category category, int order); void LeaveCategories(IEnumerable<Category> categories); T Complete(); } }