CK.Monitoring.GrandOutputConfiguration.FillRoute C# (CSharp) Method

FillRoute() private method

private FillRoute ( IActivityMonitor monitor, System.Xml.Linq.XElement xml, RouteConfiguration route ) : RouteConfiguration
monitor IActivityMonitor
xml System.Xml.Linq.XElement
route CK.RouteConfig.RouteConfiguration
return CK.RouteConfig.RouteConfiguration
        RouteConfiguration FillRoute( IActivityMonitor monitor, XElement xml, RouteConfiguration route )
        {
            route.ConfigData = new GrandOutputChannelConfigData( xml );
            foreach( var e in xml.Elements() )
            {
                switch( e.Name.LocalName )
                {
                    case "Channel":
                        route.DeclareRoute( FillSubRoute( monitor, e, new SubRouteConfiguration( e.AttributeRequired( "Name" ).Value, null ) ) );
                        break;
                    case "Parallel": 
                    case "Sequence":
                    case "Add": DoSequenceOrParallelOrAdd( monitor, a => route.AddAction( a ), e );
                        break;
                    default: throw new XmlException( "Element name must be <Add>, <Parallel>, <Sequence> or <Channel>." + e.GetLineColumnString() );
                }
            }
            return route;
        }