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;
    }
    
}
