/*******************************************************************************
* Copyright (c) 2009, 2015 Ericsson
*
* 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:
* Francois Chouinard - Initial API and implementation
*******************************************************************************/
package org.eclipse.tracecompass.tmf.tests.stubs.component;
import java.io.File;
import java.io.IOException;
import java.net.URISyntaxException;
import java.net.URL;
import org.eclipse.core.runtime.FileLocator;
import org.eclipse.core.runtime.Path;
import org.eclipse.tracecompass.tmf.core.component.TmfEventProvider;
import org.eclipse.tracecompass.tmf.core.event.ITmfEvent;
import org.eclipse.tracecompass.tmf.core.exceptions.TmfTraceException;
import org.eclipse.tracecompass.tmf.core.request.ITmfEventRequest;
import org.eclipse.tracecompass.tmf.core.tests.TmfCoreTestPlugin;
import org.eclipse.tracecompass.tmf.core.tests.shared.TmfTestTrace;
import org.eclipse.tracecompass.tmf.core.trace.ITmfContext;
import org.eclipse.tracecompass.tmf.tests.stubs.trace.TmfTraceStub;
/**
* <b><u>TmfEventProviderStub</u></b>
* <p>
* TODO: Implement me. Please.
*/
@SuppressWarnings("javadoc")
public class TmfEventProviderStub extends TmfEventProvider {
private TmfTraceStub fTrace;
public TmfEventProviderStub(final String path) throws IOException {
super(path, ITmfEvent.class);
final URL location = FileLocator.find(TmfCoreTestPlugin.getDefault().getBundle(), new Path(path), null);
try {
final File test = new File(FileLocator.toFileURL(location).toURI());
fTrace = new TmfTraceStub(test.getPath(), 0, true, null);
} catch (final TmfTraceException e) {
e.printStackTrace();
} catch (final URISyntaxException e) {
e.printStackTrace();
}
}
public TmfEventProviderStub() throws IOException {
this(TmfTestTrace.A_TEST_10K.getFullPath());
}
@Override
public void dispose() {
fTrace.dispose();
super.dispose();
}
// ------------------------------------------------------------------------
// TmfEventProvider
// ------------------------------------------------------------------------
@Override
public ITmfContext armRequest(final ITmfEventRequest request) {
final ITmfContext context = fTrace.seekEvent(request.getRange().getStartTime());
return context;
}
@Override
public ITmfEvent getNext(final ITmfContext context) {
return fTrace.getNext(context);
}
@Override
public boolean matches(ITmfEvent event) {
return (super.matches(event) || event.getTrace() == fTrace);
}
}