The ContentHandlerFactory Interface

A ContentHandlerFactory defines the rules for where ContentHandler classes are stored. Create a class that implements ContentHandlerFactory, and give this class a createContentHandler( ) method that knows how to instantiate your ContentHandler. The createContentHandler( ) method should return null if it can’t find a ContentHandler appropriate for a MIME type; null signals Java to look for ContentHandler classes in the default locations. When your application starts, call the URLConnection’s setContentHandlerFactory( ) method to set the ContentHandlerFactory. This method may be called only once in the lifetime of an application.

The createContentHandler( ) Method

Just as the createURLStreamHandler( ) method of the URLStreamHandlerFactory interface was responsible for finding and loading the appropriate protocol handler, so too the createContentHandler( ) method of the ContentHandlerFactory interface is responsible for finding and loading the appropriate ContentHandler given a MIME type:

public abstract ContentHandler createContentHandler(String mimeType)

This method should be called only by the getContent( ) method of a URLConnection object. For instance, Example 17.7 is a ContentHandlerFactory that knows how to find the right handler for the text/tab-separated-values content handler of Example 17.1:

Example 17-7. TabFactory

package com.macfaq.net.www.content; import java.net.*; public class TabFactory implements ContentHandlerFactory { public ContentHandler ...

Get Java Network Programming, Second Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.