/* Copyright (C) 2009 Mobile Sorcery AB
This program is free software; you can redistribute it and/or modify it
under the terms of the Eclipse Public License v1.0.
This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the Eclipse Public License v1.0 for
more details.
You should have received a copy of the Eclipse Public License v1.0 along
with this program. It is also available at http://www.eclipse.org/legal/epl-v10.html
*/
package com.mobilesorcery.sdk.testing;
import java.util.ArrayList;
import java.util.concurrent.CopyOnWriteArrayList;
public class TestManager implements ITestSessionListener {
private static TestManager manager = new TestManager();
private ArrayList<ITestSession> sessions = new ArrayList<ITestSession>();
private CopyOnWriteArrayList<ITestSessionListener> listeners = new CopyOnWriteArrayList<ITestSessionListener>();
public void addTestSession(ITestSession session) {
sessions.add(session);
session.addSessionListener(this);
}
public void removeTestSession(ITestSession session) {
sessions.remove(session);
session.removeSessionListener(this);
}
public void addSessionListener(ITestSessionListener listener) {
listeners.add(listener);
}
public void removeSessionListener(ITestSessionListener listener) {
listeners.remove(listener);
}
public static TestManager getInstance() {
return manager;
}
public void handleEvent(TestSessionEvent event) {
for (ITestSessionListener listener : listeners) {
listener.handleEvent(event);
}
}
public ITestSession getLastSession() {
return sessions.isEmpty() ? null : sessions.get(sessions.size() - 1);
}
}