KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > enhydra > barracuda > contrib > dbroggisch > display > filters > CountFilter


1 /*
2  * Copyright (C) 2003 Diez B. Roggisch [deets@web.de]
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the Free Software
16  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17  *
18  * $Id: CountFilter.java,v 1.3 2004/02/01 05:16:27 christianc Exp $
19  */

20 package org.enhydra.barracuda.contrib.dbroggisch.display.filters;
21
22 import java.util.*;
23 import java.text.DateFormat JavaDoc;
24 import java.text.SimpleDateFormat JavaDoc;
25 import org.enhydra.barracuda.contrib.dbroggisch.display.filters.dtd.*;
26 import java.lang.reflect.Field JavaDoc;
27 import org.apache.log4j.*;
28
29 public class CountFilter implements Filter {
30     private static Logger logger = Logger.getLogger(CountFilter.class.getName());
31
32
33         public Object JavaDoc filter(Object JavaDoc obj, FilterContext context)
34                 throws FilterException
35         {
36                 if(obj == null) {
37                         return null;
38                 }
39                 if(obj instanceof java.util.Collection JavaDoc) {
40                         return new Integer JavaDoc(((Collection)obj).size());
41                 } else {
42                         try {
43                                 return new Integer JavaDoc(java.lang.reflect.Array.getLength(obj));
44                         } catch(IllegalArgumentException JavaDoc ex) {
45                                 throw new FilterException("Not a countable object.");
46                         }
47                 }
48         }
49
50         public Filter configure(Object JavaDoc obj)
51                 throws FilterException
52         {
53             return this;
54         }
55 }
56
Popular Tags