KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > ibatis > sqlmap > engine > mapping > sql > dynamic > elements > BaseTagHandler


1 /*
2  * Copyright 2004 Clinton Begin
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */

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 JavaDoc parameterObject) {
21     ctx.pushRemoveFirstPrependMarker(tag);
22     return SqlTagHandler.INCLUDE_BODY;
23   }
24
25   public int doEndFragment(SqlTagContext ctx, SqlTag tag, Object JavaDoc parameterObject, StringBuffer JavaDoc 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 JavaDoc parameterObject, StringBuffer JavaDoc 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