/******************************************************************************* * Copyright (c) 2012, 2014 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.trace; import java.lang.reflect.Method; import java.util.LinkedList; import java.util.List; import org.eclipse.core.resources.IResource; import org.eclipse.tracecompass.internal.tmf.core.request.TmfCoalescedEventRequest; import org.eclipse.tracecompass.tmf.core.component.TmfEventProvider; import org.eclipse.tracecompass.tmf.core.event.ITmfEvent; import org.eclipse.tracecompass.tmf.core.trace.ITmfTrace; import org.eclipse.tracecompass.tmf.core.trace.experiment.TmfExperiment; import org.eclipse.tracecompass.tmf.core.trace.indexer.ITmfTraceIndexer; /** * <b><u>TmfExperimentStub</u></b> * <p> * Implement me. Please. * <p> */ @SuppressWarnings("javadoc") public class TmfExperimentStub extends TmfExperiment { /** * Default constructor. Should not be called directly by the code, but * needed for the extension point. * * @deprecated Only used by the extension point. */ @Deprecated public TmfExperimentStub() { super(); } public TmfExperimentStub(String name, ITmfTrace[] traces, int blockSize) { super(ITmfEvent.class, name, traces, blockSize, null); } @Override protected ITmfTraceIndexer createIndexer(int interval) { return new TmfIndexerStub(this, interval); } @Override public TmfIndexerStub getIndexer() { return (TmfIndexerStub) super.getIndexer(); } @Override public void initExperiment(final Class<? extends ITmfEvent> type, final String path, final ITmfTrace[] traces, final int indexPageSize, IResource resource) { super.initExperiment(type, path, traces, indexPageSize, resource); } /** * @return a copy of the pending request list * @throws Exception if java reflection failed */ public List<TmfCoalescedEventRequest> getAllPendingRequests() throws Exception { Method m = TmfEventProvider.class.getDeclaredMethod("getPendingRequests"); m.setAccessible(true); LinkedList<?> list= (LinkedList<?>) m.invoke(this); LinkedList<TmfCoalescedEventRequest> retList = new LinkedList<>(); for (Object element : list) { retList.add((TmfCoalescedEventRequest) element); } return retList; } /** * Clears the pending request list * @throws Exception if java reflection failed */ public void clearAllPendingRequests() throws Exception { Method m = TmfEventProvider.class.getDeclaredMethod("clearPendingRequests"); m.setAccessible(true); m.invoke(this); } /** * Sets the timer flag * @param enabled * flag to set * @throws Exception if java reflection failed */ public void setTimerEnabledFlag(boolean enabled) throws Exception { Class<?>[] paramTypes = new Class[1]; paramTypes[0] = Boolean.class; Method m = TmfEventProvider.class.getDeclaredMethod("setTimerEnabled", paramTypes); Object[] params = new Object[1]; params[0] = Boolean.valueOf(enabled); m.setAccessible(true); m.invoke(this, params); } }