KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > mmbase > util > functions > AutodefiningParameters


1 /*
2
3 This software is OSI Certified Open Source Software.
4 OSI Certified is a certification mark of the Open Source Initiative.
5
6 The license (Mozilla version 1.0) can be read at the MMBase site.
7 See http://www.MMBase.org/license
8
9 */

10
11 package org.mmbase.util.functions;
12
13 /**
14  * If there is no Parameter definition array available you could try it with this specialization, which does not need one.
15  * You loose al checking on type and availability. It should only be used as a last fall back and accompanied by warnings.
16  *
17  * @author Michiel Meeuwissen
18  * @since MMBase-1.7
19  * @version $Id: AutodefiningParameters.java,v 1.9.2.1 2006/10/18 10:01:03 michiel Exp $
20  * @see Parameter
21  */

22
23 public class AutodefiningParameters extends Parameters {
24     //private static Logger log = Logging.getLoggerInstance(Parameters.class);
25

26     public AutodefiningParameters(Parameter[] base) {
27         super(base);
28     }
29
30     public AutodefiningParameters() {
31         super(new Parameter[0]);
32     }
33
34     public boolean containsParameter(Parameter param) {
35         return true;
36     }
37
38     protected int define(Parameter param) {
39         Parameter[] newDef = new Parameter[definition.length + 1];
40         for (int i = 0; i < definition.length; i++) {
41             newDef[i] = definition[i];
42         }
43         newDef[newDef.length - 1] = param;
44         definition = newDef;
45         toIndex++;
46         return definition.length - 1;
47     }
48
49     protected int define(String JavaDoc param) {
50         return define(new Parameter(param, Object JavaDoc.class));
51     }
52
53     public int indexOfParameter(Parameter parameter) {
54         int index = super.indexOfParameter(parameter);
55         if (index == -1) {
56             return define(parameter);
57         } else {
58             return index;
59         }
60     }
61
62     public int indexOfParameter(String JavaDoc parameterName) {
63         int index = super.indexOfParameter(parameterName);
64         if (index == -1) {
65             return define(parameterName);
66         } else {
67             return index;
68         }
69     }
70
71
72 }
73
Popular Tags