RequestHandlerFactory.java :  » JBoss » jboss-seam-2.2.0 » org » jboss » seam » remoting » Java Open Source

Java Open Source » JBoss » jboss seam 2.2.0 
jboss seam 2.2.0 » org » jboss » seam » remoting » RequestHandlerFactory.java
package org.jboss.seam.remoting;

import java.util.Map;
import java.util.HashMap;

/**
 * Provides request handlers for different request paths.
 *
 * @author Shane Bryzak
 */
public class RequestHandlerFactory
{
  private static final String REQUEST_PATH_EXECUTE = "/execute";
  private static final String REQUEST_PATH_SUBSCRIPTION = "/subscription";
  private static final String REQUEST_PATH_POLL = "/poll";
  private static final String REQUEST_PATH_INTERFACE = "/interface.js";

  private static RequestHandlerFactory instance = new RequestHandlerFactory();

  private Map<String,RequestHandler> handlers = new HashMap<String,RequestHandler>();

  private RequestHandlerFactory()
  {
    registerHandler(REQUEST_PATH_EXECUTE, new ExecutionHandler());
    registerHandler(REQUEST_PATH_SUBSCRIPTION, new SubscriptionHandler());
    registerHandler(REQUEST_PATH_INTERFACE, new InterfaceGenerator());
    
    try
    {
       Class.forName("javax.jms.Message");
       registerHandler(REQUEST_PATH_POLL, new PollHandler());
    }
    catch (ClassNotFoundException ex) 
    { 
        // Don't register PollHandler, swallow the exception
    }
  }

  public void registerHandler(String path, RequestHandler handler)
  {
    handlers.put(path, handler);
  }

  public RequestHandler getRequestHandler(String path)
  {
    return handlers.get(path);
  }

  public static RequestHandlerFactory getInstance()
  {
    return instance;
  }
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.