KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > infoglue > deliver > taglib > common > SizeTag


1 /* ===============================================================================
2 *
3 * Part of the InfoGlue Content Management Platform (www.infoglue.org)
4 *
5 * ===============================================================================
6 *
7 * Copyright (C)
8 *
9 * This program is free software; you can redistribute it and/or modify it under
10 * the terms of the GNU General Public License version 2, as published by the
11 * Free Software Foundation. See the file LICENSE.html for more information.
12 *
13 * This program is distributed in the hope that it will be useful, but WITHOUT
14 * ANY WARRANTY, including the implied warranty of MERCHANTABILITY or FITNESS
15 * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License along with
18 * this program; if not, write to the Free Software Foundation, Inc. / 59 Temple
19 * Place, Suite 330 / Boston, MA 02111-1307 / USA.
20 *
21 * ===============================================================================
22 */

23 package org.infoglue.deliver.taglib.common;
24
25 import java.util.Collection JavaDoc;
26
27 import javax.servlet.jsp.JspException JavaDoc;
28
29 import org.infoglue.deliver.taglib.AbstractTag;
30
31 /**
32  * This class implements the <common:size> tag, which stores the size of a collection
33  * in the page context variable specified by the <code>id</code> attribute.
34  */

35 public class SizeTag extends AbstractTag
36 {
37     /**
38      * The universal version identifier.
39      */

40     private static final long serialVersionUID = 8603406098980150888L;
41     
42     /**
43      * The collection.
44      */

45     private Collection JavaDoc collection;
46     
47     /**
48      * Default constructor.
49      */

50     public SizeTag()
51     {
52         super();
53     }
54     
55     /**
56      * Process the end tag. Stores the size of the collection in the specified page context variable.
57      *
58      * @return indication of whether to continue evaluating the JSP page.
59      * @throws JspException if an error occurred while processing this tag.
60      */

61     public int doEndTag() throws JspException JavaDoc
62     {
63         setResultAttribute(new Integer JavaDoc(collection == null ? 0 : collection.size()));
64         return EVAL_PAGE;
65     }
66
67     /**
68      * TODO: This class operates on collection; change name to setCollection.
69      *
70      * Sets the collection attribute.
71      *
72      * @param collection the collection to use.
73      */

74     public void setList(final String JavaDoc collection) throws JspException JavaDoc
75     {
76         this.collection = evaluateCollection("size", "list", collection);
77     }
78 }
79
Popular Tags