KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > icesoft > faces > context > effects > EffectsArguments


1 /*
2  * Version: MPL 1.1/GPL 2.0/LGPL 2.1
3  *
4  * "The contents of this file are subject to the Mozilla Public License
5  * Version 1.1 (the "License"); you may not use this file except in
6  * compliance with the License. You may obtain a copy of the License at
7  * http://www.mozilla.org/MPL/
8  *
9  * Software distributed under the License is distributed on an "AS IS"
10  * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
11  * License for the specific language governing rights and limitations under
12  * the License.
13  *
14  * The Original Code is ICEfaces 1.5 open source software code, released
15  * November 5, 2006. The Initial Developer of the Original Code is ICEsoft
16  * Technologies Canada, Corp. Portions created by ICEsoft are Copyright (C)
17  * 2004-2006 ICEsoft Technologies Canada, Corp. All Rights Reserved.
18  *
19  * Contributor(s): _____________________.
20  *
21  * Alternatively, the contents of this file may be used under the terms of
22  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"
23  * License), in which case the provisions of the LGPL License are
24  * applicable instead of those above. If you wish to allow use of your
25  * version of this file only under the terms of the LGPL License and not to
26  * allow others to use your version of this file under the MPL, indicate
27  * your decision by deleting the provisions above and replace them with
28  * the notice and other provisions required by the LGPL License. If you do
29  * not delete the provisions above, a recipient may use your version of
30  * this file under either the MPL or the LGPL License."
31  *
32  */

33
34 package com.icesoft.faces.context.effects;
35
36 import java.text.DecimalFormat JavaDoc;
37 import java.text.NumberFormat JavaDoc;
38 import java.util.*;
39
40 /**
41  * Utility class to set arguments for effects
42  */

43 public class EffectsArguments {
44
45     private Map map = new HashMap();
46     private List parameter = new ArrayList();
47     private NumberFormat JavaDoc floatFormat = NumberFormat.getNumberInstance(Locale.US);
48     private String JavaDoc options = null;
49
50     public EffectsArguments(){
51         floatFormat.setGroupingUsed(false);
52     }
53
54
55     public void setParameter(int i, float f) {
56         addParameter(i, floatFormat.format(f));
57     }
58
59     public void addParameter(int i, String JavaDoc value) {
60         if (i == parameter.size()) {
61             parameter.add(i, value);
62         } else {
63             parameter.set(i, value);
64         }
65     }
66
67     public void add(String JavaDoc argument, String JavaDoc value) {
68         if (value == null) {
69             return;
70         }
71         map.put(argument, "'" + value + "'");
72     }
73
74     public void setOptions(String JavaDoc value){
75         options = value;
76     }
77
78     public void add(String JavaDoc argument, float value) {
79         map.put(argument, floatFormat.format(value));
80     }
81
82     public void addFunction(String JavaDoc argument, String JavaDoc function) {
83         map.put(argument, function);
84     }
85
86     public void add(String JavaDoc arg, boolean value) {
87
88         map.put(arg, value + "");
89     }
90
91     public boolean isEmpty() {
92         return map.isEmpty();
93     }
94
95
96     public String JavaDoc toString() {
97         if(options != null){
98             // To prevent javascript injection
99
options = options.replace(')', ' ');
100             options = options.replace('}', ' ');
101         }
102         StringBuffer JavaDoc sb = new StringBuffer JavaDoc(",{");
103         Iterator iter = parameter.iterator();
104         if (iter.hasNext()) {
105             sb.append(", ");
106         }
107         while (iter.hasNext()) {
108             String JavaDoc value = (String JavaDoc) iter.next();
109             sb.append("'").append(value).append("'");
110             if (iter.hasNext()) {
111                 sb.append(",");
112             }
113         }
114         if (map.isEmpty()) {
115             if(options != null){
116                 return ",{ " +options + "})";
117             }
118             return ");";
119         }
120
121         iter = map.keySet().iterator();
122         while (iter.hasNext()) {
123             String JavaDoc arg = (String JavaDoc) iter.next();
124             String JavaDoc value = (String JavaDoc) map.get(arg);
125             sb.append(arg).append(":").append(value);
126             if (iter.hasNext()) {
127                 sb.append(",");
128             }
129         }
130         if(options != null){
131             sb.append(",").append(options);
132         }
133         sb.append("});");
134         
135         return sb.toString();
136     }
137 }
138
Popular Tags