#include <G4AttValueFilterT.hh>
Inheritance diagram for G4AttValueFilterT< T, ConversionErrorPolicy >:
Public Member Functions | |
G4AttValueFilterT () | |
virtual | ~G4AttValueFilterT () |
G4bool | Accept (const G4AttValue &attVal) const |
G4bool | GetValidElement (const G4AttValue &input, G4String &interval) const |
virtual void | PrintAll (std::ostream &ostr) const |
virtual void | Reset () |
void | LoadIntervalElement (const G4String &input) |
void | LoadSingleValueElement (const G4String &input) |
Definition at line 71 of file G4AttValueFilterT.hh.
G4AttValueFilterT< T, ConversionErrorPolicy >::G4AttValueFilterT | ( | ) |
G4AttValueFilterT< T, ConversionErrorPolicy >::~G4AttValueFilterT | ( | ) | [virtual] |
G4bool G4AttValueFilterT< T, ConversionErrorPolicy >::Accept | ( | const G4AttValue & | attVal | ) | const [virtual] |
Implements G4VAttValueFilter.
Definition at line 142 of file G4AttValueFilterT.hh.
References G4ConversionUtils::Convert(), and G4AttValue::GetValue().
00143 { 00144 T value; 00145 00146 G4String input = attValue.GetValue(); 00147 if (!G4ConversionUtils::Convert(input, value)) ConversionErrorPolicy::ReportError(input, "Invalid format. Was the input data formatted correctly ?"); 00148 00149 typename SingleValueMap::const_iterator iterValues = 00150 std::find_if(fSingleValueMap.begin(), fSingleValueMap.end(), IsEqual<T>(value)); 00151 00152 if (iterValues != fSingleValueMap.end()) return true; 00153 00154 typename IntervalMap::const_iterator iterIntervals = 00155 std::find_if(fIntervalMap.begin(), fIntervalMap.end(), InInterval<T>(value)); 00156 00157 if (iterIntervals != fIntervalMap.end()) return true; 00158 00159 return false; 00160 }
G4bool G4AttValueFilterT< T, ConversionErrorPolicy >::GetValidElement | ( | const G4AttValue & | input, | |
G4String & | interval | |||
) | const [virtual] |
Implements G4VAttValueFilter.
Definition at line 114 of file G4AttValueFilterT.hh.
References G4ConversionUtils::Convert(), G4String::first(), and G4AttValue::GetValue().
00115 { 00116 T value; 00117 00118 G4String input = attValue.GetValue(); 00119 if (!G4ConversionUtils::Convert(input, value)) ConversionErrorPolicy::ReportError(input, "Invalid format. Was the input data formatted correctly ?"); 00120 00121 typename SingleValueMap::const_iterator iterValues = 00122 std::find_if(fSingleValueMap.begin(), fSingleValueMap.end(), IsEqual<T>(value)); 00123 00124 if (iterValues != fSingleValueMap.end()) { 00125 element = iterValues->first; 00126 return true; 00127 } 00128 00129 typename IntervalMap::const_iterator iterIntervals = 00130 std::find_if(fIntervalMap.begin(), fIntervalMap.end(), InInterval<T>(value)); 00131 00132 if (iterIntervals != fIntervalMap.end()) { 00133 element = iterIntervals->first; 00134 return true; 00135 } 00136 00137 return false; 00138 }
void G4AttValueFilterT< T, ConversionErrorPolicy >::LoadIntervalElement | ( | const G4String & | input | ) | [virtual] |
Implements G4VAttValueFilter.
Definition at line 164 of file G4AttValueFilterT.hh.
References G4ConversionUtils::Convert().
00165 { 00166 T min; 00167 T max; 00168 00169 if (!G4ConversionUtils::Convert(input, min, max)) ConversionErrorPolicy::ReportError(input, "Invalid format. Was the input data formatted correctly ?"); 00170 00171 std::pair<T, T> myPair(min, max); 00172 fIntervalMap[input] = myPair; 00173 }
void G4AttValueFilterT< T, ConversionErrorPolicy >::LoadSingleValueElement | ( | const G4String & | input | ) | [virtual] |
Implements G4VAttValueFilter.
Definition at line 177 of file G4AttValueFilterT.hh.
References G4ConversionUtils::Convert().
00178 { 00179 T output; 00180 00181 if (!G4ConversionUtils::Convert(input, output)) ConversionErrorPolicy::ReportError(input, "Invalid format. Was the input data formatted correctly ?"); 00182 00183 fSingleValueMap[input] = output; 00184 }
void G4AttValueFilterT< T, ConversionErrorPolicy >::PrintAll | ( | std::ostream & | ostr | ) | const [virtual] |
Implements G4VAttValueFilter.
Definition at line 188 of file G4AttValueFilterT.hh.
References G4VFilter< G4AttValue >::Name().
00189 { 00190 ostr<<"Printing data for filter: "<<Name()<<std::endl; 00191 00192 ostr<<"Interval data:"<<std::endl; 00193 00194 typename IntervalMap::const_iterator iterIntervals = fIntervalMap.begin(); 00195 00196 while (iterIntervals != fIntervalMap.end()) { 00197 ostr<<iterIntervals->second.first<<" : "<<iterIntervals->second.second<<std::endl; 00198 iterIntervals++; 00199 } 00200 00201 ostr<<"Single value data:"<<std::endl; 00202 00203 typename SingleValueMap::const_iterator iterValues = fSingleValueMap.begin(); 00204 00205 while (iterValues != fSingleValueMap.end()) { 00206 ostr<<iterValues->second<<std::endl; 00207 iterValues++; 00208 } 00209 }
void G4AttValueFilterT< T, ConversionErrorPolicy >::Reset | ( | ) | [virtual] |