00001 /*************************************************************************** 00002 DDLString.cc - description 00003 ------------------- 00004 begin : Friday Nov. 21, 2003 00005 email : case@ucdhep.ucdavis.edu 00006 ***************************************************************************/ 00007 00008 00009 00010 00011 // Parser parts 00012 #include "DDLString.h" 00013 #include "DDLElementRegistry.h" 00014 00015 // other DD parts 00016 #include "DetectorDescription/Core/interface/DDString.h" 00017 #include "DetectorDescription/Base/interface/DDdebug.h" 00018 #include "DetectorDescription/Base/interface/DDException.h" 00019 #include "CLHEP/Units/SystemOfUnits.h" 00020 #include "DetectorDescription/ExprAlgo/interface/ExprEvalSingleton.h" 00021 00022 #include <map> 00023 #include <string> 00024 00025 DDLString::DDLString() 00026 { 00027 } 00028 00029 DDLString::~DDLString() 00030 { 00031 } 00032 00033 void DDLString::preProcessElement (const std::string& name, const std::string& nmspace) 00034 { 00035 } 00036 00037 void DDLString::processElement (const std::string& name, const std::string& nmspace) 00038 { 00039 DCOUT_V('P', "DDLString::processElement started"); 00040 if (parent() == "ConstantsSection" || parent() == "DDDefinition") 00041 { 00042 // I do not like "newing" things without my control. But this is 00043 // the only way I was able to get this to work. 00044 00045 std::string * ts = new std::string((getAttributeSet().find("value"))->second); 00046 DDName ddn = getDDName(nmspace); 00047 DDString (ddn 00048 , ts 00049 ); 00050 00051 clear(); 00052 } 00053 00054 DCOUT_V('P', "DDLString::processElement completed"); 00055 } 00056