KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > fulcrum > intake > model > LongField


1 package org.apache.fulcrum.intake.model;
2
3 /* ====================================================================
4  * The Apache Software License, Version 1.1
5  *
6  * Copyright (c) 2001 The Apache Software Foundation. All rights
7  * reserved.
8  *
9  * Redistribution and use in source and binary forms, with or without
10  * modification, are permitted provided that the following conditions
11  * are met:
12  *
13  * 1. Redistributions of source code must retain the above copyright
14  * notice, this list of conditions and the following disclaimer.
15  *
16  * 2. Redistributions in binary form must reproduce the above copyright
17  * notice, this list of conditions and the following disclaimer in
18  * the documentation and/or other materials provided with the
19  * distribution.
20  *
21  * 3. The end-user documentation included with the redistribution,
22  * if any, must include the following acknowledgment:
23  * "This product includes software developed by the
24  * Apache Software Foundation (http://www.apache.org/)."
25  * Alternately, this acknowledgment may appear in the software itself,
26  * if and wherever such third-party acknowledgments normally appear.
27  *
28  * 4. The names "Apache" and "Apache Software Foundation" and
29  * "Apache Turbine" must not be used to endorse or promote products
30  * derived from this software without prior written permission. For
31  * written permission, please contact apache@apache.org.
32  *
33  * 5. Products derived from this software may not be called "Apache",
34  * "Apache Turbine", nor may "Apache" appear in their name, without
35  * prior written permission of the Apache Software Foundation.
36  *
37  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
38  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
39  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
40  * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
41  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
42  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
43  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
44  * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
45  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
46  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
47  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
48  * SUCH DAMAGE.
49  * ====================================================================
50  *
51  * This software consists of voluntary contributions made by many
52  * individuals on behalf of the Apache Software Foundation. For more
53  * information on the Apache Software Foundation, please see
54  * <http://www.apache.org/>.
55  */

56
57 import org.apache.fulcrum.intake.xmlmodel.XmlField;
58 import org.apache.log4j.Category;
59
60 /**
61  * @author <a HREF="mailto:jmcnally@collab.net">John McNally</a>
62  * @author <a HREF="mailto:hps@intermeta.de">Henning P. Schmiedehausen</a>
63  * @version $Id: LongField.java,v 1.1 2004/11/12 10:25:38 epugh Exp $
64  */

65 public class LongField
66     extends Field
67 {
68     /** Log4j category */
69     Category category = Category.getInstance(getClass().getName());
70
71     public LongField(XmlField field, Group group)
72         throws Exception JavaDoc
73     {
74         super(field, group);
75     }
76
77     /**
78      * Sets the default value for an Long Field
79      *
80      * @param prop Parameter for the default values
81      */

82     protected void setDefaultValue(String JavaDoc prop)
83     {
84         defaultValue = null;
85
86         if (prop == null)
87         {
88             return;
89         }
90
91         try
92         {
93             defaultValue = new Long JavaDoc(prop);
94         }
95         catch (Exception JavaDoc e)
96         {
97             category.error("Could not convert "
98                            + prop + " into an Long. ("
99                            + name + ")");
100         }
101     }
102
103     /**
104      * A suitable validator.
105      *
106      * @return "LongValidator"
107      */

108     protected String JavaDoc getDefaultValidator()
109     {
110         return "org.apache.fulcrum.intake.validator.LongValidator";
111     }
112
113     /**
114      * converts the parameter to the correct Object.
115      */

116     protected void doSetValue()
117     {
118         if ( isMultiValued )
119         {
120             String JavaDoc[] ss = pp.getStrings(getKey());
121             try
122             {
123                 Long JavaDoc[] values = new Long JavaDoc[ss.length];
124                 for (int i=0; i<ss.length; i++)
125                 {
126                     if (ss[i] != null && ss[i].length() > 0)
127                     {
128                         values[i] = new Long JavaDoc(ss[i]);
129                     }
130                 }
131                 setTestValue(values);
132             }
133             catch (ClassCastException JavaDoc e)
134             {
135                 long[] ival = new long[ss.length];
136                 for (int i=0; i<ss.length; i++)
137                 {
138                     if (ss[i] != null && ss[i].length() > 0)
139                     {
140                         ival[i] = Long.parseLong(ss[i]);
141                     }
142                 }
143                 setTestValue(ival);
144             }
145         }
146         else
147         {
148             String JavaDoc s = pp.getString(getKey());
149             if (s != null && s.length() > 0)
150             {
151                 setTestValue(new Long JavaDoc(s));
152             }
153             else
154             {
155                 set_flag = false;
156             }
157         }
158     }
159 }
160
Popular Tags