public XPathNodeIterator LookupSourceSignalMap( string sourceName )
{
XPathNodeIterator navigator = null;
XmlDocument xPathDocument = new XmlDocument();
XmlNamespaceManager mngr = new XmlNamespaceManager(new NameTable());
if (_sourceSignalMap.ContainsKey(sourceName))
{
SourceSignalMapBean sourceSignal = _sourceSignalMap[sourceName];
Dictionary<object, SignalMappingNounModifier> modifiers = _signalMap[sourceName];
XmlElement signalElement = xPathDocument.CreateElement( "signal" );
signalElement.SetAttribute("sourceName", sourceSignal.sourceName );
signalElement.SetAttribute("sourceType", sourceSignal.sourceType);
signalElement.SetAttribute("targetName", sourceSignal.targetName);
signalElement.SetAttribute("targetType", sourceSignal.targetType);
foreach (var signalMappingNounModifier in modifiers.Values)
{
XmlElement signalAttribute = xPathDocument.CreateElement("signal_attribute");
string name = signalMappingNounModifier.Name;
string value = signalMappingNounModifier.Attribute;
string qualifier = signalMappingNounModifier.Qualifier;
string type = signalMappingNounModifier.Type;
string defaultValue = signalMappingNounModifier.Default;
string suffix = signalMappingNounModifier.Suffix;
signalAttribute.SetAttribute("name", name);
signalAttribute.SetAttribute("value", value);
signalAttribute.SetAttribute("qualifier", qualifier);
signalAttribute.SetAttribute("type", type);
signalAttribute.SetAttribute("default", defaultValue);
signalAttribute.SetAttribute("suffix", suffix);
signalElement.AppendChild( signalAttribute );
}
xPathDocument.AppendChild( signalElement );
}
XPathNavigator nav = xPathDocument.CreateNavigator();
navigator = nav.Select("/", mngr);
return navigator;
}