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 }