View Javadoc

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 }