KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > tapestry > multipart > ValuePart


1 // Copyright 2004, 2005 The Apache Software Foundation
2
//
3
// Licensed under the Apache License, Version 2.0 (the "License");
4
// you may not use this file except in compliance with the License.
5
// You may obtain a copy of the License at
6
//
7
// http://www.apache.org/licenses/LICENSE-2.0
8
//
9
// Unless required by applicable law or agreed to in writing, software
10
// distributed under the License is distributed on an "AS IS" BASIS,
11
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
// See the License for the specific language governing permissions and
13
// limitations under the License.
14

15 package org.apache.tapestry.multipart;
16
17 import java.util.ArrayList JavaDoc;
18 import java.util.List JavaDoc;
19
20 /**
21  * A portion of a multipart request that stores a value, or values, for a parameter.
22  *
23  * @author Howard Lewis Ship
24  * @since 2.0.1
25  */

26
27 public class ValuePart
28 {
29     private int _count;
30
31     // Stores either String or List of String
32
private Object JavaDoc _value;
33
34     public ValuePart(String JavaDoc value)
35     {
36         _count = 1;
37         _value = value;
38     }
39
40     public int getCount()
41     {
42         return _count;
43     }
44
45     /**
46      * Returns the value, or the first value (if multi-valued).
47      */

48
49     public String JavaDoc getValue()
50     {
51         if (_count == 1)
52             return (String JavaDoc) _value;
53
54         List JavaDoc l = (List JavaDoc) _value;
55
56         return (String JavaDoc) l.get(0);
57     }
58
59     /**
60      * Returns the values as an array of strings. If there is only one value, it is returned wrapped
61      * as a single element array.
62      */

63
64     public String JavaDoc[] getValues()
65     {
66         if (_count == 1)
67             return new String JavaDoc[]
68             { (String JavaDoc) _value };
69
70         List JavaDoc l = (List JavaDoc) _value;
71
72         return (String JavaDoc[]) l.toArray(new String JavaDoc[_count]);
73     }
74
75     public void add(String JavaDoc newValue)
76     {
77         if (_count == 1)
78         {
79             List JavaDoc l = new ArrayList JavaDoc();
80             l.add(_value);
81             l.add(newValue);
82
83             _value = l;
84             _count++;
85             return;
86         }
87
88         List JavaDoc l = (List JavaDoc) _value;
89         l.add(newValue);
90         _count++;
91     }
92
93     /**
94      * Does nothing.
95      */

96
97     public void cleanup()
98     {
99     }
100 }
Popular Tags