public interface IMybatisXMLElement<T extends IMybatisXMLElement> { String getElementTag(); /** * 搞定文本 addElement(new TextElement("SELECT *")) * 搞定If addElement(new IfElement("username != null")); * 搞定 Where addElement(new WhereElement()); * ... * * @param element */ void addElement(T element); List<T> getElements(); String toText(); void beginTag(Writer output); void writeBody(Writer output); void endTag(Writer output); }
没有所谓的语法树,语法的结构就按Bean的结构存储,每个Element都有自己的处理XML输出的方法,由beginTag,writeBody,endTag完成。。。