private void setValueForOtherLocales(CmsObject cms, I_CmsXmlContentValue value, String requiredParent) {
if (!value.isSimpleType()) {
throw new IllegalArgumentException();
}
for (Locale locale : getLocales()) {
if (locale.equals(value.getLocale())) {
continue;
}
String valuePath = value.getPath();
if (CmsStringUtil.isEmptyOrWhitespaceOnly(requiredParent) || hasValue(requiredParent, locale)) {
ensureParentValues(cms, valuePath, locale);
if (hasValue(valuePath, locale)) {
I_CmsXmlContentValue localeValue = getValue(valuePath, locale);
localeValue.setStringValue(cms, value.getStringValue(cms));
} else {
int index = CmsXmlUtils.getXpathIndexInt(valuePath) - 1;
I_CmsXmlContentValue localeValue = addValue(cms, valuePath, locale, index);
localeValue.setStringValue(cms, value.getStringValue(cms));
}
}
}
}