com.google.gwt.dev.shell.DevModeSession Maven / Gradle / Ivy
/*
* 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 sessionForCurrentThread =
new ThreadLocal();
/**
* Gets the devmode session for the current thread. If a thread is not
* associated with a devmode session, via
* setSessionForCurrentThread()
, 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;
}
}