1 package org.codehaus.xfire.attachments;
2
3 import java.util.HashMap;
4 import java.util.Map;
5
6 import javax.activation.DataContentHandler;
7
8
9 /***
10 * @author <a href="mailto:dan@envoisolutiosn.com">Dan Diephouse</a>
11 */
12 public class AbstractDataContentHandlerFactory
13 implements javax.activation.DataContentHandlerFactory
14 {
15 private Map types = new HashMap();
16 private Map classToHandlers = new HashMap();
17 private Map classToType = new HashMap();
18
19 public DataContentHandler createDataContentHandler(String contentType)
20 {
21 return (DataContentHandler) types.get(contentType);
22 }
23
24 public DataContentHandler getDataContentHandler(Class clazz)
25 {
26 return (DataContentHandler) classToHandlers.get(clazz);
27 }
28
29 public String getContentType(Class clazz)
30 {
31 return (String) classToHandlers.get(clazz);
32 }
33
34 /***
35 * Register a DataContentHandler for a particular MIME type.
36 * @param contentType The Content Type.
37 * @param handler The DataContentHandler.
38 */
39 public void register(String contentType, Class clazz, DataContentHandler handler)
40 {
41 types.put(contentType, handler);
42 classToHandlers.put(clazz, handler);
43 classToType.put(clazz, contentType);
44 }
45 }