in camel-upgrade-recipes/src/main/java/org/apache/camel/upgrade/camel40/xml/XmlDslRecipe.java [70:103]
public TreeVisitor<?, ExecutionContext> getVisitor() {
return new AbstractCamelXmlVisitor() {
@Override
public Xml.Tag doVisitTag(final Xml.Tag tag, final ExecutionContext ctx) {
Xml.Tag t = super.doVisitTag(tag, ctx);
if (ROUTE_XPATH_MATCHER.matches(getCursor())) {
String d = ctx.pollMessage("description");
if (d != null) {
return t.withAttributes(ListUtils.concat(t.getAttributes(),
autoFormat(new Xml.Attribute(
Tree.randomId(), "", Markers.EMPTY,
new Xml.Ident(Tree.randomId(), "", Markers.EMPTY, "description"),
"",
autoFormat(new Xml.Attribute.Value(
Tree.randomId(), "", Markers.EMPTY,
Xml.Attribute.Value.Quote.Double,
d), ctx)),
ctx)));
}
}
if (ROUTE_DESCRIPTION_XPATH_MATCHER.matches(getCursor())) {
//save description into context for parent
t.getValue().ifPresent(s -> ctx.putMessage("description", s));
//skip tag
return null;
}
return t;
}
};
}