// -----------------------------------------------------------------------------
// Name: TransitiveReductionFilter::TransitiveReductionFilter
// Created: SLI 2010-09-08
// -----------------------------------------------------------------------------
TransitiveReductionFilter::TransitiveReductionFilter( const Visitable< DependencyVisitor_ABC >& metric, const Filter_ABC& filter )
    : filter_( filter )
{
    metric.Apply( *this );
    colormap_.resize( labels_.size(), boost::white_color );
    BOOST_FOREACH( const T_Labels::value_type& label, labels_ )
    {
        if( filter_.Check( label.second ) )
        {
            boost::bfs_visitor< boost::null_visitor > visitor;
            boost::queue< T_Graph::vertex_descriptor > buffer;
            boost::iterator_property_map< T_ColorMap::iterator, boost::identity_property_map > propertymap( colormap_.begin(), boost::identity_property_map() );
            boost::breadth_first_visit( graph_.graph(), graph_.vertex( label.second ), buffer, visitor, propertymap );
        }
    }
}
// -----------------------------------------------------------------------------
// Name: GraphMLSerializer constructor
// Created: SLI 2012-07-09
// -----------------------------------------------------------------------------
GraphMLSerializer::GraphMLSerializer( const Visitable< DependencyVisitor_ABC >& dependencies, const Visitable< UnitObserver_ABC >& units )
{
    units.Apply( *this );
    dependencies.Apply( *this );
}
// -----------------------------------------------------------------------------
// Name: StronglyConnectedComponentsSerializer constructor
// Created: SLI 2011-04-07
// -----------------------------------------------------------------------------
StronglyConnectedComponentsSerializer::StronglyConnectedComponentsSerializer( const Visitable< StronglyConnectedComponentsVisitor_ABC >& components )
{
    components.Apply( *this );
}
// -----------------------------------------------------------------------------
// Name: MetricSerializer constructor
// Created: SLI 2010-08-20
// -----------------------------------------------------------------------------
MetricSerializer::MetricSerializer( const Visitable< MetricsVisitor_ABC >& metrics )
{
    metrics.Apply( *this );
}