Package com.google.jstestdriver

Source Code of com.google.jstestdriver.CapturedBrowsers

/*
* Copyright 2008 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.jstestdriver;

import com.google.inject.Inject;
import com.google.inject.Singleton;
import com.google.jstestdriver.browser.BrowserCaptureEvent;
import com.google.jstestdriver.browser.BrowserCaptureEvent.Event;
import com.google.jstestdriver.browser.BrowserIdStrategy;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Observable;
import java.util.concurrent.ConcurrentHashMap;

/**
* @author jeremiele@google.com (Jeremie Lenfant-Engelmann)
*/
@Singleton
public class CapturedBrowsers extends Observable {
  private static final Logger logger = LoggerFactory.getLogger(CapturedBrowsers.class);

  private final Map<String, SlaveBrowser> slaves = new ConcurrentHashMap<String, SlaveBrowser>();
  private final BrowserIdStrategy idStrategy;
 
  @Inject
  public CapturedBrowsers(BrowserIdStrategy idStrategy) {
    this.idStrategy = idStrategy;
  }

  public SlaveBrowser getBrowser(String id) {
    return slaves.get(id);
  }

  public String getUniqueId() {
    return Long.toString(idStrategy.nextId());
  }

  public void addSlave(SlaveBrowser slave) {
    slaves.put(slave.getId(), slave);
    setChanged();
    notifyObservers(new BrowserCaptureEvent(Event.CONNECTED, slave));
  }

  public Collection<SlaveBrowser> getSlaveBrowsers() {
    return slaves.values();
  }

  public List<BrowserInfo> getBrowsers() {
    List<BrowserInfo> browsersList = new ArrayList<BrowserInfo>();

    for (SlaveBrowser slave : getSlaveBrowsers()) {
      browsersList.add(slave.getBrowserInfo());
    }
    return browsersList;
  }

  public void removeSlave(String id) {
    logger.debug("remove browser {}", id);
    SlaveBrowser slave = slaves.remove(id);
    logger.debug("remove browser {}", slave);
    setChanged();
    notifyObservers(new BrowserCaptureEvent(Event.DISCONNECTED, slave));
  }
 
  @Override
  public String toString() {
    return String.format("CapturedBrowsers(%s)", slaves);
  }
}
TOP

Related Classes of com.google.jstestdriver.CapturedBrowsers

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.