public Object invoke()

in activemq-kahadb-exporter/src/main/java/org/apache/activemq/cli/artemis/schema/ArtemisJournalMarshaller.java [122:167]


        public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
           String m = method.getName();
           boolean useCData = false;

           switch (m) {
              case "writeStartElement":
                 target.writeCharacters(LINE_SEPARATOR);
                 target.writeCharacters(indent(depth));

                 depth++;
                 break;
              case "writeEndElement":
                 depth--;
                 if (wrap) {
                    target.writeCharacters(LINE_SEPARATOR);
                    target.writeCharacters(indent(depth));
                 }
                 wrap = true;
                 break;
              case "writeEmptyElement":
              case "writeCData":
                 target.writeCharacters(LINE_SEPARATOR);
                 target.writeCharacters(indent(depth));
                 break;
              case "writeCharacters":
                 useCData = XML_CHARS.matcher( (String)args[0] ).find();
                 if (!useCData) {
                     wrap = false;
                     break;
                 } else {
                     target.writeCharacters(LINE_SEPARATOR);
                     target.writeCharacters(indent(depth));
                     break;
                 }
           }

           if (useCData) {
               Method cdata = XMLStreamWriter.class.getMethod("writeCData", String.class);
               args[0] = ((String)args[0]).replace("<![CDATA[", "").replace("]]>", "");
               cdata.invoke(target, args);
           } else {
               method.invoke(target, args);
           }

           return null;
        }