1 /* ***** BEGIN LICENSE BLOCK *****
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 Version
5 * 1.1 (the "License"); you may not use this file except in compliance with
6 * 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" basis,
10 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
11 * for the specific language governing rights and limitations under the
12 * License.
13 *
14 * The Original Code is "SMS Library for the Java platform".
15 *
16 * The Initial Developer of the Original Code is Markus Eriksson.
17 * Portions created by the Initial Developer are Copyright (C) 2002
18 * the Initial Developer. All Rights Reserved.
19 *
20 * Contributor(s):
21 *
22 * Alternatively, the contents of this file may be used under the terms of
23 * either the GNU General Public License Version 2 or later (the "GPL"), or
24 * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
25 * in which case the provisions of the GPL or the LGPL are applicable instead
26 * of those above. If you wish to allow use of your version of this file only
27 * under the terms of either the GPL or the LGPL, and not to allow others to
28 * use your version of this file under the terms of the MPL, indicate your
29 * decision by deleting the provisions above and replace them with the notice
30 * and other provisions required by the GPL or the LGPL. If you do not delete
31 * the provisions above, a recipient may use your version of this file under
32 * the terms of any one of the MPL, the GPL or the LGPL.
33 *
34 * ***** END LICENSE BLOCK ***** */
35 package org.marre.mime;
36
37 import java.util.*;
38
39 public class MimeHeader
40 {
41 protected String myHeaderName;
42 protected String myHeaderValue;
43
44 protected List myParams;
45
46 protected MimeHeader()
47 {
48 // Utility function
49 }
50
51 public MimeHeader(String theName, String theValue)
52 {
53 myHeaderName = theName;
54 myHeaderValue = theValue;
55 myParams = new LinkedList();
56 }
57
58 public void setValue(String theValue)
59 {
60 myHeaderValue = theValue;
61 }
62
63 public String getName()
64 {
65 return myHeaderName;
66 }
67
68 public String getValue()
69 {
70 return myHeaderValue;
71 }
72
73 public void setParam(String theName, String theValue)
74 {
75 // Remove parameter if it already exists...
76 removeParam(theName);
77
78 // Add new...
79 myParams.add(new MimeHeaderParam(theName, theValue));
80 }
81
82 public MimeHeaderParam getParam(String theName)
83 {
84 Iterator iter = myParams.iterator();
85 while (iter.hasNext())
86 {
87 MimeHeaderParam param = (MimeHeaderParam) iter.next();
88 if (param.getName().equalsIgnoreCase(theName))
89 {
90 return param;
91 }
92 }
93
94 // Not found
95 return null;
96 }
97
98 public void removeParam(String theName)
99 {
100 MimeHeaderParam param = getParam(theName);
101
102 if (param != null)
103 {
104 myParams.remove(param);
105 }
106 }
107
108 public List getAllParams()
109 {
110 return myParams;
111 }
112
113 public int getParamCount()
114 {
115 return myParams.size();
116 }
117
118 public MimeHeaderParam getParam(int theIndex)
119 {
120 return (MimeHeaderParam) myParams.get(theIndex);
121 }
122
123 public String toString()
124 {
125 String s = myHeaderName + "=" + myHeaderValue;
126
127 Iterator i = myParams.iterator();
128
129 while (i.hasNext())
130 {
131 MimeHeaderParam mhp = (MimeHeaderParam) i.next();
132 s = mhp.getName() + "=" + mhp.getValue();
133 }
134 return s;
135 }
136 }