package org.jboss.windup.config.parser.metadata; import static org.joox.JOOX.$; import java.util.ArrayList; import java.util.List; import org.jboss.forge.furnace.addons.AddonId; import org.jboss.windup.config.exception.ConfigurationException; import org.jboss.windup.config.parser.ElementHandler; import org.jboss.windup.config.parser.NamespaceElementHandler; import org.jboss.windup.config.parser.ParserContext; import org.jboss.windup.config.parser.xml.RuleProviderHandler; import org.w3c.dom.Element; @NamespaceElementHandler(elementName = "dependencies", namespace = RuleProviderHandler.WINDUP_RULE_NAMESPACE) public class MetadataAddonDependenciesHandler implements ElementHandler<List<AddonId>> { @Override public List<AddonId> processElement(ParserContext context, Element element) throws ConfigurationException { List<Element> children = $(element).children().get(); List<AddonId> addonIds = new ArrayList<>(); for (Element child : children) { Object result = context.processElement(child); switch ($(child).tag()) { case "addon": addonIds.add((AddonId)result); break; } } return addonIds; } }