public TreeVisitor getVisitor()

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