[Bug309731] Fixed a problem with generic requests and component registration/deregist...
authorFrancois Chouinard <fchouinard@gmail.com>
Mon, 19 Apr 2010 19:17:36 +0000 (19:17 +0000)
committerFrancois Chouinard <fchouinard@gmail.com>
Mon, 19 Apr 2010 19:17:36 +0000 (19:17 +0000)
42 files changed:
org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/project/ProjectView.java
org.eclipse.linuxtools.lttng/src/org/eclipse/linuxtools/lttng/state/experiment/StateManagerFactory.java
org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/AllTmfCoreTests.java
org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/component/TmfEventProviderTest.java
org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/component/TmfProviderManagerTest.java
org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/event/TmfEventContentTest.java
org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/event/TmfEventFieldTest.java
org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/event/TmfEventReferenceTest.java
org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/event/TmfEventSourceTest.java
org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/event/TmfEventTest.java
org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/event/TmfEventTypeTest.java
org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/event/TmfTimeRangeTest.java
org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/event/TmfTimestampTest.java
org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/request/AllTests.java
org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/request/TmfCoalescedDataRequestTest.java
org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/request/TmfCoalescedEventRequestTest.java
org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/request/TmfDataRequestTest.java
org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/request/TmfEventRequestTest.java
org.eclipse.linuxtools.tmf.tests/src/org/eclipse/linuxtools/tmf/tests/request/TmfRequestExecutorTest.java
org.eclipse.linuxtools.tmf.tests/stubs/org/eclipse/linuxtools/tmf/component/TmfDataProviderStub.java
org.eclipse.linuxtools.tmf.tests/stubs/org/eclipse/linuxtools/tmf/component/TmfEventProviderStub.java
org.eclipse.linuxtools.tmf.tests/stubs/org/eclipse/linuxtools/tmf/component/TmfSyntheticEventProviderStub.java
org.eclipse.linuxtools.tmf.tests/stubs/org/eclipse/linuxtools/tmf/request/TmfDataRequestStub.java
org.eclipse.linuxtools.tmf.tests/stubs/org/eclipse/linuxtools/tmf/request/TmfEventRequestStub.java
org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/views/TmfEventsView.java
org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/views/TmfView.java
org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/component/ITmfComponent.java
org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/component/ITmfDataProvider.java
org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/component/TmfComponent.java
org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/component/TmfDataProvider.java
org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/component/TmfEventProvider.java
org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/event/TmfEventField.java
org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/event/TmfTraceEvent.java
org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/experiment/TmfExperiment.java
org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/experiment/TmfExperimentLocation.java
org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/request/ITmfDataRequest.java
org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/request/TmfCoalescedDataRequest.java
org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/request/TmfCoalescedEventRequest.java
org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/request/TmfDataRequest.java
org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/request/TmfEventRequest.java
org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/request/TmfRequestExecutor.java
org.eclipse.linuxtools.tmf/src/org/eclipse/linuxtools/tmf/trace/TmfTrace.java

