if (defaultSettingsElement != null) {
parseDefaultSettings(defaultSettingsElement, parserContext, builder);
}
// mails/stores/transports
ElementSelector mailSelector = and(sameNs(element), name("mail"));
ElementSelector storeSelector = and(sameNs(element), name("mail-store"));
ElementSelector transportSelector = and(sameNs(element), name("mail-transport"));
Map<Object, Object> mails = createManagedMap(element, parserContext);
Map<Object, Object> mailStores = createManagedMap(element, parserContext);
Map<Object, Object> mailTransports = createManagedMap(element, parserContext);
for (Element subElement : subElements(element)) {
Map<Object, Object> container;
BeanDefinitionHolder holder;
if (mailSelector.accept(subElement)) {
holder = parseMail(subElement, parserContext, builder.getRawBeanDefinition());
container = mails;
} else if (storeSelector.accept(subElement)) {
holder = parseMailStore(subElement, parserContext, builder.getRawBeanDefinition());
container = mailStores;
} else if (transportSelector.accept(subElement)) {
holder = parseMailTransport(subElement, parserContext, builder.getRawBeanDefinition());
container = mailTransports;
} else {
continue;
}