24 #include <basic/Tracer.hh>
27 #include <utility/tag/Tag.hh>
28 #include <utility/string_util.hh>
33 #include <boost/foreach.hpp>
36 #include <utility/vector0.hh>
37 #include <utility/vector1.hh>
39 #define foreach BOOST_FOREACH
41 static basic::Tracer
TR(
"protocols.jd2.parser.FragSetLoader" );
56 using namespace utility::tag;
61 typedef std::map< std::string, FragmentReaderOP > FragmentReaderMap;
63 FragmentReaderMap frag_readers_map;
64 if ( tag->hasTag(
"FRAGMENTS" ) ) {
65 foreach(
TagPtr tag, tag->getTag(
"FRAGMENTS" )->getTags()){
67 runtime_assert( !name.empty() );
69 frag_readers_map[ name ] = frop;
72 TR <<
"No tag of FRAGMENTS" << std::endl;
73 runtime_assert(
false );
76 foreach(
TagPtr tag, tag->getTags() ){
78 if( name ==
"FRAGMENTS" )
continue;
82 runtime_assert( !name.empty() && frag_name !=
"" );
87 std::map< std::string, FragmentReaderOP >::const_iterator itr;
88 itr = frag_readers_map.find( fname );
89 if ( itr != frag_readers_map.end() ){
91 frop->apply( fragset );
93 TR <<
"frag_name " << fname <<
" does not exist." << std::endl;
94 runtime_assert(
false );
97 runtime_assert( ! fragset->nr_frames() == 0 );
98 data.
add(
"fragsets", name, fragset );
100 if( !output.empty() ){