/******************************************************************************* * Copyright (c) 2009 Markus Alexander Kuppe. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Markus Alexander Kuppe (ecf-dev_eclipse.org <at> lemmster <dot> de) - initial API and implementation *******************************************************************************/ package org.eclipse.ecf.tests.discovery.listener; import org.eclipse.core.runtime.Assert; import org.eclipse.ecf.core.IContainer; import org.eclipse.ecf.discovery.IDiscoveryLocator; import org.eclipse.ecf.discovery.IServiceEvent; import org.eclipse.ecf.discovery.IServiceListener; public class TestServiceListener extends TestListener implements IServiceListener { private final IDiscoveryLocator locator; private final String testName; private final String testId; public TestServiceListener(int eventsToExpect, IDiscoveryLocator aLocator, String testName, String testId) { super(eventsToExpect); Assert.isNotNull(testId); this.testId = testId; Assert.isNotNull(testName); this.testName = testName; Assert.isNotNull(aLocator); locator = aLocator; } /* (non-Javadoc) * @see org.eclipse.ecf.discovery.IServiceListener#serviceDiscovered(org.eclipse.ecf.discovery.IServiceEvent) */ public void serviceDiscovered(IServiceEvent anEvent) { if (matchesExpected(anEvent)) { events.add(anEvent); if(events.size() == amountOfEventsToExpect) { synchronized (this) { notifyAll(); } } } else { System.err.println(toString() + "ignored unexpected events received by test listener " + anEvent); } } protected boolean matchesExpected(IServiceEvent anEvent) { return (testId.equals(anEvent.getServiceInfo().getServiceProperties() .getProperty(testName + "testIdentifier"))); } /* (non-Javadoc) * @see org.eclipse.ecf.discovery.IServiceListener#serviceUndiscovered(org.eclipse.ecf.discovery.IServiceEvent) */ public void serviceUndiscovered(IServiceEvent anEvent) { throw new java.lang.UnsupportedOperationException("TestServiceListener#serviceUndiscovered not yet implemented"); } /** * @return A DiscoveryLocator (Container) */ /* public IContainer getLocator() { return (IContainer) locator; } */ public boolean triggerDiscovery() { return false; } public String toString() { return "TestServiceListener [locator=" + locator + ", testName=" + testName + ", events=" + getEvent() + ", amountOfEventsToExpect=" + amountOfEventsToExpect + "]"; } }