index 6b02df6c4f141ab0a50b95eae92e3bd81c71f19c..9b6db4279c29f5e2af0a70ea969cb5c3413e51ca 100644 (file)
@@ -165,7 +165,7 @@ public class ProjectView extends TmfView {
        public void selectExperiment(LTTngExperimentNode experiment) {
        String expId = experiment.getName();
         if (fSelectedExperiment != null)
-               fSelectedExperiment.deregister();
+               fSelectedExperiment.dispose();
         try {
                LTTngTraceNode[] traceEntries = experiment.getTraces();
                int nbTraces = traceEntries.length;
index 0d6a52d8df7fc584fb270a6373525a4b8f5f41cb..6b31ef81f408420f60c2e292d0193d4dc28f6025 100644 (file)
@@ -98,7 +98,7 @@ public class StateManagerFactory {
         */
        public static void dispose() {
                if (experimentManager != null) {
-                       experimentManager.deregister();
+                       experimentManager.dispose();
                        experimentManager = null;
                        instanceBook = null;
                }
index 080270457bc55b725aeeb8efea04f2980e406ce0..a79fa6235e5858d8a8b3c64b6d1444cac9fd10f7 100644 (file)
@@ -29,9 +29,6 @@ public class AllTmfCoreTests {
                //$JUnit-BEGIN$
                suite.addTestSuite(TmfCorePluginTest.class);
 
-               suite.addTestSuite(TmfEventProviderTest.class);
-               suite.addTestSuite(TmfProviderManagerTest.class);
-
                suite.addTestSuite(TmfEventFieldTest.class);
                suite.addTestSuite(TmfEventContentTest.class);
                suite.addTestSuite(TmfEventTypeTest.class);
@@ -46,6 +43,10 @@ public class AllTmfCoreTests {
                suite.addTestSuite(TmfEventRequestTest.class);
                suite.addTestSuite(TmfCoalescedDataRequestTest.class);
                suite.addTestSuite(TmfCoalescedEventRequestTest.class);
+//             suite.addTestSuite(TmfRequestExecutorTest.class);
+
+               suite.addTestSuite(TmfEventProviderTest.class);
+               suite.addTestSuite(TmfProviderManagerTest.class);
 
                suite.addTestSuite(TmfTraceTest.class);
                suite.addTestSuite(TmfExperimentTest.class);
index 6cec0d03826d79fb136ed250fef4ae326eb39996..d9fb0c9abecc69cbc02ec3aded19e6a35bc33830 100644 (file)
@@ -52,8 +52,8 @@ public class TmfEventProviderTest extends TestCase {
        @Override
        protected void tearDown() throws Exception {
                super.tearDown();
-               fEventProvider.deregister();
-               fSyntheticEventProvider.deregister();
+               fEventProvider.dispose();
+               fSyntheticEventProvider.dispose();
        }
 
        // ------------------------------------------------------------------------
@@ -83,7 +83,7 @@ public class TmfEventProviderTest extends TestCase {
        // ------------------------------------------------------------------------
 
        @SuppressWarnings("unchecked")
-       public void testGetPlainEvents() {
+       public void testGetPlainEvents() throws InterruptedException {
 
         final int BLOCK_SIZE = 100;
         final int NB_EVENTS  = 1000;
@@ -119,7 +119,7 @@ public class TmfEventProviderTest extends TestCase {
        }
 
        @SuppressWarnings("unchecked")
-       private void getSyntheticData(final TmfTimeRange range, final int nbEvents, final int blockSize) {
+       private void getSyntheticData(final TmfTimeRange range, final int nbEvents, final int blockSize) throws InterruptedException {
 
         final Vector<TmfSyntheticEventStub> requestedEvents = new Vector<TmfSyntheticEventStub>();
 
@@ -156,36 +156,36 @@ public class TmfEventProviderTest extends TestCase {
 
        // The following tests are the same but for the size of the requested blocks
        // with regards to the size of the TmfSyntheticEventProviderStub block
-    public void testGetSyntheticEvents_EqualBlockSizes() {
+    public void testGetSyntheticEvents_EqualBlockSizes() throws InterruptedException {
         TmfTimeRange range = new TmfTimeRange(TmfTimestamp.BigBang, TmfTimestamp.BigCrunch);
                getSyntheticData(range, 1000, TmfSyntheticEventProviderStub.BLOCK_SIZE);
        }
 
-       public void testGetSyntheticEvents_SmallerBlock() {
+       public void testGetSyntheticEvents_SmallerBlock() throws InterruptedException {
         TmfTimeRange range = new TmfTimeRange(TmfTimestamp.BigBang, TmfTimestamp.BigCrunch);
                getSyntheticData(range, 1000, TmfSyntheticEventProviderStub.BLOCK_SIZE / 2);
        }
 
-       public void testGetSyntheticEvents_LargerBlock() {
+       public void testGetSyntheticEvents_LargerBlock() throws InterruptedException {
         TmfTimeRange range = new TmfTimeRange(TmfTimestamp.BigBang, TmfTimestamp.BigCrunch);
                getSyntheticData(range, 1000, TmfSyntheticEventProviderStub.BLOCK_SIZE * 2);
        }
 
-       public void testGetSyntheticEvents_TimeRange() {
+       public void testGetSyntheticEvents_TimeRange() throws InterruptedException {
                TmfTimestamp start = new TmfTimestamp(   1, (byte) -3, 0);
                TmfTimestamp end   = new TmfTimestamp(1000, (byte) -3, 0);
         TmfTimeRange range = new TmfTimeRange(start, end);
                getSyntheticData(range, -1, TmfSyntheticEventProviderStub.BLOCK_SIZE);
        }
 
-       public void testGetSyntheticEvents_WeirdTimeRange1() {
+       public void testGetSyntheticEvents_WeirdTimeRange1() throws InterruptedException {
                TmfTimestamp start = TmfTimestamp.BigBang;
                TmfTimestamp end   = new TmfTimestamp(0, (byte) -3, 0);
         TmfTimeRange range = new TmfTimeRange(start, end);
                getSyntheticData(range, -1, TmfSyntheticEventProviderStub.BLOCK_SIZE);
        }
 
-       public void testGetSyntheticEvents_WeirdTimeRange2() {
+       public void testGetSyntheticEvents_WeirdTimeRange2() throws InterruptedException {
                TmfTimestamp start = new TmfTimestamp(0, (byte) -3, 0);
                TmfTimestamp end   = TmfTimestamp.BigCrunch;
         TmfTimeRange range = new TmfTimeRange(start, end);
index 8ca12d3948c3f56873a71c375ed52718a5507c74..d8d0670442a67dfb62c5858d12a77bd9d8dd56be 100644 (file)
@@ -17,7 +17,7 @@ import junit.framework.TestCase;
 import org.eclipse.linuxtools.tmf.component.TmfDataProvider;
 import org.eclipse.linuxtools.tmf.component.TmfProviderManager;
 import org.eclipse.linuxtools.tmf.event.TmfEvent;
-import org.eclipse.linuxtools.tmf.request.TmfDataRequest;
+import org.eclipse.linuxtools.tmf.request.ITmfDataRequest;
 import org.eclipse.linuxtools.tmf.trace.ITmfContext;
 
 /**
@@ -50,7 +50,7 @@ public class TmfProviderManagerTest extends TestCase {
                        super("TestProvider1", type);
                }
                @Override
-               public ITmfContext armRequest(TmfDataRequest<TmfEvent> request) {
+               public ITmfContext armRequest(ITmfDataRequest<TmfEvent> request) {
                        return null;
                }
                @Override
@@ -58,7 +58,7 @@ public class TmfProviderManagerTest extends TestCase {
                        return null;
                }
                @Override
-               public boolean isCompleted(TmfDataRequest<TmfEvent> request, TmfEvent data, int nbRead) {
+               public boolean isCompleted(ITmfDataRequest<TmfEvent> request, TmfEvent data, int nbRead) {
                        return false;
                }
        }
@@ -68,7 +68,7 @@ public class TmfProviderManagerTest extends TestCase {
                        super("TestProvider2", type);
                }
                @Override
-               public ITmfContext armRequest(TmfDataRequest<TmfEvent> request) {
+               public ITmfContext armRequest(ITmfDataRequest<TmfEvent> request) {
                        return null;
                }
                @Override
@@ -76,7 +76,7 @@ public class TmfProviderManagerTest extends TestCase {
                        return null;
                }
                @Override
-               public boolean isCompleted(TmfDataRequest<TmfEvent> request, TmfEvent data, int nbRead) {
+               public boolean isCompleted(ITmfDataRequest<TmfEvent> request, TmfEvent data, int nbRead) {
                        return false;
                }
        }
@@ -92,7 +92,7 @@ public class TmfProviderManagerTest extends TestCase {
                        super("TestProvider3", type);
                }
                @Override
-               public ITmfContext armRequest(TmfDataRequest<TmfEvent3> request) {
+               public ITmfContext armRequest(ITmfDataRequest<TmfEvent3> request) {
                        return null;
                }
                @Override
@@ -100,7 +100,7 @@ public class TmfProviderManagerTest extends TestCase {
                        return null;
                }
                @Override
-               public boolean isCompleted(TmfDataRequest<TmfEvent3> request, TmfEvent3 data, int nbRead) {
+               public boolean isCompleted(ITmfDataRequest<TmfEvent3> request, TmfEvent3 data, int nbRead) {
                        return false;
                }
        }
@@ -133,7 +133,7 @@ public class TmfProviderManagerTest extends TestCase {
                assertTrue(providers[0] == testProvider1);
 
                // Unregister it
-               testProvider1.deregister();
+               testProvider1.dispose();
 
                providers = (TmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class);
                assertTrue(providers.length == 0);
@@ -168,7 +168,7 @@ public class TmfProviderManagerTest extends TestCase {
                assertTrue(providers[0] == testProvider2);
 
                // Remove one
-               testProvider1.deregister();
+               testProvider1.dispose();
 
                providers = (TmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class);
                assertTrue(providers.length == 1);
@@ -182,7 +182,7 @@ public class TmfProviderManagerTest extends TestCase {
                assertTrue(providers[0] == testProvider2);
 
                // Remove the other
-               testProvider2.deregister();
+               testProvider2.dispose();
 
                providers = (TmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class);
                assertTrue(providers.length == 0);
@@ -229,7 +229,7 @@ public class TmfProviderManagerTest extends TestCase {
                assertTrue(providers3[0] == testProvider3);
 
                // Remove one
-               testProvider1.deregister();
+               testProvider1.dispose();
 
                providers = (TmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class);
                assertTrue(providers.length == 1);
@@ -251,7 +251,7 @@ public class TmfProviderManagerTest extends TestCase {
                assertTrue(providers3[0] == testProvider3);
 
                // Remove another one
-               testProvider2.deregister();
+               testProvider2.dispose();
 
                providers = (TmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class);
                assertTrue(providers.length == 0);
@@ -271,7 +271,7 @@ public class TmfProviderManagerTest extends TestCase {
                assertTrue(providers3[0] == testProvider3);
 
                // Remove the last one
-               testProvider3.deregister();
+               testProvider3.dispose();
 
                providers = (TmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class);
                assertTrue(providers.length == 0);
index 39102259034b887f36f5f37febb8028da7afb34a..6bd5b0a80e6ee83bb3bbd1ea74d3c31df63bf9b8 100644 (file)
@@ -156,6 +156,30 @@ public class TmfEventContentTest extends TestCase {
                assertTrue("equals", !fStubContent.equals(null));
        }
        
+       // ------------------------------------------------------------------------
+       // hashCode
+       // ------------------------------------------------------------------------
+
+       public void testHashCode() throws Exception {
+               assertTrue("hashCode", fBasicContent0.hashCode() == fBasicContent2.hashCode());
+               assertTrue("hashCode", fBasicContent0.hashCode() != fStubContent.hashCode());
+       }
+       
+       public void testHashCode2() throws Exception {
+               TmfEventContent basicContent0 = new TmfEventContent(null, fRawContent0);
+               TmfEventContent basicContent1 = new TmfEventContent(fEvent, null);
+               TmfEventContent basicContent2 = new TmfEventContent(null, null);
+
+               assertTrue("hashCode", fBasicContent0.hashCode() != basicContent0.hashCode());
+               assertTrue("hashCode", fBasicContent0.hashCode() != basicContent1.hashCode());
+               assertTrue("hashCode", fBasicContent0.hashCode() != basicContent2.hashCode());
+
+               assertTrue("hashCode", basicContent0.hashCode() != basicContent1.hashCode());
+               assertTrue("hashCode", basicContent0.hashCode() != basicContent2.hashCode());
+
+               assertTrue("hashCode", basicContent1.hashCode() != basicContent2.hashCode());
+       }
+       
        // ------------------------------------------------------------------------
        // toString
        // ------------------------------------------------------------------------
index 2d3f8c1b367e458061d0f9d0542275faf5e0f687..dd55f2cb86ecf370cea2386030e68148e2fbaf6f 100644 (file)
@@ -182,6 +182,15 @@ public class TmfEventFieldTest extends TestCase {
                assertTrue("equals", !fField3.equals(null));
        }
        
+       // ------------------------------------------------------------------------
+       // hashCode
+       // ------------------------------------------------------------------------
+
+       public void testHashCode() throws Exception {
+               assertTrue("hashCode", fField0.hashCode() == fField1.hashCode());
+               assertTrue("hashCode", fField0.hashCode() != fField3.hashCode());
+       }
+       
     // ------------------------------------------------------------------------
        // toString
     // ------------------------------------------------------------------------
index e029e3322e037ada4c0fd1efa68878e80d454214..3cd0e67c85aa5cd03d7420c0d8f8a9d57a26147d 100644 (file)
@@ -126,6 +126,21 @@ public class TmfEventReferenceTest extends TestCase {
                assertTrue("equals", !fReference3.equals(null));
        }
        
+       // ------------------------------------------------------------------------
+       // hashCode
+       // ------------------------------------------------------------------------
+
+       public void testHashCode() throws Exception {
+               assertTrue("hashCode", fReference0.hashCode() == fReference1.hashCode());
+               assertTrue("hashCode", fReference0.hashCode() != fReference3.hashCode());
+       }
+       
+       public void testHashCode2() throws Exception {
+               TmfEventReference reference0 = new TmfEventReference();
+               assertTrue("hashCode", fReference0.hashCode() != reference0.hashCode());
+               assertTrue("hashCode", fReference3.hashCode() != reference0.hashCode());
+       }
+       
     // ------------------------------------------------------------------------
        // toString
     // ------------------------------------------------------------------------
index 3cc39ae51eff0da77c8b443f878ede99aa3508e8..1b49c37c08746d98512f9f8d335b7beabcc4129b 100644 (file)
@@ -126,6 +126,15 @@ public class TmfEventSourceTest extends TestCase {
                assertTrue("equals", !fSource3.equals(null));
        }
        
+       // ------------------------------------------------------------------------
+       // hashCode
+       // ------------------------------------------------------------------------
+
+       public void testHashCode() throws Exception {
+               assertTrue("hashCode", fSource0.hashCode() == fSource1.hashCode());
+               assertTrue("hashCode", fSource0.hashCode() != fSource3.hashCode());
+       }
+       
        // ------------------------------------------------------------------------
        // toString
        // ------------------------------------------------------------------------
index 6198588e43bd3e7ab78aa12692c25c8b2a952e99..c463b3dee8d70a2b05d18b147765a236f4e0c7c7 100644 (file)
@@ -195,6 +195,21 @@ public class TmfEventTest extends TestCase {
                assertTrue("equals", !fEvent2.equals(null));
        }
        
+       // ------------------------------------------------------------------------
+       // hashCode
+       // ------------------------------------------------------------------------
+
+       public void testHashCode() throws Exception {
+               TmfEvent event1 = new TmfEvent(fEvent1);
+               TmfEvent event2 = new TmfEvent(fEvent2);
+
+               assertTrue("hashCode", fEvent1.hashCode() == event1.hashCode());
+               assertTrue("hashCode", fEvent2.hashCode() == event2.hashCode());
+
+               assertTrue("hashCode", fEvent1.hashCode() != event2.hashCode());
+               assertTrue("hashCode", fEvent2.hashCode() != event1.hashCode());
+       }
+       
        // ------------------------------------------------------------------------
        // toString
        // ------------------------------------------------------------------------
index b11460eb172efc6a0b9f71b7cab9f57c42c069cf..522d09d4639a139e45ec96ca736b623b3acb0eda 100644 (file)
@@ -185,6 +185,15 @@ public class TmfEventTypeTest extends TestCase {
                assertTrue("equals", !fType3.equals(null));
        }
        
+       // ------------------------------------------------------------------------
+       // hashCode
+       // ------------------------------------------------------------------------
+
+       public void testHashCode() throws Exception {
+               assertTrue("hashCode", fType0.hashCode() == fType1.hashCode());
+               assertTrue("hashCode", fType0.hashCode() != fType3.hashCode());
+       }
+       
        // ------------------------------------------------------------------------
        // toString
        // ------------------------------------------------------------------------
index 38e8b1aff0ba1597eb519bf549b7fa671ab41665..81e2e67b25e3f3c6244f455ade5f63b872b77d23 100644 (file)
@@ -184,6 +184,24 @@ public class TmfTimeRangeTest extends TestCase {
                assertTrue("equals", !range1.equals(null));
        }
        
+       // ------------------------------------------------------------------------
+       // hashCode
+       // ------------------------------------------------------------------------
+
+       public void testHashCode() throws Exception {
+               TmfTimestamp ts1 = new TmfTimestamp(12345);
+               TmfTimestamp ts2 = new TmfTimestamp(12350);
+               TmfTimeRange range1 = new TmfTimeRange(ts1, ts2);
+               TmfTimeRange range1b = new TmfTimeRange(range1);
+               TmfTimeRange range2 = new TmfTimeRange(TmfTimestamp.BigBang, TmfTimestamp.BigCrunch);
+               TmfTimeRange range2b = new TmfTimeRange(range2);
+
+               assertTrue("hashCode", range1.hashCode() == range1b.hashCode());
+               assertTrue("hashCode", range2.hashCode() == range2b.hashCode());
+
+               assertTrue("hashCode", range1.hashCode() != range2.hashCode());
+       }
+       
        // ------------------------------------------------------------------------
        // toString
        // ------------------------------------------------------------------------
index 1e7c4de2a7063a620ca0a89b84f43386c251f86c..b1700fd91d028a2f99bddfb0ee31e686df9afdaf 100644 (file)
@@ -164,6 +164,17 @@ public class TmfTimestampTest extends TestCase {
                assertTrue("equals", !ts1.equals(null));
        }
        
+       // ------------------------------------------------------------------------
+       // hashCode
+       // ------------------------------------------------------------------------
+
+       public void testHashCode() throws Exception {
+               assertTrue("hashCode", ts0.hashCode() == ts0copy.hashCode());
+               assertTrue("hashCode", ts1.hashCode() == ts1copy.hashCode());
+
+               assertTrue("hashCode", ts0.hashCode() != ts1.hashCode());
+       }
+       
        // ------------------------------------------------------------------------
        // toString
        // ------------------------------------------------------------------------
index dbbd060825bfe1348d87347114f2401cf50e0281..7f62d531c9598d7924749629c01bd34b187ecbac 100644 (file)
@@ -14,6 +14,7 @@ public class AllTests {
                suite.addTestSuite(TmfEventRequestTest.class);
                suite.addTestSuite(TmfCoalescedDataRequestTest.class);
                suite.addTestSuite(TmfCoalescedEventRequestTest.class);
+//             suite.addTestSuite(TmfRequestExecutorTest.class);
                //$JUnit-END$
                return suite;
        }
index 6cc5c15e02871ef45de1e200aefded766449a6c6..df9d936ac668f11229503648349b47a636cabe52 100644 (file)
@@ -16,6 +16,10 @@ package org.eclipse.linuxtools.tmf.tests.request;
 import junit.framework.TestCase;
 
 import org.eclipse.linuxtools.tmf.event.TmfEvent;
+import org.eclipse.linuxtools.tmf.event.TmfEventReference;
+import org.eclipse.linuxtools.tmf.event.TmfEventSource;
+import org.eclipse.linuxtools.tmf.event.TmfEventType;
+import org.eclipse.linuxtools.tmf.event.TmfTimestamp;
 import org.eclipse.linuxtools.tmf.request.TmfCoalescedDataRequest;
 import org.eclipse.linuxtools.tmf.request.TmfDataRequest;
 import org.eclipse.linuxtools.tmf.request.TmfDataRequestStub;
@@ -23,10 +27,24 @@ import org.eclipse.linuxtools.tmf.request.TmfDataRequestStub;
 /**
  * <b><u>TmfCoalescedDataRequestTest</u></b>
  * <p>
- * TODO: Implement me. Please.
+ * Test suite for the TmfCoalescedDataRequest class.
  */
 public class TmfCoalescedDataRequestTest extends TestCase {
 
+       // ------------------------------------------------------------------------
+       // Variables
+       // ------------------------------------------------------------------------
+
+       private static TmfCoalescedDataRequest<TmfEvent> fRequest1;
+       private static TmfCoalescedDataRequest<TmfEvent> fRequest2;
+       private static TmfCoalescedDataRequest<TmfEvent> fRequest3;
+       private static TmfCoalescedDataRequest<TmfEvent> fRequest4;
+
+       private static TmfCoalescedDataRequest<TmfEvent> fRequest1b;
+       private static TmfCoalescedDataRequest<TmfEvent> fRequest1c;
+
+       private static int fRequestCount;
+       
        // ------------------------------------------------------------------------
        // Housekeeping
        // ------------------------------------------------------------------------
@@ -37,12 +55,51 @@ public class TmfCoalescedDataRequestTest extends TestCase {
 
        @Override
        public void setUp() throws Exception {
+               super.setUp();
+               TmfDataRequest.reset();
+               fRequest1  = new TmfCoalescedDataRequest<TmfEvent>(TmfEvent.class, 10, 100, 200);
+               fRequest2  = new TmfCoalescedDataRequest<TmfEvent>(TmfEvent.class, 20, 100, 200);
+               fRequest3  = new TmfCoalescedDataRequest<TmfEvent>(TmfEvent.class, 20, 200, 200);
+               fRequest4  = new TmfCoalescedDataRequest<TmfEvent>(TmfEvent.class, 20, 200, 300);
+
+               fRequest1b = new TmfCoalescedDataRequest<TmfEvent>(TmfEvent.class, 10, 100, 200);
+               fRequest1c = new TmfCoalescedDataRequest<TmfEvent>(TmfEvent.class, 10, 100, 200);
+
+               fRequestCount = fRequest1c.getRequestId() + 1;
        }
 
        @Override
        public void tearDown() throws Exception {
+               super.tearDown();
        }
 
+       private TmfCoalescedDataRequest<TmfEvent> setupTestRequest(final boolean[] flags) {
+               
+               TmfCoalescedDataRequest<TmfEvent> request = new TmfCoalescedDataRequest<TmfEvent>(TmfEvent.class, 10, 100, 200) {
+                   @Override
+                       public void handleCompleted() {
+                       super.handleCompleted();
+                       flags[0] = true;
+                   }
+                   @Override
+                   public void handleSuccess() {
+                       super.handleSuccess();
+                       flags[1] = true;
+                   }
+                   @Override
+                   public void handleFailure() {
+                       super.handleFailure();
+                       flags[2] = true;
+                   }
+                   @Override
+                   public void handleCancel() {
+                       super.handleCancel();
+                       flags[3] = true;
+                   }
+               };
+               return request;
+       }
+       
        // ------------------------------------------------------------------------
        // Constructors
        // ------------------------------------------------------------------------
@@ -50,33 +107,136 @@ public class TmfCoalescedDataRequestTest extends TestCase {
        public void testTmfCoalescedDataRequest() {
                TmfCoalescedDataRequest<TmfEvent> request = new TmfCoalescedDataRequest<TmfEvent>(TmfEvent.class);
 
-        assertEquals("getIndex",             0, request.getIndex());
+        assertEquals("getRequestId", fRequestCount++, request.getRequestId());
+        assertEquals("getDataType",  TmfEvent.class, request.getDataType());
+
+        assertEquals("getIndex", 0, request.getIndex());
         assertEquals("getNbRequestedEvents", TmfDataRequest.ALL_DATA, request.getNbRequested());
         assertEquals("getBlockize", TmfDataRequest.DEFAULT_BLOCK_SIZE, request.getBlockize());
+
+        assertFalse("isCompleted", request.isCompleted());
+        assertFalse("isFailed", request.isFailed());
+        assertFalse("isCancelled", request.isCancelled());
+
+        assertEquals("getNbRead", 0, request.getNbRead());
        }
 
        public void testTmfCoalescedDataRequestIndex() {
                TmfCoalescedDataRequest<TmfEvent> request = new TmfCoalescedDataRequest<TmfEvent>(TmfEvent.class, 10);
 
-        assertEquals("getIndex",             10, request.getIndex());
+        assertEquals("getRequestId", fRequestCount++, request.getRequestId());
+        assertEquals("getDataType",  TmfEvent.class, request.getDataType());
+
+        assertEquals("getIndex", 10, request.getIndex());
         assertEquals("getNbRequestedEvents", TmfDataRequest.ALL_DATA, request.getNbRequested());
         assertEquals("getBlockize", TmfDataRequest.DEFAULT_BLOCK_SIZE, request.getBlockize());
+
+        assertFalse("isCompleted", request.isCompleted());
+        assertFalse("isFailed", request.isFailed());
+        assertFalse("isCancelled", request.isCancelled());
+
+        assertEquals("getNbRead", 0, request.getNbRead());
        }
 
        public void testTmfCoalescedDataRequestIndexNbRequested() {
                TmfCoalescedDataRequest<TmfEvent> request = new TmfCoalescedDataRequest<TmfEvent>(TmfEvent.class, 10, 100);
 
-        assertEquals("getIndex",              10, request.getIndex());
+        assertEquals("getRequestId", fRequestCount++, request.getRequestId());
+        assertEquals("getDataType",  TmfEvent.class, request.getDataType());
+
+        assertEquals("getIndex", 10, request.getIndex());
         assertEquals("getNbRequestedEvents", 100, request.getNbRequested());
         assertEquals("getBlockize", TmfDataRequest.DEFAULT_BLOCK_SIZE, request.getBlockize());
+
+        assertFalse("isCompleted", request.isCompleted());
+        assertFalse("isFailed", request.isFailed());
+        assertFalse("isCancelled", request.isCancelled());
+
+        assertEquals("getNbRead", 0, request.getNbRead());
        }
 
        public void testTmfCoalescedDataRequestIndexNbEventsBlocksize() {
                TmfCoalescedDataRequest<TmfEvent> request = new TmfCoalescedDataRequest<TmfEvent>(TmfEvent.class, 10, 100, 200);
 
-        assertEquals("getIndex",              10, request.getIndex());
+        assertEquals("getRequestId", fRequestCount++, request.getRequestId());
+        assertEquals("getDataType",  TmfEvent.class, request.getDataType());
+
+        assertEquals("getIndex", 10, request.getIndex());
         assertEquals("getNbRequestedEvents", 100, request.getNbRequested());
-        assertEquals("getBlockize",          200, request.getBlockize());
+        assertEquals("getBlockize", 200, request.getBlockize());
+
+        assertFalse("isCompleted", request.isCompleted());
+        assertFalse("isFailed", request.isFailed());
+        assertFalse("isCancelled", request.isCancelled());
+
+        assertEquals("getNbRead", 0, request.getNbRead());
+       }
+
+       // ------------------------------------------------------------------------
+       // equals
+       // ------------------------------------------------------------------------
+
+       public void testEqualsReflexivity() throws Exception {
+        assertTrue("equals", fRequest1.equals(fRequest1));
+        assertTrue("equals", fRequest2.equals(fRequest2));
+
+        assertFalse("equals", fRequest1.equals(fRequest2));
+        assertFalse("equals", fRequest2.equals(fRequest1));
+       }
+
+       public void testEqualsSymmetry() throws Exception {
+        assertTrue("equals", fRequest1.equals(fRequest1b));
+        assertTrue("equals", fRequest1b.equals(fRequest1));
+
+        assertFalse("equals", fRequest1.equals(fRequest3));
+        assertFalse("equals", fRequest2.equals(fRequest3));
+        assertFalse("equals", fRequest3.equals(fRequest1));
+        assertFalse("equals", fRequest3.equals(fRequest2));
+       }
+       
+       public void testEqualsTransivity() throws Exception {
+        assertTrue("equals", fRequest1.equals(fRequest1b));
+        assertTrue("equals", fRequest1b.equals(fRequest1c));
+        assertTrue("equals", fRequest1.equals(fRequest1c));
+       }
+       
+       public void testEqualsConsistency() throws Exception {
+        assertTrue("equals", fRequest1.equals(fRequest1));
+        assertTrue("equals", fRequest1.equals(fRequest1));
+
+        assertTrue("equals", fRequest2.equals(fRequest2));
+        assertTrue("equals", fRequest2.equals(fRequest2));
+       }
+       
+       public void testEqualsNull() throws Exception {
+        assertFalse("equals", fRequest1.equals(null));
+        assertFalse("equals", fRequest2.equals(null));
+       }
+
+       // ------------------------------------------------------------------------
+       // hashCode
+       // ------------------------------------------------------------------------
+
+       public void testHashCode() throws Exception {
+        assertTrue("hashCode", fRequest1.hashCode() == fRequest1.hashCode());
+        assertTrue("hashCode", fRequest2.hashCode() == fRequest2.hashCode());
+               assertTrue("hashCode", fRequest1.hashCode() != fRequest2.hashCode());
+       }
+       
+       // ------------------------------------------------------------------------
+       // toString
+       // ------------------------------------------------------------------------
+
+       public void testToString() {
+        String expected1 = "[TmfCoalescedDataRequest(0,TmfEvent,10,100,200)]";
+        String expected2 = "[TmfCoalescedDataRequest(1,TmfEvent,20,100,200)]";
+        String expected3 = "[TmfCoalescedDataRequest(2,TmfEvent,20,200,200)]";
+        String expected4 = "[TmfCoalescedDataRequest(3,TmfEvent,20,200,300)]";
+
+        assertEquals("toString", expected1, fRequest1.toString());
+        assertEquals("toString", expected2, fRequest2.toString());
+        assertEquals("toString", expected3, fRequest3.toString());
+        assertEquals("toString", expected4, fRequest4.toString());
        }
 
        // ------------------------------------------------------------------------
@@ -96,4 +256,165 @@ public class TmfCoalescedDataRequestTest extends TestCase {
         assertFalse("isCompatible", coalescedRequest.isCompatible(request4));
        }
 
+       // ------------------------------------------------------------------------
+       // setData/getData
+       // ------------------------------------------------------------------------
+
+       public void testSetData() {
+
+               TmfCoalescedDataRequest<TmfEvent> coalescedRequest = new TmfCoalescedDataRequest<TmfEvent>(TmfEvent.class, 10, 100, 200);
+               TmfDataRequest<TmfEvent> request1 = new TmfDataRequestStub<TmfEvent>(TmfEvent.class, 10, 100, 200);
+               TmfDataRequest<TmfEvent> request2 = new TmfDataRequestStub<TmfEvent>(TmfEvent.class, 10, 100, 200);
+               coalescedRequest.addRequest(request1);
+               coalescedRequest.addRequest(request2);
+
+               // Initialize the data
+               int nbEvents = 10;
+               TmfEvent[] events = new TmfEvent[nbEvents];
+               for (int i = 0; i < nbEvents; i++) {
+                       events[i] = new TmfEvent(new TmfTimestamp(i), new TmfEventSource(),
+                                       new TmfEventType(), new TmfEventReference());
+               }
+
+               coalescedRequest.setData(events);
+               coalescedRequest.handleData();
+
+               // Validate the coalescing request
+               assertEquals("setData", nbEvents, coalescedRequest.getNbRead());
+               TmfEvent[] eventsRead1 = coalescedRequest.getData();
+               assertEquals("getData", nbEvents, eventsRead1.length);
+               for (int i = 0; i < nbEvents; i++) {
+                       assertEquals("getData", i, eventsRead1[i].getTimestamp().getValue());
+               }
+
+               // Validate the first coalesced request
+               assertEquals("setData", nbEvents, request1.getNbRead());
+               TmfEvent[] eventsRead2 = request1.getData();
+               assertEquals("getData", nbEvents, eventsRead2.length);
+               for (int i = 0; i < nbEvents; i++) {
+                       assertEquals("getData", i, eventsRead2[i].getTimestamp().getValue());
+               }
+
+               // Validate the second coalesced request
+               assertEquals("setData", nbEvents, request2.getNbRead());
+               TmfEvent[] eventsRead3 = request2.getData();
+               assertEquals("getData", nbEvents, eventsRead3.length);
+               for (int i = 0; i < nbEvents; i++) {
+                       assertEquals("getData", i, eventsRead3[i].getTimestamp().getValue());
+               }
+       }
+
+       // ------------------------------------------------------------------------
+       // done
+       // ------------------------------------------------------------------------
+
+       public void testDone() {
+               
+               // Test request
+               final boolean[] crFlags = new boolean[4];
+               TmfCoalescedDataRequest<TmfEvent> request = setupTestRequest(crFlags);
+               TmfDataRequest<TmfEvent> subRequest1 = new TmfDataRequestStub<TmfEvent>(TmfEvent.class, 10, 100, 200);
+               TmfDataRequest<TmfEvent> subRequest2 = new TmfDataRequestStub<TmfEvent>(TmfEvent.class, 10, 100, 200);
+               request.addRequest(subRequest1);
+               request.addRequest(subRequest2);
+
+               request.done();
+
+               // Validate the coalescing request
+               assertTrue ("isCompleted", request.isCompleted());
+               assertFalse("isFailed",    request.isFailed());
+               assertFalse("isCancelled", request.isCancelled());
+
+               assertTrue ("handleCompleted", crFlags[0]);
+               assertTrue ("handleSuccess",   crFlags[1]);
+               assertFalse("handleFailure",   crFlags[2]);
+               assertFalse("handleCancel",    crFlags[3]);
+
+               // Validate the first coalesced request
+               assertTrue ("isCompleted", subRequest1.isCompleted());
+               assertFalse("isFailed",    subRequest1.isFailed());
+               assertFalse("isCancelled", subRequest1.isCancelled());
+
+               // Validate the second coalesced request
+               assertTrue ("isCompleted", subRequest2.isCompleted());
+               assertFalse("isFailed",    subRequest2.isFailed());
+               assertFalse("isCancelled", subRequest2.isCancelled());
+       }
+
+       // ------------------------------------------------------------------------
+       // fail
+       // ------------------------------------------------------------------------
+
+       public void testFail() {
+               
+               final boolean[] crFlags = new boolean[4];
+               TmfCoalescedDataRequest<TmfEvent> request = setupTestRequest(crFlags);
+               TmfDataRequest<TmfEvent> subRequest1 = new TmfDataRequestStub<TmfEvent>(TmfEvent.class, 10, 100, 200);
+               TmfDataRequest<TmfEvent> subRequest2 = new TmfDataRequestStub<TmfEvent>(TmfEvent.class, 10, 100, 200);
+               request.addRequest(subRequest1);
+               request.addRequest(subRequest2);
+
+               request.fail();
+
+               // Validate the coalescing request
+               assertTrue ("isCompleted", request.isCompleted());
+               assertTrue ("isFailed",    request.isFailed());
+               assertFalse("isCancelled", request.isCancelled());
+
+               assertTrue ("handleCompleted", crFlags[0]);
+               assertFalse("handleSuccess",   crFlags[1]);
+               assertTrue ("handleFailure",   crFlags[2]);
+               assertFalse("handleCancel",    crFlags[3]);
+
+               // Validate the first coalesced request
+               assertTrue ("isCompleted", subRequest1.isCompleted());
+               assertTrue ("isFailed",    subRequest1.isFailed());
+               assertFalse("isCancelled", subRequest1.isCancelled());
+
+               // Validate the second coalesced request
+               assertTrue ("isCompleted", subRequest2.isCompleted());
+               assertTrue ("isFailed",    subRequest2.isFailed());
+               assertFalse("isCancelled", subRequest2.isCancelled());
+       }
+
+       // ------------------------------------------------------------------------
+       // cancel
+       // ------------------------------------------------------------------------
+
+       public void testCancel() {
+
+               final boolean[] crFlags = new boolean[4];
+               TmfCoalescedDataRequest<TmfEvent> request = setupTestRequest(crFlags);
+               TmfDataRequest<TmfEvent> subRequest1 = new TmfDataRequestStub<TmfEvent>(TmfEvent.class, 10, 100, 200);
+               TmfDataRequest<TmfEvent> subRequest2 = new TmfDataRequestStub<TmfEvent>(TmfEvent.class, 10, 100, 200);
+               request.addRequest(subRequest1);
+               request.addRequest(subRequest2);
+
+               request.cancel();
+
+               // Validate the coalescing request
+               assertTrue ("isCompleted", request.isCompleted());
+               assertFalse("isFailed",    request.isFailed());
+               assertTrue ("isCancelled", request.isCancelled());
+
+               assertTrue ("handleCompleted", crFlags[0]);
+               assertFalse("handleSuccess",   crFlags[1]);
+               assertFalse("handleFailure",   crFlags[2]);
+               assertTrue ("handleCancel",    crFlags[3]);
+
+               // Validate the first coalesced request
+               assertTrue ("isCompleted", subRequest1.isCompleted());
+               assertFalse("isFailed",    subRequest1.isFailed());
+               assertTrue ("isCancelled", subRequest1.isCancelled());
+
+               // Validate the second coalesced request
+               assertTrue ("isCompleted", subRequest2.isCompleted());
+               assertFalse("isFailed",    subRequest2.isFailed());
+               assertTrue ("isCancelled", subRequest2.isCancelled());
+       }
+
+       // ------------------------------------------------------------------------
+       // waitForCompletion
+       // ------------------------------------------------------------------------
+
 }
index 43fc8b2b74fcaf21489663407e33086b7fd9d54a..f712b8c6adb08f74a7928cd325525d59df4ab0a4 100644 (file)
@@ -25,10 +25,15 @@ import org.eclipse.core.runtime.Path;
 import org.eclipse.linuxtools.tmf.component.ITmfDataProvider;
 import org.eclipse.linuxtools.tmf.component.TmfProviderManager;
 import org.eclipse.linuxtools.tmf.event.TmfEvent;
+import org.eclipse.linuxtools.tmf.event.TmfEventReference;
+import org.eclipse.linuxtools.tmf.event.TmfEventSource;
+import org.eclipse.linuxtools.tmf.event.TmfEventType;
 import org.eclipse.linuxtools.tmf.event.TmfTimeRange;
 import org.eclipse.linuxtools.tmf.event.TmfTimestamp;
+import org.eclipse.linuxtools.tmf.request.TmfCoalescedDataRequest;
 import org.eclipse.linuxtools.tmf.request.TmfCoalescedEventRequest;
 import org.eclipse.linuxtools.tmf.request.TmfDataRequest;
+import org.eclipse.linuxtools.tmf.request.TmfDataRequestStub;
 import org.eclipse.linuxtools.tmf.request.TmfEventRequest;
 import org.eclipse.linuxtools.tmf.request.TmfEventRequestStub;
 import org.eclipse.linuxtools.tmf.signal.TmfSignal;
@@ -40,34 +45,28 @@ import org.eclipse.linuxtools.tmf.trace.TmfTraceStub;
 /**
  * <b><u>TmfCoalescedEventRequestTest</u></b>
  * <p>
- * TODO: Implement me. Please.
+ * Test suite for the TmfCoalescedEventRequest class.
  */
 public class TmfCoalescedEventRequestTest extends TestCase {
 
-    private static final String DIRECTORY   = "testfiles";
-    private static final String TEST_STREAM = "A-Test-10K";
-    private static final int    NB_EVENTS   = 10000;
-    private static final int    BLOCK_SIZE  = 100;
+       // ------------------------------------------------------------------------
+       // Variables
+       // ------------------------------------------------------------------------
 
-    private static TmfTraceStub fTrace      = null;
+       private static TmfTimeRange range1 = new TmfTimeRange(TmfTimeRange.Eternity);
+       private static TmfTimeRange range2 = new TmfTimeRange(new TmfTimestamp(), TmfTimestamp.BigCrunch);
+       
+       private static TmfCoalescedEventRequest<TmfEvent> fRequest1;
+       private static TmfCoalescedEventRequest<TmfEvent> fRequest2;
+       private static TmfCoalescedEventRequest<TmfEvent> fRequest3;
+       private static TmfCoalescedEventRequest<TmfEvent> fRequest4;
 
-    private TmfTraceStub setupTrace(String path) {
-       if (fTrace == null) {
-               try {
-               URL location = FileLocator.find(TmfCoreTestPlugin.getDefault().getBundle(), new Path(path), null);
-                       File test = new File(FileLocator.toFileURL(location).toURI());
-               fTrace = new TmfTraceStub(test.getPath(), 500, true);
-               fTrace.register();
-               } catch (URISyntaxException e) {
-                       e.printStackTrace();
-               } catch (IOException e) {
-                       e.printStackTrace();
-               }
-       }
-       return fTrace;
-    }
+       private static TmfCoalescedEventRequest<TmfEvent> fRequest1b;
+       private static TmfCoalescedEventRequest<TmfEvent> fRequest1c;
 
-    // ------------------------------------------------------------------------
+       private static int fRequestCount;
+       
+       // ------------------------------------------------------------------------
        // Housekeeping
        // ------------------------------------------------------------------------
 
@@ -78,6 +77,16 @@ public class TmfCoalescedEventRequestTest extends TestCase {
        @Override
        public void setUp() throws Exception {
                super.setUp();
+               TmfEventRequest.reset();
+               fRequest1  = new TmfCoalescedEventRequest<TmfEvent>(TmfEvent.class, range1, 100, 200);
+               fRequest2  = new TmfCoalescedEventRequest<TmfEvent>(TmfEvent.class, range2, 100, 200);
+               fRequest3  = new TmfCoalescedEventRequest<TmfEvent>(TmfEvent.class, range2, 200, 200);
+               fRequest4  = new TmfCoalescedEventRequest<TmfEvent>(TmfEvent.class, range2, 200, 300);
+
+               fRequest1b = new TmfCoalescedEventRequest<TmfEvent>(TmfEvent.class, range1, 100, 200);
+               fRequest1c = new TmfCoalescedEventRequest<TmfEvent>(TmfEvent.class, range1, 100, 200);
+
+               fRequestCount = fRequest1c.getRequestId() + 1;
        }
 
        @Override
@@ -85,55 +94,184 @@ public class TmfCoalescedEventRequestTest extends TestCase {
                super.tearDown();
        }
 
+       private TmfCoalescedEventRequest<TmfEvent> setupTestRequest(final boolean[] flags) {
+               
+               TmfCoalescedEventRequest<TmfEvent> request = new TmfCoalescedEventRequest<TmfEvent>(TmfEvent.class, range1, 100, 200) {
+                   @Override
+                       public void handleCompleted() {
+                       super.handleCompleted();
+                       flags[0] = true;
+                   }
+                   @Override
+                   public void handleSuccess() {
+                       super.handleSuccess();
+                       flags[1] = true;
+                   }
+                   @Override
+                   public void handleFailure() {
+                       super.handleFailure();
+                       flags[2] = true;
+                   }
+                   @Override
+                   public void handleCancel() {
+                       super.handleCancel();
+                       flags[3] = true;
+                   }
+               };
+               return request;
+       }
+       
        // ------------------------------------------------------------------------
        // Constructors
        // ------------------------------------------------------------------------
 
        public void testTmfCoalescedEventRequest() {
-        TmfCoalescedEventRequest<TmfEvent> request = new TmfCoalescedEventRequest<TmfEvent>(TmfEvent.class);
+               TmfCoalescedEventRequest<TmfEvent> request = new TmfCoalescedEventRequest<TmfEvent>(TmfEvent.class);
 
-        assertEquals("StartTime", TmfTimestamp.BigBang,   request.getRange().getStartTime());
-        assertEquals("EndTime",   TmfTimestamp.BigCrunch, request.getRange().getEndTime());
+        assertEquals("getRequestId", fRequestCount++, request.getRequestId());
+        assertEquals("getDataType",  TmfEvent.class, request.getDataType());
 
-        assertEquals("getIndex",             0, request.getIndex());
-        assertEquals("getNbRequestedEvents", TmfDataRequest.ALL_DATA, request.getNbRequested());
-        assertEquals("getBlockize", TmfDataRequest.DEFAULT_BLOCK_SIZE, request.getBlockize());
+        assertEquals("getRange", range1, request.getRange());
+        assertEquals("getNbRequestedEvents", TmfEventRequest.ALL_DATA, request.getNbRequested());
+        assertEquals("getBlockize", TmfEventRequest.DEFAULT_BLOCK_SIZE, request.getBlockize());
+
+        assertFalse("isCompleted", request.isCompleted());
+        assertFalse("isFailed", request.isFailed());
+        assertFalse("isCancelled", request.isCancelled());
+
+        assertEquals("getNbRead", 0, request.getNbRead());
        }
 
-       public void testTmfCoalescedEventRequestTimeRange() {
-        TmfTimeRange range = new TmfTimeRange(new TmfTimestamp(), TmfTimestamp.BigCrunch);
-        TmfCoalescedEventRequest<TmfEvent> request = new TmfCoalescedEventRequest<TmfEvent>(TmfEvent.class, range);
+       public void testTmfCoalescedEventRequestIndex() {
+               TmfCoalescedEventRequest<TmfEvent> request = new TmfCoalescedEventRequest<TmfEvent>(TmfEvent.class, range1);
+
+        assertEquals("getRequestId", fRequestCount++, request.getRequestId());
+        assertEquals("getDataType",  TmfEvent.class, request.getDataType());
+
+        assertEquals("getRange", range1, request.getRange());
+        assertEquals("getNbRequestedEvents", TmfEventRequest.ALL_DATA, request.getNbRequested());
+        assertEquals("getBlockize", TmfEventRequest.DEFAULT_BLOCK_SIZE, request.getBlockize());
 
-        assertEquals("StartTime", range.getStartTime(), request.getRange().getStartTime());
-        assertEquals("EndTime",   range.getEndTime(),   request.getRange().getEndTime());
+        assertFalse("isCompleted", request.isCompleted());
+        assertFalse("isFailed", request.isFailed());
+        assertFalse("isCancelled", request.isCancelled());
 
-        assertEquals("getIndex",             0, request.getIndex());
-        assertEquals("getNbRequestedEvents", TmfDataRequest.ALL_DATA, request.getNbRequested());
-        assertEquals("getBlockize", TmfDataRequest.DEFAULT_BLOCK_SIZE, request.getBlockize());
+        assertEquals("getNbRead", 0, request.getNbRead());
        }
 
-       public void testTmfCoalescedEventRequestTimeRangeNbRequested() {
-        TmfTimeRange range = new TmfTimeRange(new TmfTimestamp(), TmfTimestamp.BigCrunch);
-        TmfCoalescedEventRequest<TmfEvent> request = new TmfCoalescedEventRequest<TmfEvent>(TmfEvent.class, range, 100);
+       public void testTmfCoalescedEventRequestIndexNbRequested() {
+               TmfCoalescedEventRequest<TmfEvent> request = new TmfCoalescedEventRequest<TmfEvent>(TmfEvent.class, range1, 100);
 
-        assertEquals("StartTime", range.getStartTime(), request.getRange().getStartTime());
-        assertEquals("EndTime",   range.getEndTime(),   request.getRange().getEndTime());
+        assertEquals("getRequestId", fRequestCount++, request.getRequestId());
+        assertEquals("getDataType",  TmfEvent.class, request.getDataType());
 
-        assertEquals("getIndex",               0, request.getIndex());
+        assertEquals("getRange", range1, request.getRange());
         assertEquals("getNbRequestedEvents", 100, request.getNbRequested());
-        assertEquals("getBlockize", TmfDataRequest.DEFAULT_BLOCK_SIZE, request.getBlockize());
+        assertEquals("getBlockize", TmfEventRequest.DEFAULT_BLOCK_SIZE, request.getBlockize());
+
+        assertFalse("isCompleted", request.isCompleted());
+        assertFalse("isFailed", request.isFailed());
+        assertFalse("isCancelled", request.isCancelled());
+
+        assertEquals("getNbRead", 0, request.getNbRead());
        }
 
-       public void testTmfCoalescedEventRequestTimeRangeNbRequestedBlocksize() {
-        TmfTimeRange range = new TmfTimeRange(new TmfTimestamp(), TmfTimestamp.BigCrunch);
-        TmfCoalescedEventRequest<TmfEvent> request = new TmfCoalescedEventRequest<TmfEvent>(TmfEvent.class, range, 100, 200);
+       public void testTmfCoalescedEventRequestIndexNbEventsBlocksize() {
+               TmfCoalescedEventRequest<TmfEvent> request = new TmfCoalescedEventRequest<TmfEvent>(TmfEvent.class, range1, 100, 200);
 
-        assertEquals("StartTime", range.getStartTime(), request.getRange().getStartTime());
-        assertEquals("EndTime",   range.getEndTime(),   request.getRange().getEndTime());
+        assertEquals("getRequestId", fRequestCount++, request.getRequestId());
+        assertEquals("getDataType",  TmfEvent.class, request.getDataType());
 
-        assertEquals("getIndex",               0, request.getIndex());
+        assertEquals("getRange", range1, request.getRange());
         assertEquals("getNbRequestedEvents", 100, request.getNbRequested());
-        assertEquals("getBlockize",          200, request.getBlockize());
+        assertEquals("getBlockize", 200, request.getBlockize());
+
+        assertFalse("isCompleted", request.isCompleted());
+        assertFalse("isFailed", request.isFailed());
+        assertFalse("isCancelled", request.isCancelled());
+
+        assertEquals("getNbRead", 0, request.getNbRead());
+       }
+
+       // ------------------------------------------------------------------------
+       // equals
+       // ------------------------------------------------------------------------
+
+       public void testEqualsReflexivity() throws Exception {
+        assertTrue("equals", fRequest1.equals(fRequest1));
+        assertTrue("equals", fRequest2.equals(fRequest2));
+
+        assertFalse("equals", fRequest1.equals(fRequest2));
+        assertFalse("equals", fRequest2.equals(fRequest1));
+       }
+
+       public void testEqualsSymmetry() throws Exception {
+        assertTrue("equals", fRequest1.equals(fRequest1b));
+        assertTrue("equals", fRequest1b.equals(fRequest1));
+
+        assertFalse("equals", fRequest1.equals(fRequest3));
+        assertFalse("equals", fRequest2.equals(fRequest3));
+        assertFalse("equals", fRequest3.equals(fRequest1));
+        assertFalse("equals", fRequest3.equals(fRequest2));
+       }
+       
+       public void testEqualsTransivity() throws Exception {
+        assertTrue("equals", fRequest1.equals(fRequest1b));
+        assertTrue("equals", fRequest1b.equals(fRequest1c));
+        assertTrue("equals", fRequest1.equals(fRequest1c));
+       }
+       
+       public void testEqualsConsistency() throws Exception {
+        assertTrue("equals", fRequest1.equals(fRequest1));
+        assertTrue("equals", fRequest1.equals(fRequest1));
+
+        assertTrue("equals", fRequest2.equals(fRequest2));
+        assertTrue("equals", fRequest2.equals(fRequest2));
+       }
+       
+       public void testEqualsNull() throws Exception {
+        assertFalse("equals", fRequest1.equals(null));
+        assertFalse("equals", fRequest2.equals(null));
+       }
+
+       public void testEqualsSuper() throws Exception {
+               TmfCoalescedDataRequest<TmfEvent> dataRequest1 = new TmfCoalescedDataRequest<TmfEvent>(
+                       fRequest1.getDataType(), fRequest1.getIndex(), fRequest1.getNbRequested(), fRequest1.getBlockize());
+               TmfCoalescedDataRequest<TmfEvent> dataRequest2 = new TmfCoalescedDataRequest<TmfEvent>(
+                       fRequest1.getDataType(), fRequest1.getIndex(), fRequest1.getNbRequested(), fRequest1.getBlockize());
+               TmfCoalescedDataRequest<TmfEvent> dataRequest3 = new TmfCoalescedDataRequest<TmfEvent>(
+                       fRequest3.getDataType(), fRequest3.getIndex(), fRequest3.getNbRequested(), fRequest3.getBlockize());
+
+               assertTrue("equals", fRequest1.equals(dataRequest2));
+        assertTrue("equals", fRequest2.equals(dataRequest1));
+        assertFalse("equals", fRequest1.equals(dataRequest3));
+        assertFalse("equals", fRequest3.equals(dataRequest1));
+       }
+
+       // ------------------------------------------------------------------------
+       // hashCode
+       // ------------------------------------------------------------------------
+
+       public void testHashCode() throws Exception {
+        assertTrue("hashCode", fRequest1.hashCode() == fRequest1.hashCode());
+        assertTrue("hashCode", fRequest2.hashCode() == fRequest2.hashCode());
+               assertTrue("hashCode", fRequest1.hashCode() != fRequest2.hashCode());
+       }
+       
+       // ------------------------------------------------------------------------
+       // toString
+       // ------------------------------------------------------------------------
+
+       public void testToString() {
+        String expected1 = "[TmfCoalescedEventRequest(0,TmfEvent," + range1 + ",100,200)]";
+        String expected2 = "[TmfCoalescedEventRequest(1,TmfEvent," + range2 + ",100,200)]";
+        String expected3 = "[TmfCoalescedEventRequest(2,TmfEvent," + range2 + ",200,200)]";
+        String expected4 = "[TmfCoalescedEventRequest(3,TmfEvent," + range2 + ",200,300)]";
+
+        assertEquals("toString", expected1, fRequest1.toString());
+        assertEquals("toString", expected2, fRequest2.toString());
+        assertEquals("toString", expected3, fRequest3.toString());
+        assertEquals("toString", expected4, fRequest4.toString());
        }
 
        // ------------------------------------------------------------------------
@@ -141,26 +279,207 @@ public class TmfCoalescedEventRequestTest extends TestCase {
        // ------------------------------------------------------------------------
 
        public void testIsCompatible() {
-               TmfTimestamp startTime = new TmfTimestamp(10);
-               TmfTimestamp endTime   = new TmfTimestamp(20);
-        TmfTimeRange range1 = new TmfTimeRange(startTime, endTime);
-        TmfTimeRange range2 = new TmfTimeRange(TmfTimestamp.BigBang, endTime);
-        TmfTimeRange range3 = new TmfTimeRange(startTime, TmfTimestamp.BigCrunch);
-
-        TmfCoalescedEventRequest<TmfEvent> coalescedRequest = new TmfCoalescedEventRequest<TmfEvent>(TmfEvent.class, range1);
-               TmfDataRequest<TmfEvent> request1 = new TmfEventRequestStub<TmfEvent>(TmfEvent.class, range1);
-               TmfDataRequest<TmfEvent> request2 = new TmfEventRequestStub<TmfEvent>(TmfEvent.class, range2);
-               TmfDataRequest<TmfEvent> request3 = new TmfEventRequestStub<TmfEvent>(TmfEvent.class, range3);
+               TmfCoalescedEventRequest<TmfEvent> coalescedRequest = new TmfCoalescedEventRequest<TmfEvent>(TmfEvent.class, range1, 100, 200);
+               TmfEventRequest<TmfEvent> request1 = new TmfEventRequestStub<TmfEvent>(TmfEvent.class, range1, 100, 200);
+               TmfEventRequest<TmfEvent> request2 = new TmfEventRequestStub<TmfEvent>(TmfEvent.class, range2, 100, 200);
+               TmfEventRequest<TmfEvent> request3 = new TmfEventRequestStub<TmfEvent>(TmfEvent.class, range1, 101, 200);
+               TmfEventRequest<TmfEvent> request4 = new TmfEventRequestStub<TmfEvent>(TmfEvent.class, range1, 100, 201);
+               TmfDataRequest<TmfEvent>  request5 = new TmfDataRequestStub<TmfEvent> (TmfEvent.class,     10, 100, 201);
 
         assertTrue ("isCompatible", coalescedRequest.isCompatible(request1));
         assertFalse("isCompatible", coalescedRequest.isCompatible(request2));
         assertFalse("isCompatible", coalescedRequest.isCompatible(request3));
+        assertFalse("isCompatible", coalescedRequest.isCompatible(request4));
+        assertFalse("isCompatible", coalescedRequest.isCompatible(request5));
        }
 
+       // ------------------------------------------------------------------------
+       // setData/getData
+       // ------------------------------------------------------------------------
+
+       public void testSetData() {
+
+               TmfCoalescedEventRequest<TmfEvent> coalescedRequest = new TmfCoalescedEventRequest<TmfEvent>(TmfEvent.class, range1, 100, 200);
+               TmfEventRequest<TmfEvent> request1 = new TmfEventRequestStub<TmfEvent>(TmfEvent.class, range1, 100, 200);
+               TmfEventRequest<TmfEvent> request2 = new TmfEventRequestStub<TmfEvent>(TmfEvent.class, range1, 100, 200);
+               coalescedRequest.addRequest(request1);
+               coalescedRequest.addRequest(request2);
+
+               // Initialize the data
+               int nbEvents = 10;
+               TmfEvent[] events = new TmfEvent[nbEvents];
+               for (int i = 0; i < nbEvents; i++) {
+                       events[i] = new TmfEvent(new TmfTimestamp(i), new TmfEventSource(),
+                                       new TmfEventType(), new TmfEventReference());
+               }
+
+               coalescedRequest.setData(events);
+               coalescedRequest.handleData();
+
+               // Validate the coalescing request
+               assertEquals("setData", nbEvents, coalescedRequest.getNbRead());
+               TmfEvent[] eventsRead1 = coalescedRequest.getData();
+               assertEquals("getData", nbEvents, eventsRead1.length);
+               for (int i = 0; i < nbEvents; i++) {
+                       assertEquals("getData", i, eventsRead1[i].getTimestamp().getValue());
+               }
+
+               // Validate the first coalesced request
+               assertEquals("setData", nbEvents, request1.getNbRead());
+               TmfEvent[] eventsRead2 = request1.getData();
+               assertEquals("getData", nbEvents, eventsRead2.length);
+               for (int i = 0; i < nbEvents; i++) {
+                       assertEquals("getData", i, eventsRead2[i].getTimestamp().getValue());
+               }
+
+               // Validate the second coalesced request
+               assertEquals("setData", nbEvents, request2.getNbRead());
+               TmfEvent[] eventsRead3 = request2.getData();
+               assertEquals("getData", nbEvents, eventsRead3.length);
+               for (int i = 0; i < nbEvents; i++) {
+                       assertEquals("getData", i, eventsRead3[i].getTimestamp().getValue());
+               }
+       }
+
+       // ------------------------------------------------------------------------
+       // done
+       // ------------------------------------------------------------------------
+
+       public void testDone() {
+               
+               // Test request
+               final boolean[] crFlags = new boolean[4];
+               TmfCoalescedEventRequest<TmfEvent> request = setupTestRequest(crFlags);
+               TmfEventRequest<TmfEvent> subRequest1 = new TmfEventRequestStub<TmfEvent>(TmfEvent.class, range1, 100, 200);
+               TmfEventRequest<TmfEvent> subRequest2 = new TmfEventRequestStub<TmfEvent>(TmfEvent.class, range1, 100, 200);
+               request.addRequest(subRequest1);
+               request.addRequest(subRequest2);
+
+               request.done();
+
+               // Validate the coalescing request
+               assertTrue ("isCompleted", request.isCompleted());
+               assertFalse("isFailed",    request.isFailed());
+               assertFalse("isCancelled", request.isCancelled());
+
+               assertTrue ("handleCompleted", crFlags[0]);
+               assertTrue ("handleSuccess",   crFlags[1]);
+               assertFalse("handleFailure",   crFlags[2]);
+               assertFalse("handleCancel",    crFlags[3]);
+
+               // Validate the first coalesced request
+               assertTrue ("isCompleted", subRequest1.isCompleted());
+               assertFalse("isFailed",    subRequest1.isFailed());
+               assertFalse("isCancelled", subRequest1.isCancelled());
+
+               // Validate the second coalesced request
+               assertTrue ("isCompleted", subRequest2.isCompleted());
+               assertFalse("isFailed",    subRequest2.isFailed());
+               assertFalse("isCancelled", subRequest2.isCancelled());
+       }
+
+       // ------------------------------------------------------------------------
+       // fail
+       // ------------------------------------------------------------------------
+
+       public void testFail() {
+               
+               final boolean[] crFlags = new boolean[4];
+               TmfCoalescedEventRequest<TmfEvent> request = setupTestRequest(crFlags);
+               TmfEventRequest<TmfEvent> subRequest1 = new TmfEventRequestStub<TmfEvent>(TmfEvent.class, range1, 100, 200);
+               TmfEventRequest<TmfEvent> subRequest2 = new TmfEventRequestStub<TmfEvent>(TmfEvent.class, range1, 100, 200);
+               request.addRequest(subRequest1);
+               request.addRequest(subRequest2);
+
+               request.fail();
+
+               // Validate the coalescing request
+               assertTrue ("isCompleted", request.isCompleted());
+               assertTrue ("isFailed",    request.isFailed());
+               assertFalse("isCancelled", request.isCancelled());
+
+               assertTrue ("handleCompleted", crFlags[0]);
+               assertFalse("handleSuccess",   crFlags[1]);
+               assertTrue ("handleFailure",   crFlags[2]);
+               assertFalse("handleCancel",    crFlags[3]);
+
+               // Validate the first coalesced request
+               assertTrue ("isCompleted", subRequest1.isCompleted());
+               assertTrue ("isFailed",    subRequest1.isFailed());
+               assertFalse("isCancelled", subRequest1.isCancelled());
+
+               // Validate the second coalesced request
+               assertTrue ("isCompleted", subRequest2.isCompleted());
+               assertTrue ("isFailed",    subRequest2.isFailed());
+               assertFalse("isCancelled", subRequest2.isCancelled());
+       }
+
+       // ------------------------------------------------------------------------
+       // cancel
+       // ------------------------------------------------------------------------
+
+       public void testCancel() {
+
+               final boolean[] crFlags = new boolean[4];
+               TmfCoalescedEventRequest<TmfEvent> request = setupTestRequest(crFlags);
+               TmfEventRequest<TmfEvent> subRequest1 = new TmfEventRequestStub<TmfEvent>(TmfEvent.class, range1, 100, 200);
+               TmfEventRequest<TmfEvent> subRequest2 = new TmfEventRequestStub<TmfEvent>(TmfEvent.class, range1, 100, 200);
+               request.addRequest(subRequest1);
+               request.addRequest(subRequest2);
+
+               request.cancel();
+
+               // Validate the coalescing request
+               assertTrue ("isCompleted", request.isCompleted());
+               assertFalse("isFailed",    request.isFailed());
+               assertTrue ("isCancelled", request.isCancelled());
+
+               assertTrue ("handleCompleted", crFlags[0]);
+               assertFalse("handleSuccess",   crFlags[1]);
+               assertFalse("handleFailure",   crFlags[2]);
+               assertTrue ("handleCancel",    crFlags[3]);
+
+               // Validate the first coalesced request
+               assertTrue ("isCompleted", subRequest1.isCompleted());
+               assertFalse("isFailed",    subRequest1.isFailed());
+               assertTrue ("isCancelled", subRequest1.isCancelled());
+
+               // Validate the second coalesced request
+               assertTrue ("isCompleted", subRequest2.isCompleted());
+               assertFalse("isFailed",    subRequest2.isFailed());
+               assertTrue ("isCancelled", subRequest2.isCancelled());
+       }
+
+       // ------------------------------------------------------------------------
+       // waitForCompletion
+       // ------------------------------------------------------------------------
+
        // ------------------------------------------------------------------------
        // Coalescing
        // ------------------------------------------------------------------------
 
+    private static final String DIRECTORY   = "testfiles";
+    private static final String TEST_STREAM = "A-Test-10K";
+    private static final int    NB_EVENTS   = 10000;
+    private static final int    BLOCK_SIZE  = 100;
+
+    // Initialize the test trace
+    private static TmfTraceStub fTrace = null;
+    private TmfTraceStub setupTrace(String path) {
+       if (fTrace == null) {
+               try {
+               URL location = FileLocator.find(TmfCoreTestPlugin.getDefault().getBundle(), new Path(path), null);
+                       File test = new File(FileLocator.toFileURL(location).toURI());
+               fTrace = new TmfTraceStub(test.getPath(), 500, true);
+               } catch (URISyntaxException e) {
+                       e.printStackTrace();
+               } catch (IOException e) {
+                       e.printStackTrace();
+               }
+       }
+       return fTrace;
+    }
+
        Vector<TmfEvent> requestedEvents1;
     Vector<TmfEvent> requestedEvents2;
     Vector<TmfEvent> requestedEvents3;
@@ -169,11 +488,14 @@ public class TmfCoalescedEventRequestTest extends TestCase {
     TmfEventRequest<TmfEvent> request2;
     TmfEventRequest<TmfEvent> request3;
 
+    ITmfDataProvider<TmfEvent>[] providers;
+
     private class TmfTestTriggerSignal extends TmfSignal {
        public final boolean forceCancel;
                public TmfTestTriggerSignal(Object source, boolean cancel) {
                        super(source);
                        forceCancel = cancel;
+
                }
     }
 
@@ -224,7 +546,7 @@ public class TmfCoalescedEventRequestTest extends TestCase {
             }
         };
 
-        ITmfDataProvider<TmfEvent>[] providers = (ITmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class, TmfTraceStub.class);
+        providers = (ITmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class, TmfTraceStub.class);
         providers[0].sendRequest(request1);
         providers[0].sendRequest(request2);
         providers[0].sendRequest(request3);
@@ -232,7 +554,7 @@ public class TmfCoalescedEventRequestTest extends TestCase {
 
     public void testCoalescedRequest() throws Exception {
 
-               setupTrace(DIRECTORY + File.separator + TEST_STREAM);
+               fTrace = setupTrace(DIRECTORY + File.separator + TEST_STREAM);
 
        TmfSignalManager.register(this);
                TmfTestTriggerSignal signal = new TmfTestTriggerSignal(this, false);
@@ -263,10 +585,13 @@ public class TmfCoalescedEventRequestTest extends TestCase {
         }
 
         TmfSignalManager.deregister(this);
+        fTrace.dispose();
+        fTrace = null;
     }
     
        public void testCancelCoalescedRequest() throws Exception {
-               setupTrace(DIRECTORY + File.separator + TEST_STREAM);
+
+               fTrace = setupTrace(DIRECTORY + File.separator + TEST_STREAM);
 
        TmfSignalManager.register(this);
                TmfTestTriggerSignal signal = new TmfTestTriggerSignal(this, true);
@@ -296,7 +621,8 @@ public class TmfCoalescedEventRequestTest extends TestCase {
         }
 
         TmfSignalManager.deregister(this);
+        fTrace.dispose();
+        fTrace = null;
     }
 
-
 }
index fd2266f4ee28f0a4e795e8e40fd2a1f3ecd7474f..78bba7d15f370d96672fac4cc38f77ae420a923f 100644 (file)
@@ -15,17 +15,34 @@ package org.eclipse.linuxtools.tmf.tests.request;
 import junit.framework.TestCase;
 
 import org.eclipse.linuxtools.tmf.event.TmfEvent;
+import org.eclipse.linuxtools.tmf.event.TmfEventReference;
+import org.eclipse.linuxtools.tmf.event.TmfEventSource;
+import org.eclipse.linuxtools.tmf.event.TmfEventType;
+import org.eclipse.linuxtools.tmf.event.TmfTimestamp;
 import org.eclipse.linuxtools.tmf.request.TmfDataRequest;
 import org.eclipse.linuxtools.tmf.request.TmfDataRequestStub;
 
 /**
  * <b><u>TmfDataRequestTest</u></b>
  * <p>
- * TODO: Implement me. Please.
+ * Test suite for the TmfDataRequest class.
  */
 public class TmfDataRequestTest extends TestCase {
 
        // ------------------------------------------------------------------------
+       // Variables
+       // ------------------------------------------------------------------------
+
+       private static TmfDataRequest<TmfEvent> fRequest1;
+       private static TmfDataRequest<TmfEvent> fRequest1b;
+       private static TmfDataRequest<TmfEvent> fRequest1c;
+       private static TmfDataRequest<TmfEvent> fRequest2;
+       private static TmfDataRequest<TmfEvent> fRequest3;
+       private static TmfDataRequest<TmfEvent> fRequest4;
+
+       private static int fRequestCount;
+       
+    // ------------------------------------------------------------------------
        // Housekeeping
        // ------------------------------------------------------------------------
 
@@ -36,6 +53,14 @@ public class TmfDataRequestTest extends TestCase {
        @Override
        protected void setUp() throws Exception {
                super.setUp();
+               TmfDataRequest.reset();
+               fRequest1  = new TmfDataRequestStub<TmfEvent>(TmfEvent.class, 10, 100, 200);
+               fRequest2  = new TmfDataRequestStub<TmfEvent>(TmfEvent.class, 20, 100, 200);
+               fRequest3  = new TmfDataRequestStub<TmfEvent>(TmfEvent.class, 20, 200, 200);
+               fRequest4  = new TmfDataRequestStub<TmfEvent>(TmfEvent.class, 20, 200, 300);
+       fRequest1b = new TmfDataRequestStub<TmfEvent>(TmfEvent.class, 10, 100, 200);
+               fRequest1c = new TmfDataRequestStub<TmfEvent>(TmfEvent.class, 10, 100, 200);
+               fRequestCount = fRequest1c.getRequestId() + 1;
        }
 
        @Override
@@ -43,6 +68,33 @@ public class TmfDataRequestTest extends TestCase {
                super.tearDown();
        }
 
+       private TmfDataRequest<TmfEvent> setupTestRequest(final boolean[] flags) {
+               
+               TmfDataRequest<TmfEvent> request = new TmfDataRequestStub<TmfEvent>(TmfEvent.class, 10, 100, 200) {
+                   @Override
+                       public void handleCompleted() {
+                       super.handleCompleted();
+                       flags[0] = true;
+                   }
+                   @Override
+                   public void handleSuccess() {
+                       super.handleSuccess();
+                       flags[1] = true;
+                   }
+                   @Override
+                   public void handleFailure() {
+                       super.handleFailure();
+                       flags[2] = true;
+                   }
+                   @Override
+                   public void handleCancel() {
+                       super.handleCancel();
+                       flags[3] = true;
+                   }
+               };
+               return request;
+       }
+       
        // ------------------------------------------------------------------------
        // Constructors
        // ------------------------------------------------------------------------
@@ -50,67 +102,224 @@ public class TmfDataRequestTest extends TestCase {
        public void testTmfDataRequest() {
         TmfDataRequest<TmfEvent> request = new TmfDataRequestStub<TmfEvent>(TmfEvent.class);
 
-        assertEquals("getIndex",             0, request.getIndex());
+        assertEquals("getRequestId", fRequestCount++, request.getRequestId());
+        assertEquals("getDataType",  TmfEvent.class, request.getDataType());
+
+        assertEquals("getIndex", 0, request.getIndex());
         assertEquals("getNbRequestedEvents", TmfDataRequest.ALL_DATA, request.getNbRequested());
         assertEquals("getBlockize", TmfDataRequest.DEFAULT_BLOCK_SIZE, request.getBlockize());
+
+        assertFalse("isCompleted", request.isCompleted());
+        assertFalse("isFailed", request.isFailed());
+        assertFalse("isCancelled", request.isCancelled());
+
+        assertEquals("getNbRead", 0, request.getNbRead());
        }
 
        public void testTmfDataRequestIndex() {
         TmfDataRequest<TmfEvent> request = new TmfDataRequestStub<TmfEvent>(TmfEvent.class, 10);
 
-        assertEquals("getIndex",             10, request.getIndex());
+        assertEquals("getRequestId", fRequestCount++, request.getRequestId());
+        assertEquals("getDataType",  TmfEvent.class, request.getDataType());
+
+        assertEquals("getIndex", 10, request.getIndex());
         assertEquals("getNbRequestedEvents", TmfDataRequest.ALL_DATA, request.getNbRequested());
         assertEquals("getBlockize", TmfDataRequest.DEFAULT_BLOCK_SIZE, request.getBlockize());
+
+        assertFalse("isCompleted", request.isCompleted());
+        assertFalse("isFailed", request.isFailed());
+        assertFalse("isCancelled", request.isCancelled());
+
+        assertEquals("getNbRead", 0, request.getNbRead());
        }
 
        public void testTmfDataRequestIndexNbRequested() {
         TmfDataRequest<TmfEvent> request = new TmfDataRequestStub<TmfEvent>(TmfEvent.class, 10, 100);
 
-        assertEquals("getIndex",              10, request.getIndex());
+        assertEquals("getRequestId", fRequestCount++, request.getRequestId());
+        assertEquals("getDataType",  TmfEvent.class, request.getDataType());
+
+        assertEquals("getIndex", 10, request.getIndex());
         assertEquals("getNbRequestedEvents", 100, request.getNbRequested());
         assertEquals("getBlockize", TmfDataRequest.DEFAULT_BLOCK_SIZE, request.getBlockize());
+
+        assertFalse("isCompleted", request.isCompleted());
+        assertFalse("isFailed", request.isFailed());
+        assertFalse("isCancelled", request.isCancelled());
+
+        assertEquals("getNbRead", 0, request.getNbRead());
        }
 
        public void testTmfDataRequestIndexNbEventsBlocksize() {
         TmfDataRequest<TmfEvent> request = new TmfDataRequestStub<TmfEvent>(TmfEvent.class, 10, 100, 200);
 
-        assertEquals("getIndex",              10, request.getIndex());
+        assertEquals("getRequestId", fRequestCount++, request.getRequestId());
+        assertEquals("getDataType",  TmfEvent.class, request.getDataType());
+
+        assertEquals("getIndex", 10, request.getIndex());
         assertEquals("getNbRequestedEvents", 100, request.getNbRequested());
-        assertEquals("getBlockize",          200, request.getBlockize());
+        assertEquals("getBlockize", 200, request.getBlockize());
+
+        assertFalse("isCompleted", request.isCompleted());
+        assertFalse("isFailed", request.isFailed());
+        assertFalse("isCancelled", request.isCancelled());
+
+        assertEquals("getNbRead", 0, request.getNbRead());
        }
 
        // ------------------------------------------------------------------------
        // equals
        // ------------------------------------------------------------------------
 
-       public void testEquals_Reflexivity() {
-        TmfDataRequest<TmfEvent> request = new TmfDataRequestStub<TmfEvent>(TmfEvent.class, 10, 100, 200);
+       public void testEqualsReflexivity() throws Exception {
+        assertTrue("equals", fRequest1.equals(fRequest1));
+        assertTrue("equals", fRequest2.equals(fRequest2));
+
+        assertFalse("equals", fRequest1.equals(fRequest2));
+        assertFalse("equals", fRequest2.equals(fRequest1));
+       }
+
+       public void testEqualsSymmetry() throws Exception {
+        assertTrue("equals", fRequest1.equals(fRequest1b));
+        assertTrue("equals", fRequest1b.equals(fRequest1));
+
+        assertFalse("equals", fRequest1.equals(fRequest3));
+        assertFalse("equals", fRequest2.equals(fRequest3));
+        assertFalse("equals", fRequest3.equals(fRequest1));
+        assertFalse("equals", fRequest3.equals(fRequest2));
+       }
+       
+       public void testEqualsTransivity() throws Exception {
+        assertTrue("equals", fRequest1.equals(fRequest1b));
+        assertTrue("equals", fRequest1b.equals(fRequest1c));
+        assertTrue("equals", fRequest1.equals(fRequest1c));
+       }
+       
+       public void testEqualsConsistency() throws Exception {
+        assertTrue("equals", fRequest1.equals(fRequest1));
+        assertTrue("equals", fRequest1.equals(fRequest1));
+
+        assertTrue("equals", fRequest2.equals(fRequest2));
+        assertTrue("equals", fRequest2.equals(fRequest2));
+       }
+       
+       public void testEqualsNull() throws Exception {
+        assertFalse("equals", fRequest1.equals(null));
+        assertFalse("equals", fRequest2.equals(null));
+       }
+
+       // ------------------------------------------------------------------------
+       // hashCode
+       // ------------------------------------------------------------------------
+
+       public void testHashCode() throws Exception {
+        assertTrue("hashCode", fRequest1.hashCode() == fRequest1.hashCode());
+        assertTrue("hashCode", fRequest2.hashCode() == fRequest2.hashCode());
+               assertTrue("hashCode", fRequest1.hashCode() != fRequest2.hashCode());
+       }
+       
+       // ------------------------------------------------------------------------
+       // toString
+       // ------------------------------------------------------------------------
+
+       public void testToString() {
+        String expected1 = "[TmfDataRequest(0,TmfEvent,10,100,200)]";
+        String expected2 = "[TmfDataRequest(1,TmfEvent,20,100,200)]";
+        String expected3 = "[TmfDataRequest(2,TmfEvent,20,200,200)]";
+        String expected4 = "[TmfDataRequest(3,TmfEvent,20,200,300)]";
+
+        assertEquals("toString", expected1, fRequest1.toString());
+        assertEquals("toString", expected2, fRequest2.toString());
+        assertEquals("toString", expected3, fRequest3.toString());
+        assertEquals("toString", expected4, fRequest4.toString());
+       }
+
+       // ------------------------------------------------------------------------
+       // setData/getData
+       // ------------------------------------------------------------------------
+
+       public void testSetData() {
+               // Initialize the data
+               int nbEvents = 10;
+               TmfEvent[] events = new TmfEvent[nbEvents];
+               for (int i = 0; i < nbEvents; i++) {
+                       events[i] = new TmfEvent(new TmfTimestamp(i), new TmfEventSource(),
+                                       new TmfEventType(), new TmfEventReference());
+               }
+
+               fRequest1.setData(events);
+               assertEquals("setData", nbEvents, fRequest1.getNbRead());
+
+               TmfEvent[] eventsRead = fRequest1.getData();
+               assertEquals("getData", nbEvents, eventsRead.length);
+
+               for (int i = 0; i < nbEvents; i++) {
+                       assertEquals("getData", i, eventsRead[i].getTimestamp().getValue());
+               }
+       }
+
+       // ------------------------------------------------------------------------
+       // done
+       // ------------------------------------------------------------------------
+
+       public void testDone() {
+               
+               final boolean[] flags = new boolean[4];
+               TmfDataRequest<TmfEvent> request = setupTestRequest(flags);
+               request.done();
+
+               assertTrue ("isCompleted", request.isCompleted());
+               assertFalse("isFailed",    request.isFailed());
+               assertFalse("isCancelled", request.isCancelled());
 
-        assertTrue("request.equals(request)", request.equals(request));
+               assertTrue ("handleCompleted", flags[0]);
+               assertTrue ("handleSuccess",   flags[1]);
+               assertFalse("handleFailure",   flags[2]);
+               assertFalse("handleCancel",    flags[3]);
        }
 
-       public void testEquals_Symmetry() {
-        TmfDataRequest<TmfEvent> request1 = new TmfDataRequestStub<TmfEvent>(TmfEvent.class, 10, 100, 200);
-        TmfDataRequest<TmfEvent> request2 = new TmfDataRequestStub<TmfEvent>(TmfEvent.class, 10, 100, 200);
-        TmfDataRequest<TmfEvent> request3 = new TmfDataRequestStub<TmfEvent>(TmfEvent.class, 20, 100, 200);
+       // ------------------------------------------------------------------------
+       // fail
+       // ------------------------------------------------------------------------
 
-        assertTrue("request1.equals(request2)", request1.equals(request2));
-        assertTrue("request2.equals(request1)", request2.equals(request1));
+       public void testFail() {
+               
+               final boolean[] flags = new boolean[4];
+               TmfDataRequest<TmfEvent> request = setupTestRequest(flags);
+               request.fail();
 
-        assertFalse("request1.equals(request3)", request1.equals(request3));
-        assertFalse("request3.equals(request1)", request3.equals(request1));
-        assertFalse("request2.equals(request3)", request2.equals(request3));
-        assertFalse("request3.equals(request2)", request3.equals(request2));
+               assertTrue ("isCompleted", request.isCompleted());
+               assertTrue ("isFailed",    request.isFailed());
+               assertFalse("isCancelled", request.isCancelled());
+
+               assertTrue ("handleCompleted", flags[0]);
+               assertFalse("handleSuccess",   flags[1]);
+               assertTrue ("handleFailure",   flags[2]);
+               assertFalse("handleCancel",    flags[3]);
        }
 
-       public void testEquals_Transivity() {
-        TmfDataRequest<TmfEvent> request1 = new TmfDataRequestStub<TmfEvent>(TmfEvent.class, 10, 100, 200);
-        TmfDataRequest<TmfEvent> request2 = new TmfDataRequestStub<TmfEvent>(TmfEvent.class, 10, 100, 200);
-        TmfDataRequest<TmfEvent> request3 = new TmfDataRequestStub<TmfEvent>(TmfEvent.class, 10, 100, 200);
+       // ------------------------------------------------------------------------
+       // cancel
+       // ------------------------------------------------------------------------
+
+       public void testCancel() {
+
+               final boolean[] flags = new boolean[4];
+               TmfDataRequest<TmfEvent> request = setupTestRequest(flags);
+               request.cancel();
+
+               assertTrue ("isCompleted", request.isCompleted());
+               assertFalse("isFailed",    request.isFailed());
+               assertTrue ("isCancelled", request.isCancelled());
 
-        assertTrue("request1.equals(request2)", request1.equals(request2));
-        assertTrue("request2.equals(request3)", request2.equals(request3));
-        assertTrue("request1.equals(request3)", request1.equals(request3));
+               assertTrue ("handleCompleted", flags[0]);
+               assertFalse("handleSuccess",   flags[1]);
+               assertFalse("handleFailure",   flags[2]);
+               assertTrue ("handleCancel",    flags[3]);
        }
 
+       // ------------------------------------------------------------------------
+       // waitForCompletion
+       // ------------------------------------------------------------------------
+
 }
\ No newline at end of file
index de1f1666f367b10a041ae19b3a6c1538e0b61fee..fa31550b317875f67d48790745c64ed7b6126203 100644 (file)
@@ -15,6 +15,9 @@ package org.eclipse.linuxtools.tmf.tests.request;
 import junit.framework.TestCase;
 
 import org.eclipse.linuxtools.tmf.event.TmfEvent;
+import org.eclipse.linuxtools.tmf.event.TmfEventReference;
+import org.eclipse.linuxtools.tmf.event.TmfEventSource;
+import org.eclipse.linuxtools.tmf.event.TmfEventType;
 import org.eclipse.linuxtools.tmf.event.TmfTimeRange;
 import org.eclipse.linuxtools.tmf.event.TmfTimestamp;
 import org.eclipse.linuxtools.tmf.request.TmfDataRequest;
@@ -24,10 +27,26 @@ import org.eclipse.linuxtools.tmf.request.TmfEventRequestStub;
 /**
  * <b><u>TmfEventRequestTest</u></b>
  * <p>
- * TODO: Implement me. Please.
+ * Test suite for the TmfEventRequest class.
  */
 public class TmfEventRequestTest extends TestCase {
 
+       // ------------------------------------------------------------------------
+       // Variables
+       // ------------------------------------------------------------------------
+
+       private static TmfTimeRange range1 = new TmfTimeRange(TmfTimeRange.Eternity);
+       private static TmfTimeRange range2 = new TmfTimeRange(new TmfTimestamp(), TmfTimestamp.BigCrunch);
+       
+       private static TmfEventRequest<TmfEvent> fRequest1;
+       private static TmfEventRequest<TmfEvent> fRequest1b;
+       private static TmfEventRequest<TmfEvent> fRequest1c;
+       private static TmfEventRequest<TmfEvent> fRequest2;
+       private static TmfEventRequest<TmfEvent> fRequest3;
+       private static TmfEventRequest<TmfEvent> fRequest4;
+
+       private static int fRequestCount;
+       
        // ------------------------------------------------------------------------
        // Housekeeping
        // ------------------------------------------------------------------------
@@ -39,6 +58,14 @@ public class TmfEventRequestTest extends TestCase {
        @Override
        protected void setUp() throws Exception {
                super.setUp();
+               TmfDataRequest.reset();
+               fRequest1  = new TmfEventRequestStub<TmfEvent>(TmfEvent.class, range1, 100, 200);
+               fRequest2  = new TmfEventRequestStub<TmfEvent>(TmfEvent.class, range2, 100, 200);
+               fRequest3  = new TmfEventRequestStub<TmfEvent>(TmfEvent.class, range2, 200, 200);
+               fRequest4  = new TmfEventRequestStub<TmfEvent>(TmfEvent.class, range2, 200, 300);
+               fRequest1b = new TmfEventRequestStub<TmfEvent>(TmfEvent.class, range1, 100, 200);
+               fRequest1c = new TmfEventRequestStub<TmfEvent>(TmfEvent.class, range1, 100, 200);
+               fRequestCount = fRequest1c.getRequestId() + 1;
        }
 
        @Override
@@ -46,6 +73,33 @@ public class TmfEventRequestTest extends TestCase {
                super.tearDown();
        }
 
+       private TmfEventRequest<TmfEvent> setupTestRequest(final boolean[] flags) {
+               
+               TmfEventRequest<TmfEvent> request = new TmfEventRequestStub<TmfEvent>(TmfEvent.class, new TmfTimeRange(TmfTimeRange.Eternity), 100, 200) {
+                   @Override
+                       public void handleCompleted() {
+                       super.handleCompleted();
+                       flags[0] = true;
+                   }
+                   @Override
+                   public void handleSuccess() {
+                       super.handleSuccess();
+                       flags[1] = true;
+                   }
+                   @Override
+                   public void handleFailure() {
+                       super.handleFailure();
+                       flags[2] = true;
+                   }
+                   @Override
+                   public void handleCancel() {
+                       super.handleCancel();
+                       flags[3] = true;
+                   }
+               };
+               return request;
+       }
+       
        // ------------------------------------------------------------------------
        // Constructors
        // ------------------------------------------------------------------------
@@ -53,92 +107,239 @@ public class TmfEventRequestTest extends TestCase {
        public void testTmfEventRequest() {
         TmfEventRequest<TmfEvent> request = new TmfEventRequestStub<TmfEvent>(TmfEvent.class);
 
+        assertEquals("getRequestId", fRequestCount++, request.getRequestId());
+        assertEquals("getDataType",  TmfEvent.class, request.getDataType());
+
         assertEquals("StartTime", TmfTimestamp.BigBang,   request.getRange().getStartTime());
         assertEquals("EndTime",   TmfTimestamp.BigCrunch, request.getRange().getEndTime());
 
-        assertEquals("getIndex",             0, request.getIndex());
+        assertEquals("getIndex", 0, request.getIndex());
         assertEquals("getNbRequestedEvents", TmfDataRequest.ALL_DATA, request.getNbRequested());
         assertEquals("getBlockize", TmfDataRequest.DEFAULT_BLOCK_SIZE, request.getBlockize());
+
+        assertFalse("isCompleted", request.isCompleted());
+        assertFalse("isFailed", request.isFailed());
+        assertFalse("isCancelled", request.isCancelled());
+
+        assertEquals("getNbRead", 0, request.getNbRead());
        }
 
        public void testTmfEventRequestTimeRange() {
         TmfTimeRange range = new TmfTimeRange(new TmfTimestamp(), TmfTimestamp.BigCrunch);
         TmfEventRequest<TmfEvent> request = new TmfEventRequestStub<TmfEvent>(TmfEvent.class, range);
 
-        assertEquals("StartTime", range.getStartTime(), request.getRange().getStartTime());
-        assertEquals("EndTime",   range.getEndTime(),   request.getRange().getEndTime());
+        assertEquals("getRequestId", fRequestCount++, request.getRequestId());
+        assertEquals("getDataType",  TmfEvent.class, request.getDataType());
+
+        assertEquals("StartTime", new TmfTimestamp(), request.getRange().getStartTime());
+        assertEquals("EndTime",   TmfTimestamp.BigCrunch, request.getRange().getEndTime());
 
-        assertEquals("getIndex",             0, request.getIndex());
+        assertEquals("getIndex", 0, request.getIndex());
         assertEquals("getNbRequestedEvents", TmfDataRequest.ALL_DATA, request.getNbRequested());
         assertEquals("getBlockize", TmfDataRequest.DEFAULT_BLOCK_SIZE, request.getBlockize());
+
+        assertFalse("isCompleted", request.isCompleted());
+        assertFalse("isFailed", request.isFailed());
+        assertFalse("isCancelled", request.isCancelled());
+
+        assertEquals("getNbRead", 0, request.getNbRead());
        }
 
        public void testTmfEventRequestTimeRangeNbRequested() {
         TmfTimeRange range = new TmfTimeRange(new TmfTimestamp(), TmfTimestamp.BigCrunch);
         TmfEventRequest<TmfEvent> request = new TmfEventRequestStub<TmfEvent>(TmfEvent.class, range, 100);
 
-        assertEquals("StartTime", range.getStartTime(), request.getRange().getStartTime());
-        assertEquals("EndTime",   range.getEndTime(),   request.getRange().getEndTime());
+        assertEquals("getRequestId", fRequestCount++, request.getRequestId());
+        assertEquals("getDataType",  TmfEvent.class, request.getDataType());
+
+        assertEquals("StartTime", new TmfTimestamp(), request.getRange().getStartTime());
+        assertEquals("EndTime",   TmfTimestamp.BigCrunch, request.getRange().getEndTime());
 
-        assertEquals("getIndex",               0, request.getIndex());
+        assertEquals("getIndex", 0, request.getIndex());
         assertEquals("getNbRequestedEvents", 100, request.getNbRequested());
         assertEquals("getBlockize", TmfDataRequest.DEFAULT_BLOCK_SIZE, request.getBlockize());
+
+        assertFalse("isCompleted", request.isCompleted());
+        assertFalse("isFailed", request.isFailed());
+        assertFalse("isCancelled", request.isCancelled());
+
+        assertEquals("getNbRead", 0, request.getNbRead());
        }
 
        public void testTmfEventRequestTimeRangeNbRequestedBlocksize() {
         TmfTimeRange range = new TmfTimeRange(new TmfTimestamp(), TmfTimestamp.BigCrunch);
         TmfEventRequest<TmfEvent> request = new TmfEventRequestStub<TmfEvent>(TmfEvent.class, range, 100, 200);
 
-        assertEquals("StartTime", range.getStartTime(), request.getRange().getStartTime());
-        assertEquals("EndTime",   range.getEndTime(),   request.getRange().getEndTime());
+        assertEquals("getRequestId", fRequestCount++, request.getRequestId());
+        assertEquals("getDataType",  TmfEvent.class, request.getDataType());
 
-        assertEquals("getIndex",               0, request.getIndex());
+        assertEquals("StartTime", new TmfTimestamp(), request.getRange().getStartTime());
+        assertEquals("EndTime",   TmfTimestamp.BigCrunch, request.getRange().getEndTime());
+
+        assertEquals("getIndex", 0, request.getIndex());
         assertEquals("getNbRequestedEvents", 100, request.getNbRequested());
-        assertEquals("getBlockize",          200, request.getBlockize());
+        assertEquals("getBlockize", 200, request.getBlockize());
+
+        assertFalse("isCompleted", request.isCompleted());
+        assertFalse("isFailed", request.isFailed());
+        assertFalse("isCancelled", request.isCancelled());
+
+        assertEquals("getNbRead", 0, request.getNbRead());
        }
 
        // ------------------------------------------------------------------------
        // equals
        // ------------------------------------------------------------------------
 
-       public void testEquals_Reflexivity() {
-        TmfTimeRange range = new TmfTimeRange(new TmfTimestamp(), TmfTimestamp.BigCrunch);
-        TmfEventRequest<TmfEvent> request = new TmfEventRequestStub<TmfEvent>(TmfEvent.class, range, 100, 200);
+       public void testEqualsReflexivity() throws Exception {
+        assertTrue("equals", fRequest1.equals(fRequest1));
+        assertTrue("equals", fRequest2.equals(fRequest2));
+
+        assertFalse("equals", fRequest1.equals(fRequest2));
+        assertFalse("equals", fRequest2.equals(fRequest1));
+       }
+
+       public void testEqualsSymmetry() throws Exception {
+        assertTrue("equals", fRequest1.equals(fRequest1b));
+        assertTrue("equals", fRequest1b.equals(fRequest1));
+
+        assertFalse("equals", fRequest1.equals(fRequest3));
+        assertFalse("equals", fRequest2.equals(fRequest3));
+        assertFalse("equals", fRequest3.equals(fRequest1));
+        assertFalse("equals", fRequest3.equals(fRequest2));
+       }
+       
+       public void testEqualsTransivity() throws Exception {
+        assertTrue("equals", fRequest1.equals(fRequest1b));
+        assertTrue("equals", fRequest1b.equals(fRequest1c));
+        assertTrue("equals", fRequest1.equals(fRequest1c));
+       }
+       
+       public void testEqualsConsistency() throws Exception {
+        assertTrue("equals", fRequest1.equals(fRequest1));
+        assertTrue("equals", fRequest1.equals(fRequest1));
+
+        assertTrue("equals", fRequest2.equals(fRequest2));
+        assertTrue("equals", fRequest2.equals(fRequest2));
+       }
+       
+       public void testEqualsNull() throws Exception {
+        assertFalse("equals", fRequest1.equals(null));
+        assertFalse("equals", fRequest2.equals(null));
+       }
+
+       // ------------------------------------------------------------------------
+       // hashCode
+       // ------------------------------------------------------------------------
+
+       public void testHashCode() throws Exception {
+        assertTrue("hashCode", fRequest1.hashCode() == fRequest1.hashCode());
+        assertTrue("hashCode", fRequest2.hashCode() == fRequest2.hashCode());
+               assertTrue("hashCode", fRequest1.hashCode() != fRequest2.hashCode());
+       }
+       
+       // ------------------------------------------------------------------------
+       // toString
+       // ------------------------------------------------------------------------
 
-        assertTrue("request.equals(request)", request.equals(request));
+       public void testToString() {
+        String expected1 = "[TmfEventRequest(0,TmfEvent," + range1 + ",100,200)]";
+        String expected2 = "[TmfEventRequest(1,TmfEvent," + range2 + ",100,200)]";
+        String expected3 = "[TmfEventRequest(2,TmfEvent," + range2 + ",200,200)]";
+        String expected4 = "[TmfEventRequest(3,TmfEvent," + range2 + ",200,300)]";
+
+        assertEquals("toString", expected1, fRequest1.toString());
+        assertEquals("toString", expected2, fRequest2.toString());
+        assertEquals("toString", expected3, fRequest3.toString());
+        assertEquals("toString", expected4, fRequest4.toString());
        }
 
-       public void testEquals_Symmetry() {
-        TmfTimeRange range1 = new TmfTimeRange(new TmfTimestamp(), TmfTimestamp.BigCrunch);
-        TmfTimeRange range2 = new TmfTimeRange(new TmfTimestamp(), TmfTimestamp.BigCrunch);
-        TmfTimeRange range3 = new TmfTimeRange(new TmfTimestamp(), TmfTimestamp.Zero);
+       // ------------------------------------------------------------------------
+       // setData/getData
+       // ------------------------------------------------------------------------
+
+       public void testSetData() {
+               // Initialize the data
+               int nbEvents = 10;
+               TmfEvent[] events = new TmfEvent[nbEvents];
+               for (int i = 0; i < nbEvents; i++) {
+                       events[i] = new TmfEvent(new TmfTimestamp(i), new TmfEventSource(),
+                                       new TmfEventType(), new TmfEventReference());
+               }
 
-        TmfEventRequest<TmfEvent> request1 = new TmfEventRequestStub<TmfEvent>(TmfEvent.class, range1, 100, 200);
-        TmfEventRequest<TmfEvent> request2 = new TmfEventRequestStub<TmfEvent>(TmfEvent.class, range2, 100, 200);
-        TmfEventRequest<TmfEvent> request3 = new TmfEventRequestStub<TmfEvent>(TmfEvent.class, range3, 100, 200);
+               fRequest1.setData(events);
+               assertEquals("setData", nbEvents, fRequest1.getNbRead());
 
-        assertTrue("request1.equals(request2)", request1.equals(request2));
-        assertTrue("request2.equals(request1)", request2.equals(request1));
+               TmfEvent[] eventsRead = fRequest1.getData();
+               assertEquals("getData", nbEvents, eventsRead.length);
 
-        assertFalse("request1.equals(request3)", request1.equals(request3));
-        assertFalse("request3.equals(request1)", request3.equals(request1));
-        assertFalse("request2.equals(request3)", request2.equals(request3));
-        assertFalse("request3.equals(request2)", request3.equals(request2));
+               for (int i = 0; i < nbEvents; i++) {
+                       assertEquals("getData", i, eventsRead[i].getTimestamp().getValue());
+               }
        }
 
-       public void testEquals_Transivity() {
-        TmfTimeRange range1 = new TmfTimeRange(new TmfTimestamp(), TmfTimestamp.BigCrunch);
+       // ------------------------------------------------------------------------
+       // done
+       // ------------------------------------------------------------------------
+
+       public void testDone() {
+               
+               final boolean[] flags = new boolean[4];
+               TmfEventRequest<TmfEvent> request = setupTestRequest(flags);
+               request.done();
 
-        TmfEventRequest<TmfEvent> request1 = new TmfEventRequestStub<TmfEvent>(TmfEvent.class, range1, 100, 200);
-        TmfEventRequest<TmfEvent> request2 = new TmfEventRequestStub<TmfEvent>(TmfEvent.class, range1, 100, 200);
-        TmfEventRequest<TmfEvent> request3 = new TmfEventRequestStub<TmfEvent>(TmfEvent.class, range1, 100, 200);
+               assertTrue ("isCompleted", request.isCompleted());
+               assertFalse("isFailed",    request.isFailed());
+               assertFalse("isCancelled", request.isCancelled());
 
-        assertTrue("request1.equals(request2)", request1.equals(request2));
-        assertTrue("request1.equals(request3)", request1.equals(request3));
-        assertTrue("request2.equals(request1)", request2.equals(request1));
-        assertTrue("request2.equals(request3)", request2.equals(request3));
-        assertTrue("request3.equals(request1)", request3.equals(request1));
-        assertTrue("request3.equals(request2)", request3.equals(request2));
+               assertTrue ("handleCompleted", flags[0]);
+               assertTrue ("handleSuccess",   flags[1]);
+               assertFalse("handleFailure",   flags[2]);
+               assertFalse("handleCancel",    flags[3]);
        }
 
+       // ------------------------------------------------------------------------
+       // fail
+       // ------------------------------------------------------------------------
+
+       public void testFail() {
+               
+               final boolean[] flags = new boolean[4];
+               TmfEventRequest<TmfEvent> request = setupTestRequest(flags);
+               request.fail();
+
+               assertTrue ("isCompleted", request.isCompleted());
+               assertTrue ("isFailed",    request.isFailed());
+               assertFalse("isCancelled", request.isCancelled());
+
+               assertTrue ("handleCompleted", flags[0]);
+               assertFalse("handleSuccess",   flags[1]);
+               assertTrue ("handleFailure",   flags[2]);
+               assertFalse("handleCancel",    flags[3]);
+       }
+
+       // ------------------------------------------------------------------------
+       // cancel
+       // ------------------------------------------------------------------------
+
+       public void testCancel() {
+
+               final boolean[] flags = new boolean[4];
+               TmfEventRequest<TmfEvent> request = setupTestRequest(flags);
+               request.cancel();
+
+               assertTrue ("isCompleted", request.isCompleted());
+               assertFalse("isFailed",    request.isFailed());
+               assertTrue ("isCancelled", request.isCancelled());
+
+               assertTrue ("handleCompleted", flags[0]);
+               assertFalse("handleSuccess",   flags[1]);
+               assertFalse("handleFailure",   flags[2]);
+               assertTrue ("handleCancel",    flags[3]);
+       }
+
+       // ------------------------------------------------------------------------
+       // waitForCompletion
+       // ------------------------------------------------------------------------
+
 }
\ No newline at end of file
index 003db950c5734be7dc6ec9baee0a5a6c33f0640c..53e228efcf1268c7aae459eb844bed5d3804c146 100644 (file)
 
 package org.eclipse.linuxtools.tmf.tests.request;
 
-import java.util.concurrent.Executors;
-
 import junit.framework.TestCase;
 
-import org.eclipse.linuxtools.tmf.request.TmfRequestExecutor;
-
 /**
  * <b><u>TmfRequestExecutorTest</u></b>
  *
@@ -25,92 +21,74 @@ import org.eclipse.linuxtools.tmf.request.TmfRequestExecutor;
  */
 public class TmfRequestExecutorTest extends TestCase {
 
-       // ------------------------------------------------------------------------
-       // Variables
-       // ------------------------------------------------------------------------
-
-       // ------------------------------------------------------------------------
-       // Housekeeping
-       // ------------------------------------------------------------------------
-
        /**
-        * @param name the test name
+        * @param name
         */
        public TmfRequestExecutorTest(String name) {
                super(name);
        }
 
-       @Override
+       /* (non-Javadoc)
+        * @see junit.framework.TestCase#setUp()
+        */
        protected void setUp() throws Exception {
                super.setUp();
        }
 
-       @Override
+       /* (non-Javadoc)
+        * @see junit.framework.TestCase#tearDown()
+        */
        protected void tearDown() throws Exception {
                super.tearDown();
        }
 
-       // ------------------------------------------------------------------------
-       // Constructors
-       // ------------------------------------------------------------------------
+       /**
+        * Test method for {@link org.eclipse.linuxtools.tmf.request.TmfRequestExecutor#TmfRequestExecutor(java.util.concurrent.ExecutorService)}.
+        */
+       public void testTmfRequestExecutorExecutorService() {
+               fail("Not yet implemented");
+       }
 
        /**
         * Test method for {@link org.eclipse.linuxtools.tmf.request.TmfRequestExecutor#TmfRequestExecutor()}.
         */
        public void testTmfRequestExecutor() {
-               TmfRequestExecutor executor = new TmfRequestExecutor();
-               assertEquals("nbPendingRequests", 0, executor.getNbPendingRequests());
-               assertFalse("isShutdown",   executor.isShutdown());
-               assertFalse("isTerminated", executor.isTerminated());
+               fail("Not yet implemented");
        }
 
        /**
-        * Test method for {@link org.eclipse.linuxtools.tmf.request.TmfRequestExecutor#TmfRequestExecutor(java.util.concurrent.ExecutorService)}.
+        * Test method for {@link org.eclipse.linuxtools.tmf.request.TmfRequestExecutor#start()}.
         */
-       public void testTmfRequestExecutorExecutorService() {
-               TmfRequestExecutor executor = new TmfRequestExecutor(Executors.newCachedThreadPool());
-               assertEquals("nbPendingRequests", 0, executor.getNbPendingRequests());
-               assertFalse("isShutdown",   executor.isShutdown());
-               assertFalse("isTerminated", executor.isTerminated());
+       public void testStart() {
+               fail("Not yet implemented");
        }
 
        /**
         * Test method for {@link org.eclipse.linuxtools.tmf.request.TmfRequestExecutor#stop()}.
         */
        public void testStop() {
-               TmfRequestExecutor executor = new TmfRequestExecutor();
-               executor.stop();
-               assertEquals("nbPendingRequests", 0, executor.getNbPendingRequests());
-               assertTrue("isShutdown",   executor.isShutdown());
-               assertTrue("isTerminated", executor.isTerminated());
+               fail("Not yet implemented");
        }
 
-       // ------------------------------------------------------------------------
-       // execute
-       // ------------------------------------------------------------------------
-
        /**
         * Test method for {@link org.eclipse.linuxtools.tmf.request.TmfRequestExecutor#execute(java.lang.Runnable)}.
         */
        public void testExecute() {
-//             fail("Not yet implemented");
+               fail("Not yet implemented");
        }
 
-       // ------------------------------------------------------------------------
-       // toString
-       // ------------------------------------------------------------------------
+       /**
+        * Test method for {@link org.eclipse.linuxtools.tmf.request.TmfRequestExecutor#scheduleNext()}.
+        */
+       public void testScheduleNext() {
+               fail("Not yet implemented");
+       }
 
        /**
-        * Test method for {@link org.eclipse.linuxtools.tmf.request.TmfRequestExecutor#toString()}.
+        * Test method for {@link org.eclipse.linuxtools.tmf.request.TmfRequestExecutor#queueRequest(java.lang.Runnable)}.
         */
-       public void testToString() {
-//             TmfRequestExecutor executor1 = new TmfRequestExecutor();
-//             String expected1 = "[TmfRequestExecutor(DelegatedExecutorService)]";
-//             assertEquals("toString", expected1, executor1.toString());
-//
-//             TmfRequestExecutor executor2 = new TmfRequestExecutor(Executors.newCachedThreadPool());
-//             String expected2 = "[TmfRequestExecutor(ThreadPoolExecutor)]";
-//             assertEquals("toString", expected2, executor2.toString());
+       public void testQueueRequest() {
+               fail("Not yet implemented");
        }
 
 }
index 6f8f68ee46d30352169dda3bd5977588ea02e796..a93e01ed3f28d948ba818d2905b3beb5cd5985a3 100644 (file)
@@ -20,11 +20,10 @@ import java.net.URL;
 import org.eclipse.core.runtime.FileLocator;
 import org.eclipse.core.runtime.Path;
 import org.eclipse.linuxtools.tmf.event.TmfData;
-import org.eclipse.linuxtools.tmf.request.TmfDataRequest;
-import org.eclipse.linuxtools.tmf.request.TmfEventRequest;
+import org.eclipse.linuxtools.tmf.request.ITmfDataRequest;
+import org.eclipse.linuxtools.tmf.request.ITmfEventRequest;
 import org.eclipse.linuxtools.tmf.tests.TmfCoreTestPlugin;
 import org.eclipse.linuxtools.tmf.trace.ITmfContext;
-import org.eclipse.linuxtools.tmf.trace.TmfContext;
 import org.eclipse.linuxtools.tmf.trace.TmfTraceStub;
 
 /**
@@ -59,9 +58,9 @@ public class TmfDataProviderStub extends TmfDataProvider<TmfData> {
     // ------------------------------------------------------------------------
 
        @Override
-       public ITmfContext armRequest(TmfDataRequest<TmfData> request) {
-               if (request instanceof TmfEventRequest<?>) {
-                       TmfContext context = fTrace.seekEvent(((TmfEventRequest<?>) request).getRange().getStartTime());
+       public ITmfContext armRequest(ITmfDataRequest<TmfData> request) {
+               if (request instanceof ITmfEventRequest<?>) {
+                       ITmfContext context = fTrace.seekEvent(((ITmfEventRequest<?>) request).getRange().getStartTime());
                        return context;
                }
                return null;
@@ -73,7 +72,7 @@ public class TmfDataProviderStub extends TmfDataProvider<TmfData> {
        }
 
        @Override
-       public boolean isCompleted(TmfDataRequest<TmfData> request, TmfData data, int nbRead) {
+       public boolean isCompleted(ITmfDataRequest<TmfData> request, TmfData data, int nbRead) {
                return false;
        }
 
index ddf092acbfead8b67b9ecc3366eed123ef1d9838..b6e58fb631b9b66edf4e14c50ae5675dbe748cad 100644 (file)
@@ -20,11 +20,10 @@ import java.net.URL;
 import org.eclipse.core.runtime.FileLocator;
 import org.eclipse.core.runtime.Path;
 import org.eclipse.linuxtools.tmf.event.TmfEvent;
-import org.eclipse.linuxtools.tmf.request.TmfDataRequest;
-import org.eclipse.linuxtools.tmf.request.TmfEventRequest;
+import org.eclipse.linuxtools.tmf.request.ITmfDataRequest;
+import org.eclipse.linuxtools.tmf.request.ITmfEventRequest;
 import org.eclipse.linuxtools.tmf.tests.TmfCoreTestPlugin;
 import org.eclipse.linuxtools.tmf.trace.ITmfContext;
-import org.eclipse.linuxtools.tmf.trace.TmfContext;
 import org.eclipse.linuxtools.tmf.trace.TmfTraceStub;
 
 /**
@@ -55,9 +54,9 @@ public class TmfEventProviderStub extends TmfEventProvider<TmfEvent> {
     }
 
     @Override
-    public void deregister() {
-       fTrace.deregister();
-       super.deregister();
+    public void dispose() {
+       fTrace.dispose();
+       super.dispose();
     }
     
     // ------------------------------------------------------------------------
@@ -65,9 +64,9 @@ public class TmfEventProviderStub extends TmfEventProvider<TmfEvent> {
     // ------------------------------------------------------------------------
 
        @Override
-       public ITmfContext armRequest(TmfDataRequest<TmfEvent> request) {
-               if (request instanceof TmfEventRequest<?>) {
-                       TmfContext context = fTrace.seekEvent(((TmfEventRequest<?>) request).getRange().getStartTime());
+       public ITmfContext armRequest(ITmfDataRequest<TmfEvent> request) {
+               if (request instanceof ITmfEventRequest<?>) {
+                       ITmfContext context = fTrace.seekEvent(((ITmfEventRequest<?>) request).getRange().getStartTime());
                        return context;
                }
                return null;
index 4e811268d0215667434ad57e25168dba3e2e216e..2fab19ae0f63e83c1b03c3191381442a0a821cfa 100644 (file)
@@ -15,7 +15,8 @@ package org.eclipse.linuxtools.tmf.component;
 import org.eclipse.linuxtools.tmf.event.TmfEvent;
 import org.eclipse.linuxtools.tmf.event.TmfSyntheticEventStub;
 import org.eclipse.linuxtools.tmf.event.TmfTimeRange;
-import org.eclipse.linuxtools.tmf.request.TmfDataRequest;
+import org.eclipse.linuxtools.tmf.request.ITmfDataRequest;
+import org.eclipse.linuxtools.tmf.request.ITmfEventRequest;
 import org.eclipse.linuxtools.tmf.request.TmfEventRequest;
 import org.eclipse.linuxtools.tmf.trace.ITmfContext;
 import org.eclipse.linuxtools.tmf.trace.TmfContext;
@@ -34,26 +35,16 @@ public class TmfSyntheticEventProviderStub extends TmfEventProvider<TmfSynthetic
                super(TmfSyntheticEventStub.class);
        }
 
-    @Override
-    public void register() {
-       super.register();
-    }
-    
-    @Override
-    public void deregister() {
-       super.deregister();
-    }
-    
        @SuppressWarnings("unchecked")
        @Override
-       public ITmfContext armRequest(final TmfDataRequest<TmfSyntheticEventStub> request) {
+       public ITmfContext armRequest(final ITmfDataRequest<TmfSyntheticEventStub> request) {
 
                // Get the TmfSyntheticEventStub provider
                ITmfDataProvider<TmfEvent>[] eventProviders = (ITmfDataProvider<TmfEvent>[]) TmfProviderManager.getProviders(TmfEvent.class, TmfEventProviderStub.class);
                ITmfDataProvider<TmfEvent> provider = eventProviders[0];
 
                // make sure we have the right type of request
-               if (!(request instanceof TmfEventRequest<?>)) {
+               if (!(request instanceof ITmfEventRequest<?>)) {
                        request.cancel();
                        return null;
                }
index 7e41522d0ec4fd6ecc79681c1d75794c74de2564..f5630a4596b99ad77128892b7971b433a2db8b29 100644 (file)
@@ -25,14 +25,14 @@ public class TmfDataRequestStub<T extends TmfData> extends TmfDataRequest<T> {
      * Default constructor
      */
     public TmfDataRequestStub(Class<T> dataType) {
-        this(dataType, 0, ALL_DATA, DEFAULT_BLOCK_SIZE);
+        super(dataType);
     }
 
     /**
      * @param nbRequested
      */
     public TmfDataRequestStub(Class<T> dataType, int index) {
-        this(dataType, index, ALL_DATA, DEFAULT_BLOCK_SIZE);
+        super(dataType, index);
     }
 
     /**
@@ -40,7 +40,7 @@ public class TmfDataRequestStub<T extends TmfData> extends TmfDataRequest<T> {
      * @param nbRequested
      */
     public TmfDataRequestStub(Class<T> dataType, int index, int nbRequested) {
-        this(dataType, index, nbRequested, DEFAULT_BLOCK_SIZE);
+       super(dataType, index, nbRequested);
     }
 
     /**
index fc305b69b6a6b17630361da4e8ff03b86dd5a944..4c7f74dae72df1e8a9368292ef1b156cf7555b55 100644 (file)
@@ -26,14 +26,14 @@ public class TmfEventRequestStub<T extends TmfEvent> extends TmfEventRequest<T>
      * @param range
      */
     public TmfEventRequestStub(Class<T> dataType) {
-        this(dataType, TmfTimeRange.Eternity, ALL_DATA, DEFAULT_BLOCK_SIZE);
+       super(dataType);
     }
 
     /**
      * @param range
      */
     public TmfEventRequestStub(Class<T> dataType, TmfTimeRange range) {
-        this(dataType, range, ALL_DATA, DEFAULT_BLOCK_SIZE);
+       super(dataType, range);
     }
 
     /**
@@ -41,7 +41,7 @@ public class TmfEventRequestStub<T extends TmfEvent> extends TmfEventRequest<T>
      * @param nbRequested
      */
     public TmfEventRequestStub(Class<T> dataType, TmfTimeRange range, int nbRequested) {
-        this(dataType, range, nbRequested, DEFAULT_BLOCK_SIZE);
+       super(dataType, range, nbRequested);
     }
     
     /**
index a02017b01eb4c3dcb04acb553340613c3d08601d..19b06097e8af08826c416022d9d47a6d15ca4375 100644 (file)
@@ -172,7 +172,11 @@ public class TmfEventsView extends TmfView {
                                        }
                                };
                                fExperiment.sendRequest(request);
-                       request.waitForCompletion();
+                       try {
+                                       request.waitForCompletion();
+                               } catch (InterruptedException e) {
+                                       e.printStackTrace();
+                               }
                                
                                if (cache[0] != null && cacheStartIndex == index) {
                                        item.setText(extractItemFields(cache[0]));
index 5d9fa8dc32a4e6aa98fe56847c852866d8dfe18c..cef468ad03348ec89c3ea74af416239b57c9859c 100644 (file)
@@ -34,12 +34,12 @@ public abstract class TmfView extends ViewPart implements ITmfComponent {
        public TmfView(String viewName) {
                super();
                fName = viewName;
-               register();
+               TmfSignalManager.register(this);
        }
 
        @Override
        public void dispose() {
-               deregister();
+               TmfSignalManager.deregister(this);
                super.dispose();
        }
 
@@ -51,14 +51,6 @@ public abstract class TmfView extends ViewPart implements ITmfComponent {
                return fName;
        }
        
-       public void register() {
-               TmfSignalManager.register(this);
-       }
-
-       public void deregister() {
-               TmfSignalManager.deregister(this);
-       }
-
        public void broadcast(TmfSignal signal) {
                TmfSignalManager.dispatchSignal(signal);
        }
index bcec39aa57b1371372759656d275d11279d855c2..b82ad6d7a87d588434a8846f5737fb199245d9ab 100644 (file)
@@ -29,14 +29,9 @@ public interface ITmfComponent {
        public String getName();
 
        /**
-        * Register to the signal manager
+        * Dispose of the component
         */
-       public void register();
-
-       /**
-        * De-register from the signal manager
-        */
-       public void deregister();
+       public void dispose();
 
        /**
         * Broadcast a signal to all the interested listeners.
index 23eefd3d34e1f6227ec1ddeede1c380ff1e5a01f..8d50d905f452ff484a3e19e931323337b6a17f4d 100644 (file)
@@ -1,7 +1,7 @@
 package org.eclipse.linuxtools.tmf.component;
 
 import org.eclipse.linuxtools.tmf.event.TmfData;
-import org.eclipse.linuxtools.tmf.request.TmfDataRequest;
+import org.eclipse.linuxtools.tmf.request.ITmfDataRequest;
 
 public interface ITmfDataProvider<T extends TmfData> {
 
@@ -12,6 +12,6 @@ public interface ITmfDataProvider<T extends TmfData> {
      * 
         * @param request The request to process
         */
-       public void sendRequest(TmfDataRequest<T> request);
+       public void sendRequest(ITmfDataRequest<T> request);
 
 }
index 0a831272a5143e63909632b6446bc75f9c848f23..7f14a548e4832115a9ba0245cc4f466779c27ace 100644 (file)
@@ -32,28 +32,24 @@ public abstract class TmfComponent implements ITmfComponent {
 
        public TmfComponent(String name) {
                fName = name;
-               register();
+               TmfSignalManager.register(this);
        }
 
        // ------------------------------------------------------------------------
        // ITmfComponent
        // ------------------------------------------------------------------------
 
-       public String getName() {
-               return fName;
-       }
-
        /* (non-Javadoc)
-        * @see org.eclipse.linuxtools.tmf.component.ITmfComponent#register()
+        * @see org.eclipse.linuxtools.tmf.component.ITmfComponent#getName()
         */
-       public void register() {
-               TmfSignalManager.register(this);
+       public String getName() {
+               return fName;
        }
 
        /* (non-Javadoc)
-        * @see org.eclipse.linuxtools.tmf.component.ITmfComponent#deregister()
+        * @see org.eclipse.linuxtools.tmf.component.ITmfComponent#dispose()
         */
-       public void deregister() {
+       public void dispose() {
                TmfSignalManager.deregister(this);
        }
 
index 745f5b45ae5e7254fc71bb45ed247b5ff73d0120..f5c6f6dc0fb244df912b7902f1c96b7c754b9014 100644 (file)
@@ -73,16 +73,10 @@ public abstract class TmfDataProvider<T extends TmfData> extends TmfComponent im
        }
 
        @Override
-       public void register() {
-               super.register();
-               TmfProviderManager.register(fType, this);
-       }
-
-       @Override
-       public void deregister() {
+       public void dispose() {
                TmfProviderManager.deregister(fType, this);
                fExecutor.stop();
-               super.deregister();
+               super.dispose();
        }
 
        public int getQueueSize() {
@@ -93,7 +87,7 @@ public abstract class TmfDataProvider<T extends TmfData> extends TmfComponent im
        // ITmfRequestHandler
        // ------------------------------------------------------------------------
 
-       public void sendRequest(final TmfDataRequest<T> request) {
+       public synchronized void sendRequest(final ITmfDataRequest<T> request) {
 
                if (fSynchDepth > 0) {
                        // We are in coalescing mode: client should NEVER wait
@@ -123,14 +117,14 @@ public abstract class TmfDataProvider<T extends TmfData> extends TmfComponent im
 
        protected Vector<TmfCoalescedDataRequest<T>> fPendingCoalescedRequests = new Vector<TmfCoalescedDataRequest<T>>();
 
-       protected synchronized void newCoalescedDataRequest(TmfDataRequest<T> request) {
+       protected synchronized void newCoalescedDataRequest(ITmfDataRequest<T> request) {
                TmfCoalescedDataRequest<T> coalescedRequest =
                        new TmfCoalescedDataRequest<T>(fType, request.getIndex(), request.getNbRequested(), request.getBlockize());
                coalescedRequest.addRequest(request);
                fPendingCoalescedRequests.add(coalescedRequest);
        }
 
-       protected synchronized void coalesceDataRequest(TmfDataRequest<T> request) {
+       protected synchronized void coalesceDataRequest(ITmfDataRequest<T> request) {
                for (TmfCoalescedDataRequest<T> req : fPendingCoalescedRequests) {
                        if (req.isCompatible(request)) {
                                req.addRequest(request);
@@ -144,7 +138,7 @@ public abstract class TmfDataProvider<T extends TmfData> extends TmfComponent im
        // Request processing
        // ------------------------------------------------------------------------
 
-       protected void queueRequest(final TmfDataRequest<T> request) {
+       protected void queueRequest(final ITmfDataRequest<T> request) {
 
                // Process the request
                Thread thread = new Thread() {
@@ -214,7 +208,7 @@ public abstract class TmfDataProvider<T extends TmfData> extends TmfComponent im
         * @param request
         * @return an application specific context; null if request can't be serviced
         */
-       public abstract ITmfContext armRequest(TmfDataRequest<T> request);
+       public abstract ITmfContext armRequest(ITmfDataRequest<T> request);
        
        /**
         * Return the next piece of data based on the context supplied. The context
@@ -253,7 +247,7 @@ public abstract class TmfDataProvider<T extends TmfData> extends TmfComponent im
         * @param data
         * @return
         */
-       public boolean isCompleted(TmfDataRequest<T> request, T data, int nbRead) {
+       public boolean isCompleted(ITmfDataRequest<T> request, T data, int nbRead) {
                return request.isCompleted() || nbRead >= request.getNbRequested();
        }
 
index 70efad72b7209b11562465f40789bdde54f9b515..3b843bfe92620c184c969f120f65978fa69cf6a6 100644 (file)
@@ -14,9 +14,9 @@ package org.eclipse.linuxtools.tmf.component;
 
 import org.eclipse.linuxtools.tmf.event.TmfEvent;
 import org.eclipse.linuxtools.tmf.event.TmfTimestamp;
+import org.eclipse.linuxtools.tmf.request.ITmfDataRequest;
+import org.eclipse.linuxtools.tmf.request.ITmfEventRequest;
 import org.eclipse.linuxtools.tmf.request.TmfCoalescedEventRequest;
-import org.eclipse.linuxtools.tmf.request.TmfDataRequest;
-import org.eclipse.linuxtools.tmf.request.TmfEventRequest;
 
 /**
  * <b><u>TmfEventProvider</u></b>
@@ -34,19 +34,19 @@ public abstract class TmfEventProvider<T extends TmfEvent> extends TmfDataProvid
        }
 
        @Override
-       public boolean isCompleted(TmfDataRequest<T> request, T data, int nbRead) {
+       public boolean isCompleted(ITmfDataRequest<T> request, T data, int nbRead) {
                boolean dataRequestCompleted = super.isCompleted(request, data, nbRead);
-               if (!dataRequestCompleted && request instanceof TmfEventRequest<?> && data != null) {
-                       TmfTimestamp endTime = ((TmfEventRequest<?>) request).getRange().getEndTime();
+               if (!dataRequestCompleted && request instanceof ITmfEventRequest<?> && data != null) {
+                       TmfTimestamp endTime = ((ITmfEventRequest<?>) request).getRange().getEndTime();
                        return data.getTimestamp().compareTo(endTime, false) > 0;
                }
                return dataRequestCompleted;
        }
 
        @Override
-       protected synchronized void newCoalescedDataRequest(TmfDataRequest<T> request) {
-               if (request instanceof TmfEventRequest<?>) {
-                       TmfEventRequest<T> eventRequest = (TmfEventRequest<T>) request;
+       protected synchronized void newCoalescedDataRequest(ITmfDataRequest<T> request) {
+               if (request instanceof ITmfEventRequest<?>) {
+                       ITmfEventRequest<T> eventRequest = (ITmfEventRequest<T>) request;
                        TmfCoalescedEventRequest<T> coalescedRequest = 
                                new TmfCoalescedEventRequest<T>(fType, eventRequest.getRange(), eventRequest.getNbRequested(), eventRequest.getBlockize());
                        coalescedRequest.addRequest(eventRequest);
index 65354750210cc259b3acf01702389912bb6840f6..e39180fe344932e040fcad1f5273c5b1c4d9e1e1 100644 (file)
@@ -101,7 +101,10 @@ public class TmfEventField {
 
     @Override
     public int hashCode() {
-        return fFieldId.hashCode();
+               int result = 17;
+               result = 37 * result + fFieldId.hashCode();
+               result = 37 * result + fValue.hashCode();
+        return result;
     }
 
        @Override
index feb8e3857fa4a163fc83569e33531984cf8fa9b5..305d512908b5cfa26d891ee00c822056b82b943b 100644 (file)
@@ -126,6 +126,9 @@ public class TmfTraceEvent extends TmfEvent {
 
     @Override
        public boolean equals(Object other) {
+       if (other instanceof TmfEvent) {
+               return super.equals(other); 
+       }
        if (!(other instanceof TmfTraceEvent)) {
                return false; 
        }
index 6488cd80de880e1c72148ebf76dacaba4d710639..5e1b2cf9f3d4aa551817e07c6e07b594382881cd 100644 (file)
@@ -23,8 +23,8 @@ import org.eclipse.linuxtools.tmf.component.TmfEventProvider;
 import org.eclipse.linuxtools.tmf.event.TmfEvent;
 import org.eclipse.linuxtools.tmf.event.TmfTimeRange;
 import org.eclipse.linuxtools.tmf.event.TmfTimestamp;
-import org.eclipse.linuxtools.tmf.request.TmfDataRequest;
-import org.eclipse.linuxtools.tmf.request.TmfEventRequest;
+import org.eclipse.linuxtools.tmf.request.ITmfDataRequest;
+import org.eclipse.linuxtools.tmf.request.ITmfEventRequest;
 import org.eclipse.linuxtools.tmf.signal.TmfRangeSynchSignal;
 import org.eclipse.linuxtools.tmf.signal.TmfSignalHandler;
 import org.eclipse.linuxtools.tmf.trace.ITmfContext;
@@ -114,11 +114,11 @@ public class TmfExperiment<T extends TmfEvent> extends TmfEventProvider<T> imple
      * 
      */
     @Override
-       public void deregister() {
+       public void dispose() {
        fTraces = null;
        fCheckpoints.clear();
        setCurrentExperiment(null);
-        super.deregister();
+        super.dispose();
     }
 
     private static void setCurrentExperiment(TmfExperiment<?> experiment) {
@@ -244,14 +244,30 @@ public class TmfExperiment<T extends TmfEvent> extends TmfEventProvider<T> imple
     // ------------------------------------------------------------------------
 
        @Override
-       public ITmfContext armRequest(TmfDataRequest<T> request) {
-               TmfTimestamp timestamp = (request instanceof TmfEventRequest<?>) ?
-                       ((TmfEventRequest<T>) request).getRange().getStartTime() : null;
-
+       public ITmfContext armRequest(ITmfDataRequest<T> request) {
+               
+               TmfTimestamp timestamp = (request instanceof ITmfEventRequest<?>) ?
+                               ((ITmfEventRequest<T>) request).getRange().getStartTime() : null;
+                
+               
                TmfExperimentContext context = (timestamp != null) ? 
                        seekEvent(timestamp) : seekEvent(request.getIndex());
 
                return context;
+
+//             TmfTimestamp timestamp = null;
+//             
+//             if (request instanceof TmfEventRequest<?> == true) {
+//                     timestamp = ((TmfEventRequest<T>) request).getRange().getStartTime();
+//             }
+//             else if (request instanceof TmfCoalescedEventRequest<?> == true) {
+//                     timestamp = ((TmfCoalescedEventRequest<?>)request).getRange().getStartTime();
+//             }
+//             else {
+//                     System.out.println("ERROR : request of unknown instance in armRequest(). Class is : " + request.getClass().toString() );
+//             }
+               
+               
        }
 
        @SuppressWarnings("unchecked")
index 1a1739c830f29a6344a692176bed490e00def8ff..712cc08bcf81491e2b7eb1db1d30641f73db15a7 100644 (file)
@@ -31,6 +31,7 @@ public class TmfExperimentLocation extends TmfLocation<ITmfLocation<?>[]> {
 
        @Override
        public TmfExperimentLocation clone() {
+               super.clone();  // To keep FindBugs happy
                ITmfLocation<?>[] locations = (ITmfLocation<?>[]) getLocation();
                ITmfLocation<?>[] clones = new ITmfLocation[locations.length];
                for (int i = 0; i < locations.length; i++) {
index 32ae0d80120f692e092611711303516aa9fefe4a..7beecac7c6df375b4714fddadcdc284b9a2badc8 100644 (file)
@@ -33,7 +33,7 @@ public interface ITmfDataRequest<T extends TmfData> {
     /**
      * @return request ID
      */
-    public long getRequestId();
+    public int getRequestId();
 
     /**
         * @return the index of the first event requested
@@ -84,7 +84,7 @@ public interface ITmfDataRequest<T extends TmfData> {
      * To suspend the client thread until the request completes
      * (or is canceled).
      */
-    public void waitForCompletion();
+    public void waitForCompletion() throws InterruptedException;
 
        // ------------------------------------------------------------------------
        // Request state modifiers
index f47b6f5459ba5e856bd233ad616b061d4ebf63b8..957b1aee5f7d8a408bd4514a2a11a7c0c7d6fd25 100644 (file)
@@ -27,7 +27,7 @@ public class TmfCoalescedDataRequest<T extends TmfData> extends TmfDataRequest<T
     // Attributes
     // ------------------------------------------------------------------------
 
-       protected Vector<TmfDataRequest<T>> fRequests = new Vector<TmfDataRequest<T>>();
+       protected Vector<ITmfDataRequest<T>> fRequests = new Vector<ITmfDataRequest<T>>();
 
     // ------------------------------------------------------------------------
     // Constructor
@@ -68,13 +68,13 @@ public class TmfCoalescedDataRequest<T extends TmfData> extends TmfDataRequest<T
     // Management
     // ------------------------------------------------------------------------
 
-       public void addRequest(TmfDataRequest<T> request) {
+       public void addRequest(ITmfDataRequest<T> request) {
                fRequests.add(request);
        }
 
-       public boolean isCompatible(TmfDataRequest<T> request) {
+       public boolean isCompatible(ITmfDataRequest<T> request) {
 
-               boolean ok = request.getIndex() == getIndex();;
+               boolean ok = request.getIndex() == getIndex();
                ok &= request.getNbRequested() == getNbRequested();
                ok &= request.getBlockize() == getBlockize();
                
@@ -87,59 +87,61 @@ public class TmfCoalescedDataRequest<T extends TmfData> extends TmfDataRequest<T
 
     @Override
        public void handleData() {
-       for (TmfDataRequest<T> request : fRequests) {
+       for (ITmfDataRequest<T> request : fRequests) {
                request.setData(getData());
                request.handleData();
        }
     }
 
     @Override
-    public void handleCompleted() {
-       for (TmfDataRequest<T> request : fRequests) {
-               request.handleCompleted();
+    public void done() {
+       for (ITmfDataRequest<T> request : fRequests) {
+               request.done();
        }
+       super.done();
     }
 
     @Override
-    public void handleSuccess() {
-       for (TmfDataRequest<T> request : fRequests) {
-               request.handleSuccess();
+    public void fail() {
+       for (ITmfDataRequest<T> request : fRequests) {
+               request.fail();
        }
+       super.fail();
     }
 
     @Override
-    public void handleFailure() {
-       for (TmfDataRequest<T> request : fRequests) {
-               request.handleFailure();
+    public void cancel() {
+       for (ITmfDataRequest<T> request : fRequests) {
+               request.cancel();
        }
+       super.cancel();
     }
 
-    @Override
-    public void handleCancel() {
-       for (TmfDataRequest<T> request : fRequests) {
-               request.handleCancel();
-       }
-    }
+    // ------------------------------------------------------------------------
+    // Object
+    // ------------------------------------------------------------------------
 
     @Override
-    public void done() {
-       for (TmfDataRequest<T> request : fRequests) {
-               request.done();
-       }
+    // All requests have a unique id
+    public int hashCode() {
+       return super.hashCode();
     }
 
     @Override
-    public void fail() {
-       for (TmfDataRequest<T> request : fRequests) {
-               request.fail();
-       }
+    public boolean equals(Object other) {
+       if (other instanceof TmfCoalescedDataRequest<?>) {
+               TmfCoalescedDataRequest<?> request = (TmfCoalescedDataRequest<?>) other;
+                       return  (request.getDataType()    == getDataType()) &&
+                                       (request.getIndex()       == getIndex())    &&
+                                       (request.getNbRequested() == getNbRequested());
+               }
+               return false;
     }
 
     @Override
-    public void cancel() {
-       for (TmfDataRequest<T> request : fRequests) {
-               request.cancel();
-       }
+    public String toString() {
+               return "[TmfCoalescedDataRequest(" + getRequestId() + "," + getDataType().getSimpleName() 
+                       + "," + getIndex() + "," + getNbRequested() + "," + getBlockize() + ")]";
     }
 
 }
index 2caab92ae2878490995f4e21db539c4a45ec0693..0bcd53037caabef03fa6919f3ca75187fd928b9e 100644 (file)
@@ -69,11 +69,11 @@ public class TmfCoalescedEventRequest<T extends TmfEvent> extends TmfCoalescedDa
     // ------------------------------------------------------------------------
 
        @Override
-       public boolean isCompatible(TmfDataRequest<T> request) {
-               if (request instanceof TmfEventRequest<?>) {
+       public boolean isCompatible(ITmfDataRequest<T> request) {
+               if (request instanceof ITmfEventRequest<?>) {
                        boolean ok = getNbRequested() == request.getNbRequested();
                        ok &= getBlockize() == request.getBlockize();
-                       ok &= fRange.equals(((TmfEventRequest<T>) request).getRange());
+                       ok &= fRange.equals(((ITmfEventRequest<T>) request).getRange());
                        return ok;
                }
                return false;
@@ -87,4 +87,35 @@ public class TmfCoalescedEventRequest<T extends TmfEvent> extends TmfCoalescedDa
                return fRange;
        }
        
+    // ------------------------------------------------------------------------
+    // Object
+    // ------------------------------------------------------------------------
+
+    @Override
+    // All requests have a unique id
+    public int hashCode() {
+       return super.hashCode();
+    }
+
+    @Override
+    public boolean equals(Object other) {
+       if (other instanceof TmfCoalescedEventRequest<?>) {
+               TmfCoalescedEventRequest<?> request = (TmfCoalescedEventRequest<?>) other;
+                       return  (request.getDataType()    == getDataType()) &&
+                                       (request.getIndex()       == getIndex())    &&
+                                       (request.getNbRequested() == getNbRequested()) &&
+                               (request.getRange().equals(getRange()));
+               }
+       if (other instanceof TmfCoalescedDataRequest<?>) {
+                       return super.equals(other);
+       }
+               return false;
+    }
+
+    @Override
+    public String toString() {
+               return "[TmfCoalescedEventRequest(" + getRequestId() + "," + getDataType().getSimpleName() 
+                       + "," + getRange() + "," + getNbRequested() + "," + getBlockize() + ")]";
+    }
+
 }
index fbf69f860b9b2c98addb00b66158a7915c13bb43..08fdfbe83f01da1d81ad1efc444fc9dbb69acad1 100644 (file)
@@ -91,10 +91,10 @@ public abstract class TmfDataRequest<T extends TmfData> implements ITmfDataReque
     private final int fBlockSize;              // The maximum number of events per chunk
     private       int fNbRead;                 // The number of reads so far
 
-    private Object  lock = new Object();
-    private boolean fRequestCompleted = false;
-    private boolean fRequestFailed    = false;
-    private boolean fRequestCanceled  = false;
+    private final Object lock;
+    private boolean fRequestCompleted;
+    private boolean fRequestFailed;
+    private boolean fRequestCanceled;
 
     private T[] fData; // Data object
     
@@ -102,32 +102,44 @@ public abstract class TmfDataRequest<T extends TmfData> implements ITmfDataReque
     // Constructors
     // ------------------------------------------------------------------------
 
+    /**
+     * Resets the request counter (used for testing)
+     */
+    public static void reset() {
+       fRequestNumber = 0;
+    }
+
     /**
      * Default constructor
+        *
+     * @param dataType the requested data type
      */
     public TmfDataRequest(Class<T> dataType) {
         this(dataType, 0, ALL_DATA, DEFAULT_BLOCK_SIZE);
     }
 
     /**
-     * @param nbRequested
+     * @param dataType the requested data type
+     * @param nbRequested the number of data items requested
      */
     public TmfDataRequest(Class<T> dataType, int index) {
         this(dataType, index, ALL_DATA, DEFAULT_BLOCK_SIZE);
     }
 
     /**
-     * @param index
-     * @param nbRequested
+     * @param dataType the requested data type
+     * @param index the index (rank) of the first event requested
+     * @param blockSize the number of data items per block
      */
     public TmfDataRequest(Class<T> dataType, int index, int nbRequested) {
         this(dataType, index, nbRequested, DEFAULT_BLOCK_SIZE);
     }
 
     /**
-     * @param index
-     * @param nbRequested
-     * @param blockSize
+     * @param dataType the requested data type
+     * @param index the index (rank) of the first event requested
+     * @param nbRequested the number of data items requested
+     * @param blockSize the number of data items per block
      */
     public TmfDataRequest(Class<T> dataType, int index, int nbRequested, int blockSize) {
        fRequestId   = fRequestNumber++;
@@ -136,6 +148,21 @@ public abstract class TmfDataRequest<T extends TmfData> implements ITmfDataReque
        fNbRequested = nbRequested;
        fBlockSize   = blockSize;
        fNbRead      = 0;
+        lock         = new Object();
+    }
+
+    /**
+     * Copy constructor
+     */
+    @SuppressWarnings("unused")
+       private TmfDataRequest(TmfDataRequest<T> other) {
+       fRequestId   = 0;
+       fDataType    = null;
+       fIndex       = 0;
+       fNbRequested = 0;
+       fBlockSize   = 0;
+       fNbRead      = 0;
+        lock         = new Object();
     }
 
     // ------------------------------------------------------------------------
@@ -145,7 +172,7 @@ public abstract class TmfDataRequest<T extends TmfData> implements ITmfDataReque
        /**
         * @return the request ID
         */
-       public long getRequestId() {
+       public int getRequestId() {
                return fRequestId;
        }
 
@@ -173,7 +200,7 @@ public abstract class TmfDataRequest<T extends TmfData> implements ITmfDataReque
     /**
      * @return the number of events read so far
      */
-    public int getNbRead() {
+    public synchronized int getNbRead() {
         return fNbRead;
     }
 
@@ -280,14 +307,10 @@ public abstract class TmfDataRequest<T extends TmfData> implements ITmfDataReque
      * 
      * @throws InterruptedException 
      */
-    public void waitForCompletion() {
+    public void waitForCompletion() throws InterruptedException {
         synchronized (lock) {
             while (!fRequestCompleted)
-                try {
-                    lock.wait();
-                } catch (InterruptedException e) {
-                    e.printStackTrace();
-                }
+               lock.wait();
         }
     }
 
@@ -327,8 +350,9 @@ public abstract class TmfDataRequest<T extends TmfData> implements ITmfDataReque
     // ------------------------------------------------------------------------
 
     @Override
+    // All requests have a unique id
     public int hashCode() {
-       return fRequestId;
+       return getRequestId();
     }
 
     @Override
@@ -342,4 +366,10 @@ public abstract class TmfDataRequest<T extends TmfData> implements ITmfDataReque
        return false;
     }
 
+    @Override
+    public String toString() {
+               return "[TmfDataRequest(" + fRequestId + "," + fDataType.getSimpleName() 
+                       + "," + fIndex + "," + fNbRequested + "," + fBlockSize + ")]";
+    }
+
 }
index 742d978ff3c6bbb7d1236e9a0b1052e0a3e4c941..9a83500908ba6f46f280f4f8a196431e7dbb43c3 100644 (file)
@@ -64,15 +64,6 @@ public abstract class TmfEventRequest<T extends TmfEvent> extends TmfDataRequest
        fRange = range;
     }
 
-    @Override
-    public boolean equals(Object other) {
-       if (other instanceof TmfEventRequest<?>) {
-               TmfEventRequest<?> request = (TmfEventRequest<?>) other;
-               return super.equals(other) && request.fRange.equals(fRange);
-       }
-       return false;
-    }
-
     // ------------------------------------------------------------------------
     // Accessors
     // ------------------------------------------------------------------------
@@ -84,4 +75,29 @@ public abstract class TmfEventRequest<T extends TmfEvent> extends TmfDataRequest
         return fRange;
     }
 
+    // ------------------------------------------------------------------------
+    // Object
+    // ------------------------------------------------------------------------
+
+    @Override
+    // All requests have a unique id
+    public int hashCode() {
+       return getRequestId();
+    }
+
+    @Override
+    public boolean equals(Object other) {
+       if (other instanceof TmfEventRequest<?>) {
+               TmfEventRequest<?> request = (TmfEventRequest<?>) other;
+               return super.equals(other) && request.fRange.equals(fRange);
+       }
+       return false;
+    }
+
+    @Override
+    public String toString() {
+               return "[TmfEventRequest(" + getRequestId() + "," + getDataType().getSimpleName() 
+                       + "," + getRange() + "," + getNbRequested() + "," + getBlockize() + ")]";
+    }
+
 }
index f39c93275223805a280dd7f2b09a5357a356d628..e96492d0dac652e5643b22c438540312f7ef083e 100644 (file)
@@ -21,7 +21,7 @@ import java.util.concurrent.LinkedBlockingQueue;
 /**
  * <b><u>TmfRequestExecutor</u></b>
  *
- * Implement me. Please.
+ * A simple, straightforward request executor.
  */
 public class TmfRequestExecutor implements Executor {
 
@@ -41,11 +41,17 @@ public class TmfRequestExecutor implements Executor {
                // Nothing to do
        }
 
+       /**
+        * Stops the executor
+        */
        public void stop() {
                fExecutor.shutdown();
        }
        
-       public void execute(final Runnable request) {
+       /* (non-Javadoc)
+        * @see java.util.concurrent.Executor#execute(java.lang.Runnable)
+        */
+       public synchronized void execute(final Runnable request) {
                fRequests.offer(new Runnable() {
                        public void run() {
                                try {
@@ -60,12 +66,20 @@ public class TmfRequestExecutor implements Executor {
                }
        }
 
+       /**
+        * Executes the next pending request, if applicable.
+        */
        protected synchronized void scheduleNext() {
                if ((fRequest = fRequests.poll()) != null) {
                        fExecutor.execute(fRequest);
                }
        }
 
+       /**
+        * Queues the request and schedules it.
+        * 
+        * @param request the request to service
+        */
        public synchronized void queueRequest(Runnable request) {
                fRequests.add(request);
                scheduleNext();
index b82d090c3256f272e5b247cedd1d8d4c3db7b377..95da4f1c8f0d57659f92b660ab90132a41aed71f 100644 (file)
@@ -25,9 +25,9 @@ import org.eclipse.linuxtools.tmf.component.TmfEventProvider;
 import org.eclipse.linuxtools.tmf.event.TmfEvent;
 import org.eclipse.linuxtools.tmf.event.TmfTimeRange;
 import org.eclipse.linuxtools.tmf.event.TmfTimestamp;
+import org.eclipse.linuxtools.tmf.request.ITmfDataRequest;
+import org.eclipse.linuxtools.tmf.request.ITmfEventRequest;
 import org.eclipse.linuxtools.tmf.request.TmfCoalescedEventRequest;
-import org.eclipse.linuxtools.tmf.request.TmfDataRequest;
-import org.eclipse.linuxtools.tmf.request.TmfEventRequest;
 
 /**
  * <b><u>TmfTrace</u></b>
@@ -182,9 +182,9 @@ public abstract class TmfTrace<T extends TmfEvent> extends TmfEventProvider<T> i
        // ------------------------------------------------------------------------
 
        @Override
-       public ITmfContext armRequest(TmfDataRequest<T> request) {
-               if (request instanceof TmfEventRequest<?>) {
-                       return seekEvent(((TmfEventRequest<T>) request).getRange().getStartTime());
+       public ITmfContext armRequest(ITmfDataRequest<T> request) {
+               if (request instanceof ITmfEventRequest<?>) {
+                       return seekEvent(((ITmfEventRequest<T>) request).getRange().getStartTime());
                }
                if (request instanceof TmfCoalescedEventRequest<?>) {
                        return seekEvent(((TmfCoalescedEventRequest<T>) request).getRange().getStartTime());
This page took 0.077691 seconds and 5 git commands to generate.