KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > hammurapi > inspectors > TooManyParametersRule


1 /*
2  * Hammurapi
3  * Automated Java code review system.
4  * Copyright (C) 2004 Hammurapi Group
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, write to the Free Software
18  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19  *
20  * URL: http://www.hammurapi.org
21  * e-Mail: support@hammurapi.biz
22  */

23 package org.hammurapi.inspectors;
24
25 import org.hammurapi.InspectorBase;
26
27 import com.pavelvlasov.config.ConfigurationException;
28 import com.pavelvlasov.config.Parameterizable;
29 import com.pavelvlasov.jsel.Operation;
30
31 /**
32  * Too many parameters.
33  * @author Pavel Vlasov
34  * @version $Revision: 1.4 $
35  */

36 public class TooManyParametersRule extends InspectorBase implements Parameterizable {
37     /**
38      * Stores the setting form the configuration for the maximum allowed
39      * number of parameters for an operation.
40      */

41     private Integer JavaDoc maxParameters;
42     
43     /**
44      * Reviews the method and checks if it has too many parameters.
45      *
46      * @param operation the method to be reviewed.
47      */

48     public void visit(Operation operation) {
49         if (maxParameters!=null && operation.getParameters().size()>maxParameters.intValue()) {
50             context.reportViolation(operation, new Object JavaDoc[] {new Integer JavaDoc(operation.getParameters().size()), maxParameters});
51         }
52     }
53     
54     /**
55      * Configures the rule. Reads in the values of the parameters max-parameters and
56      * class-max-complexity.
57      *
58      * @param name the name of the parameter being loaded from Hammurapi configuration
59      * @param value the value of the parameter being loaded from Hammurapi configuration
60      * @exception ConfigurationException in case of a not supported parameter
61      */

62     public boolean setParameter(String JavaDoc name, Object JavaDoc value) throws ConfigurationException {
63         if ("max-parameters".equals(name)) {
64             maxParameters=new Integer JavaDoc(Integer.parseInt(value.toString()));
65             return true;
66         }
67         
68         throw new ConfigurationException("Parameter '"+name+"' is not supported");
69     }
70
71     /**
72      * Gives back the preconfigured values.
73      */

74     public String JavaDoc getConfigInfo() {
75         StringBuffer JavaDoc ret=new StringBuffer JavaDoc("Allowed nbr of parameters:\n");
76         ret.append("max parameters: " + maxParameters + "\n");
77         return ret.toString();
78     }
79 }
80
Popular Tags