/// <summary> /// Looks up a filter by its name. /// </summary> /// <param name="filterName">The name of the filter that we're looking for.</param> /// <returns>Returns the filter, or null of the specified filter name did not exist.</returns> public DataFileDef GetFilterByName(string filterName) { DataFileDef returnValue = null; m_dataFileDefs.TryGetValue(filterName, out returnValue); return(returnValue); }
public FileGraph ApplyFilterToFile(EmbeddedFile file, string filterName, IParserOutput output) { if (file == null || filterName == null || output == null) { throw new ArgumentException("Invalid parameters specified."); } // lookup the filter with the specified name DataFileDef filter = m_mapping.GetFilterByName(filterName); if (filter == null) { output.HandleFatalError("The specified filter does not exist."); } FileGraph graph = new FileGraph(file.FileId); try { // open the input file file.PrepareFileForReading(); // create a root node in the graph graph.RootNode = new GraphNode("Root node", NodeType.Complex, file.Position); foreach (object filterObject in filter.Items) { DecodeEntry(graph.RootNode, filterObject, output, file); } graph.RootNode.FilePositionEnd = file.Position; graph.UpdateEndPositionOfNodes(); } catch (Exception ex) { output.HandleFatalError("Unexpected exception: " + ex.Message); } finally { file.FileReadingComplete(); } return(graph); }