00001 #include "emcObjectFillerManager.h" 00002 #include "emcObjectFillerRegistry.h" 00003 #include "emcObjectFiller.h" 00004 #include <iostream> 00005 #include "TClass.h" 00006 00007 using namespace std; 00008 00009 int emcObjectFillerManager::fVerbose=0; 00010 00011 //_____________________________________________________________________________ 00012 bool 00013 emcObjectFillerManager::fill(PHCompositeNode* topNode, 00014 PHObject& dest) 00015 00016 { 00017 emcObjectFiller* converter = 00018 emcObjectFillerRegistry::findFiller(topNode,dest,fVerbose); 00019 00020 if ( !converter ) 00021 { 00022 if ( fVerbose ) 00023 { 00024 cerr << "emcObjectFillerManager::fill : did not find " 00025 << " a suitable filler for object of class " 00026 << dest.ClassName() 00027 << endl; 00028 } 00029 return false; 00030 } 00031 else 00032 { 00033 if ( fVerbose ) 00034 { 00035 cout << "emcObjectFillerManager::fill : " 00036 << "I'm asking this objectfiller to do the job :"; 00037 converter->identify(cout); 00038 cout << endl; 00039 } 00040 return converter->fill(topNode,dest,fVerbose); 00041 } 00042 } 00043 00044 //_____________________________________________________________________________ 00045 bool 00046 emcObjectFillerManager::isFillerAvailable(PHObject& dest) 00047 { 00048 emcObjectFiller* converter = 00049 emcObjectFillerRegistry::findFiller(dest,fVerbose); 00050 if ( converter ) 00051 { 00052 return true; 00053 } 00054 else 00055 { 00056 return false; 00057 } 00058 }