KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jahia > deprecated > taglibs > container > IfContainerListSizeTag


1 package org.jahia.deprecated.taglibs.container;
2
3 import java.io.IOException JavaDoc;
4 import java.util.Enumeration JavaDoc;
5
6 import javax.servlet.jsp.JspException JavaDoc;
7 import javax.servlet.jsp.JspWriter JavaDoc;
8 import javax.servlet.jsp.tagext.BodyContent JavaDoc;
9 import javax.servlet.jsp.tagext.BodyTagSupport JavaDoc;
10
11 import org.jahia.data.containers.JahiaContainerList;
12 import org.jahia.deprecated.taglibs.util.Utils;
13 import org.jahia.utils.JahiaConsole;
14
15
16 /**
17  * Class IfContainerListSizeTag : this tag evaluates its body only when the size of
18  * the enclosing container list passes the comparison test using the
19  * given operator and value
20  *
21  * @author Jerome Tamiotti
22  */

23 public class IfContainerListSizeTag extends BodyTagSupport JavaDoc {
24
25     private String JavaDoc op;
26     private int value;
27
28     public void setOp(String JavaDoc op) {
29         this.op = op;
30     }
31
32     public void setValue(int value) {
33         this.value = value;
34     }
35
36     public int doAfterBody() {
37         // gets the enclosing tag ContainerListTag
38
ContainerListTag containerListTag = (ContainerListTag) findAncestorWithClass(this, ContainerListTag.class);
39         if (containerListTag == null) {
40             JahiaConsole.println("IfContainerListSize: doAfterBody", "No container list tag found !!");
41             return SKIP_BODY;
42         }
43         if (containerListTag.isDeclarationPass()) {
44             return SKIP_BODY;
45         }
46         JahiaContainerList containerList = containerListTag.getContainerList();
47         if (containerList == null) {
48             JahiaConsole.println("IfContainerListSize: doAfterBody", "NULL container list in tag !!");
49             return SKIP_BODY;
50         }
51         Enumeration JavaDoc containers = containerList.getContainers();
52         if ( Utils.compare( Utils.enumSize(containers), op, value ) ) {
53             // the current container is the first of the stack
54
try {
55                 BodyContent JavaDoc body = getBodyContent();
56                 JspWriter JavaDoc out = body.getEnclosingWriter();
57                 out.print(body.getString());
58             } catch (IOException JavaDoc ioe) {
59                 JahiaConsole.println("IfFirstContainerTag: doAfterBody ",ioe.toString());
60             }
61         }
62         return SKIP_BODY;
63     }
64
65     public int doEndTag() throws JspException JavaDoc {
66         // let's reinitialize the tag variables to allow tag object reuse in
67
// pooling.
68
op = null;
69         value = 0;
70         return EVAL_PAGE;
71     }
72
73
74 }
75
Popular Tags