| /* |
| * Copyright 2011 Google Inc. |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); you may not |
| * use this file except in compliance with the License. You may obtain a copy of |
| * the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT |
| * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the |
| * License for the specific language governing permissions and limitations under |
| * the License. |
| */ |
| |
| package com.google.gwt.dev.shell; |
| |
| /** |
| * Represents a session between devmode and a browser plugin. A session is |
| * essentially a socket connection, established by the plugin when a GWT module |
| * is started in devmode and used to communicate invocations of Java from |
| * JavaScript and vice-versa. |
| */ |
| public class DevModeSession { |
| |
| private static final ThreadLocal<DevModeSession> sessionForCurrentThread = |
| new ThreadLocal<DevModeSession>(); |
| |
| /** |
| * Gets the devmode session for the current thread. If a thread is not |
| * associated with a devmode session, via |
| * <code>setSessionForCurrentThread()</code>, then this will return null. |
| */ |
| public static DevModeSession getSessionForCurrentThread() { |
| return sessionForCurrentThread.get(); |
| } |
| |
| /** |
| * Sets the devmode session for the current thread. |
| */ |
| static void setSessionForCurrentThread(DevModeSession session) { |
| sessionForCurrentThread.set(session); |
| } |
| |
| private String moduleName; |
| private String userAgent; |
| |
| /** |
| * Creates a new instance. It is public only for unit test purposes and is |
| * not meant to be used outside of this package. |
| * |
| * @param moduleName the name of the GWT module for this session |
| * @param userAgent the User agent field provided by the browser for this |
| * session |
| */ |
| public DevModeSession(String moduleName, String userAgent) { |
| this.moduleName = moduleName; |
| this.userAgent = userAgent; |
| } |
| |
| public String getModuleName() { |
| return moduleName; |
| } |
| |
| public String getUserAgent() { |
| return userAgent; |
| } |
| } |