/**
 * Copyright (C) 2011 - present by OpenGamma Inc. and the OpenGamma group of companies
 *
 * Please see distribution for license.
 */
package com.opengamma.web.server.push;

import javax.servlet.ServletContext;

import com.opengamma.util.ArgumentChecker;

/**
 * Keys for use in {@code ServletContext} attributes.
 */
public final class WebPushServletContextUtils {

  /**
   * The key for {@link ConnectionManager}.
   */
  private static final String CONNECTION_MANAGER_KEY = ConnectionManager.class.getName();
  /**
   * The key for {@link LongPollingConnectionManager}.
   */
  private static final String LONG_POLLING_CONNECTION_MANAGER_KEY = LongPollingConnectionManager.class.getName();

  /**
   * Restricted constructor.
   */
  private WebPushServletContextUtils() {
  }

  //-------------------------------------------------------------------------
  /**
   * Gets the manager from the context.
   * 
   * @param servletContext  the context, not null
   * @return the manager, not null
   */
  public static ConnectionManager getConnectionManager(ServletContext servletContext) {
    ArgumentChecker.notNull(servletContext, "servletContext");
    ConnectionManager mgr = (ConnectionManager) servletContext.getAttribute(CONNECTION_MANAGER_KEY);
    ArgumentChecker.notNull(mgr, "ConnectionManager");
    return mgr;
  }

  /**
   * Sets the manager into the context.
   * 
   * @param servletContext  the context, not null
   * @param mgr  the manager, not null
   */
  public static void setConnectionManager(ServletContext servletContext, ConnectionManager mgr) {
    ArgumentChecker.notNull(servletContext, "servletContext");
    ArgumentChecker.notNull(mgr, "ConnectionManager");
    servletContext.setAttribute(CONNECTION_MANAGER_KEY, mgr);
  }

  //-------------------------------------------------------------------------
  /**
   * Gets the manager from the context.
   * 
   * @param servletContext  the context, not null
   * @return the manager, not null
   */
  public static LongPollingConnectionManager getLongPollingConnectionManager(ServletContext servletContext) {
    ArgumentChecker.notNull(servletContext, "servletContext");
    LongPollingConnectionManager mgr = (LongPollingConnectionManager) servletContext.getAttribute(LONG_POLLING_CONNECTION_MANAGER_KEY);
    ArgumentChecker.notNull(mgr, "LongPollingConnectionManager");
    return mgr;
  }

  /**
   * Sets the manager into the context.
   * 
   * @param servletContext  the context, not null
   * @param mgr  the manager, not null
   */
  public static void setLongPollingConnectionManager(ServletContext servletContext, LongPollingConnectionManager mgr) {
    ArgumentChecker.notNull(servletContext, "servletContext");
    ArgumentChecker.notNull(mgr, "LongPollingConnectionManager");
    servletContext.setAttribute(LONG_POLLING_CONNECTION_MANAGER_KEY, mgr);
  }

}

/**
 * Copyright (C) 2011 - present by OpenGamma Inc. and the OpenGamma group of companies
 *
 * Please see distribution for license.
 */
package com.opengamma.web.server.push;

import javax.servlet.ServletContext;

import com.opengamma.util.ArgumentChecker;

/**
 * Keys for use in {@code ServletContext} attributes.
 */
public final class WebPushServletContextUtils {

  /**
   * The key for {@link ConnectionManager}.
   */
  private static final String CONNECTION_MANAGER_KEY = WebPushServletContextUtils.class.getName() + ".ConnectionManager";
  /**
   * The key for {@link LongPollingConnectionManager}.
   */
  private static final String LONG_POLLING_CONNECTION_MANAGER_KEY = WebPushServletContextUtils.class.getName() + ".LongPollingConnectionManager";

  /**
   * Restricted constructor.
   */
  private WebPushServletContextUtils() {
  }

  //-------------------------------------------------------------------------
  /**
   * Gets the manager from the context.
   * 
   * @param servletContext  the context, not null
   * @return the manager, not null
   */
  public static ConnectionManager getConnectionManager(ServletContext servletContext) {
    ArgumentChecker.notNull(servletContext, "servletContext");
    ConnectionManager mgr = (ConnectionManager) servletContext.getAttribute(CONNECTION_MANAGER_KEY);
    ArgumentChecker.notNull(mgr, "ConnectionManager");
    return mgr;
  }

  /**
   * Sets the manager into the context.
   * 
   * @param servletContext  the context, not null
   * @param mgr  the manager, not null
   */
  public static void setConnectionManager(ServletContext servletContext, ConnectionManager mgr) {
    ArgumentChecker.notNull(servletContext, "servletContext");
    ArgumentChecker.notNull(mgr, "ConnectionManager");
    servletContext.setAttribute(CONNECTION_MANAGER_KEY, mgr);
  }

  //-------------------------------------------------------------------------
  /**
   * Gets the manager from the context.
   * 
   * @param servletContext  the context, not null
   * @return the manager, not null
   */
  public static LongPollingConnectionManager getLongPollingConnectionManager(ServletContext servletContext) {
    ArgumentChecker.notNull(servletContext, "servletContext");
    LongPollingConnectionManager mgr = (LongPollingConnectionManager) servletContext.getAttribute(LONG_POLLING_CONNECTION_MANAGER_KEY);
    ArgumentChecker.notNull(mgr, "LongPollingConnectionManager");
    return mgr;
  }

  /**
   * Sets the manager into the context.
   * 
   * @param servletContext  the context, not null
   * @param mgr  the manager, not null
   */
  public static void setLongPollingConnectionManager(ServletContext servletContext, LongPollingConnectionManager mgr) {
    ArgumentChecker.notNull(servletContext, "servletContext");
    ArgumentChecker.notNull(mgr, "LongPollingConnectionManager");
    servletContext.setAttribute(LONG_POLLING_CONNECTION_MANAGER_KEY, mgr);
  }

}

Make servlet context attributes consistent