in src/framework/taespecifier.cpp [993:1089]
void AnalysisEngineDescription::appendConfigParamsAndSettingsToXMLBuffer(icu::UnicodeString & s) const {
AnalysisEngineMetaData const & md = * getAnalysisEngineMetaData();
// config params
if (md.hasGroups()) {
s.append("<configurationParameters");
if (md.hasDefaultGroup()) {
s.append(" defaultGroup=\"");
s.append( md.iv_defaultGroup );
s.append("\"");
}
s.append(" searchStrategy=\"");
AnalysisEngineMetaData::EnSearchStrategy searchStrategy = md.getSearchStrategy();
switch (searchStrategy) {
case AnalysisEngineMetaData::DEFAULT_FALLBACK:
s.append("default_fallback");
break;
case AnalysisEngineMetaData::LANGUAGE_FALLBACK:
s.append("language_fallback");
break;
case AnalysisEngineMetaData::NONE:
s.append("none");
break;
}
s.append("\">");
AnalysisEngineMetaData::TyConfigGroup const & confGroups = md.iv_configurationGroups;
assert( confGroups.find(md.CONFIG_GROUP_NAME_WHEN_NO_GROUPS) == confGroups.end() );
AnalysisEngineMetaData::TyConfigGroup::const_iterator cit;
for ( cit = confGroups.begin(); cit != confGroups.end(); ++cit) {
icu::UnicodeString const & confGroupName = (*cit).first;
ConfigurationGroup const & confGroup = (*cit).second;
bool common = ( confGroupName == md.CONFIG_GROUP_NAME_COMMON_PARMS);
if (common) {
s.append("<commonParameters>");
} else {
s.append("<configurationGroup names=\"");
s.append(confGroupName);
s.append("\">");
}
appendConfigGroupToXMLBuffer( confGroup, s);
if (common) {
s.append("</commonParameters>");
} else {
s.append("</configurationGroup>");
}
}
s.append("</configurationParameters>");
} else {
s.append("<configurationParameters>");
AnalysisEngineMetaData::TyConfigGroup const & confGroups = md.iv_configurationGroups;
assert( confGroups.find(md.CONFIG_GROUP_NAME_COMMON_PARMS) == confGroups.end() );
if (confGroups.size() > 0) {
assert( confGroups.size() == 1);
AnalysisEngineMetaData::TyConfigGroup::const_iterator cit = confGroups.find(md.CONFIG_GROUP_NAME_WHEN_NO_GROUPS);
assert( cit != confGroups.end() );
appendConfigGroupToXMLBuffer( (*cit).second, s);
}
s.append("</configurationParameters>");
}
s.append("<configurationParameterSettings>");
// config param settings
if (md.hasGroups()) {
AnalysisEngineMetaData::TyConfigSettings const & confSettings = md.iv_configurationSettings;
AnalysisEngineMetaData::TyConfigSettings::const_iterator cit;
for (cit = confSettings.begin(); cit != confSettings.end(); ++cit) {
icu::UnicodeString const & groupName = (*cit).first;
SettingsForGroup const & settings = (*cit).second;
s.append("<settingsForGroup name=\"");
s.append(groupName);
s.append("\">");
appendConfigGroupSettingsToXMLBuffer(settings, s);
s.append("</settingsForGroup>");
}
} else {
AnalysisEngineMetaData::TyConfigSettings const & confSettings = md.iv_configurationSettings;
if (confSettings.size() > 0) {
assert( confSettings.size() == 1);
AnalysisEngineMetaData::TyConfigSettings::const_iterator cit = confSettings.find(md.CONFIG_GROUP_NAME_WHEN_NO_GROUPS);
assert( cit != confSettings.end() );
appendConfigGroupSettingsToXMLBuffer( (*cit).second, s);
}
}
s.append("</configurationParameterSettings>");
}