01: // /////////////////////////////
02: // Makumba, Makumba tag library
03: // Copyright (C) 2000-2003 http://www.makumba.org
04: //
05: // This library is free software; you can redistribute it and/or
06: // modify it under the terms of the GNU Lesser General Public
07: // License as published by the Free Software Foundation; either
08: // version 2.1 of the License, or (at your option) any later version.
09: //
10: // This library is distributed in the hope that it will be useful,
11: // but WITHOUT ANY WARRANTY; without even the implied warranty of
12: // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13: // Lesser General Public License for more details.
14: //
15: // You should have received a copy of the GNU Lesser General Public
16: // License along with this library; if not, write to the Free Software
17: // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18: //
19: // -------------
20: // $Id: intEnumEditor.java 1888 2007-10-21 23:45:48Z rosso_nero $
21: // $Name$
22: /////////////////////////////////////
23:
24: package org.makumba.forms.html;
25:
26: import org.makumba.commons.formatters.FieldFormatter;
27: import org.makumba.commons.formatters.InvalidValueException;
28: import org.makumba.commons.formatters.RecordFormatter;
29:
30: public class intEnumEditor extends charEnumEditor {
31:
32: private static final class SingletonHolder {
33: static final FieldEditor singleton = new intEnumEditor();
34: }
35:
36: private intEnumEditor() {
37: }
38:
39: public static FieldFormatter getInstance() {
40: return SingletonHolder.singleton;
41: }
42:
43: public Object getOptionValue(RecordFormatter rf, int fieldIndex,
44: Object options, int i) {
45: if (nullOption != null) {
46: if (i == 0) {
47: return "";
48: } else {
49: i -= 1;
50: }
51: }
52: return new Integer(rf.dd.getFieldDefinition(fieldIndex)
53: .getIntAt(i));
54: }
55:
56: public Object readFrom(RecordFormatter rf, int fieldIndex,
57: org.makumba.commons.attributes.HttpParameters par,
58: String suffix) {
59: Object o = par
60: .getParameter(getInputName(rf, fieldIndex, suffix));
61: // DB level should complain in this case:
62: // if(o==null && isNotNull())
63: // { throw new InvalidValueException(this, "null value not allowed for a
64: // not null field"); }
65: if (o instanceof java.util.Vector) {
66: throw new InvalidValueException(rf.expr[fieldIndex],
67: "multiple value not accepted for integer: " + o);
68: }
69: return toInt(rf, fieldIndex, o);
70: }
71: }
|