/**
*
*/
package org.jboss.windup.reporting.xml;
import static org.joox.JOOX.$;
import java.util.List;
import org.apache.commons.lang3.StringUtils;
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.jboss.windup.reporting.model.QuickfixType;
import org.jboss.windup.reporting.quickfix.Quickfix;
import org.w3c.dom.Element;
/**
* @author <a href="mailto:hotmana76@gmail.com">Marek Novotny</a>
*
*/
@NamespaceElementHandler(elementName = "quickfix", namespace = RuleProviderHandler.WINDUP_RULE_NAMESPACE)
public class QuickfixHandler implements ElementHandler<Object>
{
@Override
public Quickfix processElement(ParserContext handlerManager, Element element) throws ConfigurationException
{
String name = $(element).attr("name");
String quickfixTypeStr = $(element).attr("type");
Quickfix quickfix = new Quickfix();
quickfix.setName(name);
quickfix.setType(QuickfixType.valueOf(quickfixTypeStr));
List<Element> children = $(element).children().get();
for (Element child : children)
{
switch (child.getNodeName())
{
case "newline":
quickfix.setNewline(StringUtils.trim(child.getFirstChild().getNodeValue()));
break;
case "replacement":
quickfix.setReplacementStr(StringUtils.trim(child.getFirstChild().getNodeValue()));
break;
case "search":
quickfix.setSearchStr(StringUtils.trim(child.getFirstChild().getNodeValue()));
break;
case "implementationID":
quickfix.setTransformationID(StringUtils.trim(child.getFirstChild().getNodeValue()));
}
}
return quickfix;
}
}