/// <summary> /// Factory method for creating new DocumentMappers. /// </summary> /// <include file='code-documentation\members.xml' path='members/member[@name="DocumentMapper"]/entry[@name="Create"]'/> public static IDocumentMapper Create(List <DocumentedAssembly> assemblies, Mappers typeOfMapper, bool useObservableCollection, EntryCreator creator) { DocumentMapper mapper = null; switch (typeOfMapper) { case Mappers.AssemblyFirst: mapper = new AssemblyFirstDocumentMapper(assemblies, useObservableCollection, creator); break; case Mappers.NamespaceFirst: mapper = new NamespaceFirstDocumentMapper(assemblies, useObservableCollection, creator); break; case Mappers.GroupedNamespaceFirst: default: mapper = new GroupedNamespaceDocumentMapper(assemblies, useObservableCollection, creator); break; } if (mapper == null) { throw new InvalidOperationException($"There is no implementation of {typeOfMapper} document mapper. Document could not be mapped."); } return(mapper); }
/// <summary> /// Initialises a new instance of the Document class. /// </summary> /// <param name="assemblies">The assemblies being documented.</param> /// <param name="mapperType">The type of document mapper to use to create the document map</param> /// <param name="useObservableCollection">Should the document map use an observable collection.</param> /// <param name="creator">The EntryCreator to use to create new Entries in the Map</param> public Document(List <DocumentedAssembly> assemblies, Mappers mapperType, bool useObservableCollection, EntryCreator creator) { _mapper = DocumentMapper.Create(assemblies, mapperType, useObservableCollection, creator); _mapper.PreEntryAdded += new EventHandler <PreEntryAddedEventArgs>(PreEntryAdded); _assemblies = assemblies; }