Described described = dst.adapt(Described.class);
described.setName(src.getLabel());
described.setDescription(src.getDescription());
Redirectable redirectable = dst.adapt(Redirectable.class);
Map<String, Redirect> redirects = redirectable.getRedirects();
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());