1 16 package com.ibatis.sqlmap.engine.mapping.sql.dynamic.elements; 17 18 public abstract class BaseTagHandler implements SqlTagHandler { 19 20 public int doStartFragment(SqlTagContext ctx, SqlTag tag, Object parameterObject) { 21 ctx.pushRemoveFirstPrependMarker(tag); 22 return SqlTagHandler.INCLUDE_BODY; 23 } 24 25 public int doEndFragment(SqlTagContext ctx, SqlTag tag, Object parameterObject, StringBuffer bodyContent) { 26 if (tag.isCloseAvailable() && !(tag.getHandler() instanceof IterateTagHandler)) { 27 if (bodyContent.toString().trim().length() > 0) { 28 bodyContent.append(tag.getCloseAttr()); 29 } 30 } 31 return SqlTagHandler.INCLUDE_BODY; 32 } 33 34 public void doPrepend(SqlTagContext ctx, SqlTag tag, Object parameterObject, StringBuffer bodyContent) { 35 36 if (tag.isOpenAvailable() && !(tag.getHandler() instanceof IterateTagHandler)) { 37 if (bodyContent.toString().trim().length() > 0) { 38 bodyContent.insert(0, tag.getOpenAttr()); 39 } 40 } 41 42 if (tag.isPrependAvailable()) { 43 if (bodyContent.toString().trim().length() > 0) { 44 if (tag.getParent() != null && ctx.peekRemoveFirstPrependMarker(tag)) { 45 ctx.disableRemoveFirstPrependMarker(); 46 }else { 47 bodyContent.insert(0, tag.getPrependAttr()); 48 } 49 } 50 } 51 52 } 53 } 54 | Popular Tags |