1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.jetspeed.om.registry.base;
18
19 import org.apache.jetspeed.om.registry.MimetypeMap;
20 import org.apache.jetspeed.util.MimeType;
21 import java.util.Vector;
22 import java.util.Iterator;
23
24 /***
25 * Simple bean-like implementation of the CapabilityMap
26 *
27 * @author <a href="shesmer@raleigh.ibm.com">Stephan Hesmer</a>
28 * @author <a href="mailto:raphael@apache.org">Raphaël Luta</a>
29 * @version $Id: BaseMimetypeMap.java,v 1.3 2004/02/23 03:08:26 jford Exp $
30 */
31 public class BaseMimetypeMap implements MimetypeMap, java.io.Serializable
32 {
33 private Vector mimetypesVector = new Vector();
34
35 private transient Vector mimes;
36
37 public BaseMimetypeMap()
38 {
39 }
40
41 /***
42 * Implements the equals operation so that 2 elements are equal if
43 * all their member values are equal.
44 */
45 public boolean equals(Object object)
46 {
47 if (object==null)
48 {
49 return false;
50 }
51
52 BaseMimetypeMap obj = (BaseMimetypeMap)object;
53
54 Iterator i = mimetypesVector.iterator();
55 Iterator i2 = obj.mimetypesVector.iterator();
56 while(i.hasNext())
57 {
58 String c1 = (String)i.next();
59 String c2 = null;
60
61 if (i2.hasNext())
62 {
63 c2 = (String)i2.next();
64 }
65 else
66 {
67 return false;
68 }
69
70 if (!c1.equals(c2))
71 {
72 return false;
73 }
74 }
75
76 if (i2.hasNext())
77 {
78 return false;
79 }
80
81 return true;
82 }
83
84 public Iterator getMimetypes()
85 {
86 if (mimes == null)
87 {
88 buildMimetable();
89 }
90
91 return mimes.iterator();
92 }
93
94 public MimeType getPreferredMimetype()
95 {
96 if (mimes == null)
97 {
98 buildMimetable();
99 }
100
101 return (MimeType)mimes.get(0);
102 }
103
104 public void addMimetype(String name)
105 {
106 if (!mimetypesVector.contains(name))
107 {
108 mimetypesVector.add(name);
109 buildMimetable();
110 }
111 }
112
113 public void removeMimetype(String name)
114 {
115 mimetypesVector.remove(name);
116 buildMimetable();
117 }
118
119 protected void buildMimetable()
120 {
121 Vector types = new Vector();
122 Iterator i = mimetypesVector.iterator();
123
124 while(i.hasNext())
125 {
126 String mime = (String)i.next();
127 types.add(new MimeType(mime));
128 }
129
130 this.mimes = types;
131 }
132
133
134
135 public Vector getMimetypesVector()
136 {
137 return mimetypesVector;
138 }
139
140 }