List<RedirectData> redirectsData = src.getRedirects();
redirects.clear(); // clear the redirects map since we need to rebuild it based on the new redirects
if (src.getRedirects() != null) {
for (RedirectData redirectData : redirectsData) {
Redirect redirect = redirectable.createRedirect();
redirects.put(redirectData.getRedirectName(), redirect);
redirect.setName(redirectData.getRedirectName());
redirect.setSite(redirectData.getRedirectSiteName());
redirect.setEnabled(redirectData.isEnabled());
if (redirectData.getConditions() != null) {
redirect.getConditions().clear(); // clear the map so that we can rebuild it
for (RedirectConditionData conditionData : redirectData.getConditions()) {
Condition condition = redirect.createCondition();
redirect.getConditions().put(conditionData.getRedirectName(), condition);
buildCondition(conditionData, condition);
}
}
if (redirectData.getMappings() != null) {
Mappings mappings = redirect.getMapping();
if (redirect.getMapping() == null) {
mappings = redirect.createMapping();
redirect.setMapping(mappings);
}
buildMappings(redirectData.getMappings(), mappings);
}
}
}