Implement the new TMF Event Model
authorFrancois Chouinard <fchouinard@gmail.com>
Tue, 14 Feb 2012 20:57:55 +0000 (15:57 -0500)
committerFrancois Chouinard <fchouinard@gmail.com>
Thu, 16 Feb 2012 21:22:34 +0000 (16:22 -0500)
65 files changed:
org.eclipse.linuxtools.lttng.core.tests/src/org/eclipse/linuxtools/lttng/core/tests/event/LttngEventContentTest.java
org.eclipse.linuxtools.lttng.core.tests/src/org/eclipse/linuxtools/lttng/core/tests/event/LttngEventFieldTest.java
org.eclipse.linuxtools.lttng.core.tests/src/org/eclipse/linuxtools/lttng/core/tests/event/LttngEventTest.java
org.eclipse.linuxtools.lttng.core.tests/src/org/eclipse/linuxtools/lttng/core/tests/event/LttngEventTypeTest.java
org.eclipse.linuxtools.lttng.core.tests/src/org/eclipse/linuxtools/lttng/core/tests/state/handlers/AbsStateUpdate.java
org.eclipse.linuxtools.lttng.core.tests/src/org/eclipse/linuxtools/lttng/core/tests/state/tests/handlers/AbsStateUpdate.java
org.eclipse.linuxtools.lttng.core/src/org/eclipse/linuxtools/lttng/core/event/LttngEventContent.java
org.eclipse.linuxtools.lttng.core/src/org/eclipse/linuxtools/lttng/core/event/LttngEventField.java
org.eclipse.linuxtools.lttng.core/src/org/eclipse/linuxtools/lttng/core/event/LttngEventType.java
org.eclipse.linuxtools.lttng.core/src/org/eclipse/linuxtools/lttng/core/model/LTTngTreeNodeGeneric.java
org.eclipse.linuxtools.lttng.core/src/org/eclipse/linuxtools/lttng/core/state/evProcessor/state/AbsStateProcessing.java
org.eclipse.linuxtools.lttng.core/src/org/eclipse/linuxtools/lttng/core/trace/LTTngTextTrace.java
org.eclipse.linuxtools.lttng.ui/src/org/eclipse/linuxtools/lttng/ui/views/events/EventsTable.java
org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/event/AllTests.java
org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/event/TmfEventContentTest.java [deleted file]
org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/event/TmfEventFieldTest.java
org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/event/TmfEventTest.java
org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/event/TmfEventTypeTest.java
org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/uml2sd/TmfAsyncSequenceDiagramEventTest.java
org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/uml2sd/TmfSyncSequenceDiagramEventTest.java
org.eclipse.linuxtools.tmf.core.tests/stubs/org/eclipse/linuxtools/tmf/stubs/component/TmfDataProviderStub.java
org.eclipse.linuxtools.tmf.core.tests/stubs/org/eclipse/linuxtools/tmf/stubs/event/TmfEventContentStub.java [deleted file]
org.eclipse.linuxtools.tmf.core.tests/stubs/org/eclipse/linuxtools/tmf/stubs/event/TmfEventTypeStub.java
org.eclipse.linuxtools.tmf.core.tests/stubs/org/eclipse/linuxtools/tmf/stubs/request/TmfDataRequestStub.java
org.eclipse.linuxtools.tmf.core.tests/stubs/org/eclipse/linuxtools/tmf/stubs/trace/TmfEventParserStub.java
org.eclipse.linuxtools.tmf.core/src/org/eclipse/linuxtools/tmf/core/Tracer.java
org.eclipse.linuxtools.tmf.core/src/org/eclipse/linuxtools/tmf/core/component/ITmfDataProvider.java
org.eclipse.linuxtools.tmf.core/src/org/eclipse/linuxtools/tmf/core/component/TmfDataProvider.java
org.eclipse.linuxtools.tmf.core/src/org/eclipse/linuxtools/tmf/core/component/TmfProviderManager.java
org.eclipse.linuxtools.tmf.core/src/org/eclipse/linuxtools/tmf/core/event/ITmfDataItem.java [deleted file]
org.eclipse.linuxtools.tmf.core/src/org/eclipse/linuxtools/tmf/core/event/ITmfEvent.java
org.eclipse.linuxtools.tmf.core/src/org/eclipse/linuxtools/tmf/core/event/ITmfEventContent.java [deleted file]
org.eclipse.linuxtools.tmf.core/src/org/eclipse/linuxtools/tmf/core/event/ITmfEventField.java
org.eclipse.linuxtools.tmf.core/src/org/eclipse/linuxtools/tmf/core/event/ITmfEventType.java
org.eclipse.linuxtools.tmf.core/src/org/eclipse/linuxtools/tmf/core/event/TmfDataItem.java [deleted file]
org.eclipse.linuxtools.tmf.core/src/org/eclipse/linuxtools/tmf/core/event/TmfEvent.java
org.eclipse.linuxtools.tmf.core/src/org/eclipse/linuxtools/tmf/core/event/TmfEventContent.java [deleted file]
org.eclipse.linuxtools.tmf.core/src/org/eclipse/linuxtools/tmf/core/event/TmfEventField.java
org.eclipse.linuxtools.tmf.core/src/org/eclipse/linuxtools/tmf/core/event/TmfEventType.java
org.eclipse.linuxtools.tmf.core/src/org/eclipse/linuxtools/tmf/core/event/TmfEventTypeManager.java
org.eclipse.linuxtools.tmf.core/src/org/eclipse/linuxtools/tmf/core/event/TmfNoSuchFieldException.java [deleted file]
org.eclipse.linuxtools.tmf.core/src/org/eclipse/linuxtools/tmf/core/event/TmfSimpleTimestamp.java
org.eclipse.linuxtools.tmf.core/src/org/eclipse/linuxtools/tmf/core/event/TmfTimeRange.java
org.eclipse.linuxtools.tmf.core/src/org/eclipse/linuxtools/tmf/core/event/TmfTimestamp.java
org.eclipse.linuxtools.tmf.core/src/org/eclipse/linuxtools/tmf/core/filter/model/TmfFilterCompareNode.java
org.eclipse.linuxtools.tmf.core/src/org/eclipse/linuxtools/tmf/core/filter/model/TmfFilterContainsNode.java
org.eclipse.linuxtools.tmf.core/src/org/eclipse/linuxtools/tmf/core/filter/model/TmfFilterEqualsNode.java
org.eclipse.linuxtools.tmf.core/src/org/eclipse/linuxtools/tmf/core/filter/model/TmfFilterEventTypeNode.java
org.eclipse.linuxtools.tmf.core/src/org/eclipse/linuxtools/tmf/core/filter/model/TmfFilterMatchesNode.java
org.eclipse.linuxtools.tmf.core/src/org/eclipse/linuxtools/tmf/core/request/ITmfDataRequest.java
org.eclipse.linuxtools.tmf.core/src/org/eclipse/linuxtools/tmf/core/request/TmfCoalescedDataRequest.java
org.eclipse.linuxtools.tmf.core/src/org/eclipse/linuxtools/tmf/core/request/TmfDataRequest.java
org.eclipse.linuxtools.tmf.ui.tests/src/org/eclipse/linuxtools/tmf/ui/tests/statistics/TmfBaseColumnDataProviderTest.java
org.eclipse.linuxtools.tmf.ui.tests/src/org/eclipse/linuxtools/tmf/ui/tests/statistics/TmfBaseStatisticsDataTest.java
org.eclipse.linuxtools.tmf.ui.tests/src/org/eclipse/linuxtools/tmf/ui/tests/statistics/TmfStatisticsTreeNodeTest.java
org.eclipse.linuxtools.tmf.ui.tests/src/org/eclipse/linuxtools/tmf/ui/tests/statistics/TmfTreeContentProviderTest.java
org.eclipse.linuxtools.tmf.ui.tests/widgetStubs/org/eclipse/linuxtools/tmf/ui/tests/uml2sd/trace/TmfUml2SDTestTrace.java
org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/parsers/custom/CustomEvent.java
org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/parsers/custom/CustomEventContent.java
org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/parsers/custom/CustomEventType.java
org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/parsers/custom/CustomTxtTrace.java
org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/parsers/custom/CustomXmlTrace.java
org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/viewers/events/TmfEventsTable.java
org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/views/filter/FilterViewer.java
org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/views/uml2sd/impl/TmfUml2SDSyncLoader.java

index d151fa76a1ee547d06d8d6309e0ee72b9645a750..0467c8328d217f72c2c682e06b819411d8fcfdaf 100644 (file)
@@ -101,7 +101,7 @@ public class LttngEventContentTest extends TestCase {
                LttngEventContent testContent   = null;
                LttngEventContent testContent2  = null;
         LttngEventField[]      testFields  = new LttngEventField[1];
-        testFields[0] = new LttngEventField(testContent2, "test");
+        testFields[0] = new LttngEventField("test");
         
            // Default construction with good argument
         try {
@@ -153,7 +153,7 @@ public class LttngEventContentTest extends TestCase {
        tmpEvent = (LttngEvent)tmpStream.getNextEvent(tmpContext);
                testContent = prepareToTest();
        // getFieldS()
-       assertNotSame("getFields() returned null!",null,testContent.getFields() );
+       assertNotSame("getFields() returned null!", null, testContent.getFields() );
        
        // *** FIXME ***
        // Depending from the Java version because of the "hashcode()" on String. 
@@ -161,7 +161,7 @@ public class LttngEventContentTest extends TestCase {
        //
        // getField(int)
        //assertEquals("getField(int) returned unexpected result!",firstEventContentFirstField, testContent.getField(0).toString());
-       assertNotSame("getField(int) returned unexpected result!",null, testContent.getField(0).toString());
+       assertNotSame("getField(int) returned unexpected result!", null, testContent.getField(0).toString());
        
        
        // getField(name)
@@ -171,7 +171,7 @@ public class LttngEventContentTest extends TestCase {
        // Test that get event return the correct event
        assertTrue("getEvent() returned unexpected result!", tmpEvent.getTimestamp().getValue() == testContent.getEvent().getTimestamp().getValue());
        // getType()
-       assertEquals("getType() returned unexpected result!",firstEventContentType, testContent.getType().toString());
+       assertEquals("getType() returned unexpected result!",firstEventContentType, testContent.getEvent().getType().toString());
        
        //*** To test getFields with a fields number >0, we need to move to an event that have some more
        tmpStream = initializeEventStream();
@@ -189,17 +189,17 @@ public class LttngEventContentTest extends TestCase {
        // Test that get event return the correct event
        assertTrue("getEvent() returned unexpected result!",tmpEvent.getTimestamp().getValue() == testContent.getEvent().getTimestamp().getValue());
        // getType()
-       assertEquals("getType() returned unexpected result!",secondEventContentType, testContent.getType().toString());
+       assertEquals("getType() returned unexpected result!",secondEventContentType, testContent.getEvent().getType().toString());
        
        
        // getFieldS()
-       assertNotSame("getFields() returned null!",null,testContent.getFields() );
+       assertNotSame("getFields() returned null!", null, testContent.getFields() );
        // getField(int)
        assertEquals("getField(int) returned unexpected result!",secondEventContentSecondField, testContent.getField(1).toString());
        // getField(name)
        assertEquals("getField(name) returned unexpected result!",secondEventContentSecondField, testContent.getField(secondEventContentSecondFieldName).toString());
        // getRawContent
-       assertNotSame("getRawContent() returned null!",null, testContent.getMapContent());
+       assertNotSame("getRawContent() returned null!", null, testContent.getMapContent());
        
     }
        
@@ -226,7 +226,7 @@ public class LttngEventContentTest extends TestCase {
        
        LttngEventType testType = new LttngEventType();
        try {
-               tmpContent.setType(testType);
+               tmpContent.getEvent().setType(testType);
        }
        catch( Exception e) { 
                fail("setType(type) failed!");
index 11b4cf81efb26c094400b95136d5c1615e95875f..31677ae64b06ba30ed17ea21384e5868ad0f49ba 100644 (file)
@@ -13,7 +13,6 @@ import org.eclipse.linuxtools.lttng.core.event.LttngEventContent;
 import org.eclipse.linuxtools.lttng.core.event.LttngEventField;
 import org.eclipse.linuxtools.lttng.core.tests.LTTngCoreTestPlugin;
 import org.eclipse.linuxtools.lttng.core.trace.LTTngTextTrace;
-import org.eclipse.linuxtools.tmf.core.event.TmfNoSuchFieldException;
 import org.eclipse.linuxtools.tmf.core.trace.TmfContext;
 import org.eclipse.linuxtools.tmf.core.trace.TmfLocation;
 
@@ -77,7 +76,7 @@ public class LttngEventFieldTest extends TestCase {
         
            // Default construction with good argument
         try {
-               testField = new LttngEventField(testContent, "test", "test");
+               testField = new LttngEventField("test", "test");
         }
         catch( Exception e) { 
                fail("Default construction failed!");
@@ -85,7 +84,7 @@ public class LttngEventFieldTest extends TestCase {
         
         // Copy constructor with correct parameters
         try {
-               testField = new LttngEventField(testContent, "test", "test");
+               testField = new LttngEventField("test", "test");
                testField2 = new LttngEventField(testField);
         }
         catch( Exception e) { 
@@ -100,11 +99,11 @@ public class LttngEventFieldTest extends TestCase {
        LTTngTextTrace tmpStream = initializeEventStream();
        
        LttngEventField testField = null;
-        try {
+//        try {
             testField = (LttngEventField) tmpStream.getNextEvent( new TmfContext(new TmfLocation<Long>(0L), 0) ).getContent().getField(0);
-        } catch (TmfNoSuchFieldException e) {
-            e.printStackTrace();
-        }
+//        } catch (TmfNoSuchFieldException e) {
+//            e.printStackTrace();
+//        }
        assertNotSame("getField is null!", null, testField);
        
        // *** FIXME ***
@@ -112,7 +111,7 @@ public class LttngEventFieldTest extends TestCase {
        // We can't really test that safetly
        //
        //assertTrue("getName() returned unexpected result!",firstEventName.equals(testField.getId().toString()));
-       assertNotSame("getName() returned unexpected result!",null, testField.getId());
+       assertNotSame("getName() returned unexpected result!",null, testField.getName());
        
        assertTrue("getValue() returned unexpected result!",firstEventValue.equals(testField.getValue().toString()));
        
index 59e465462b91fc7a8b3518b2e67760e45ddf1443..7ad8b7c1ea9b8e99ef8364784d120535cae13098 100644 (file)
@@ -105,7 +105,7 @@ public class LttngEventTest extends TestCase {
         try {
                        // In order to test LttngEvent, we need all these constructors/functions to work.
                // Make sure to run their unit tests first!
-                       testMarkerFields = new String[1];
+                       testMarkerFields = new String[] { "test" };
                 testEvent      = null;
                 testTime       = new LttngTimestamp(0L);
                 testSource     = "test";
@@ -154,7 +154,7 @@ public class LttngEventTest extends TestCase {
        assertEquals("Reference not what expected!", eventReference, testEvent.getReference());
        
        // These should be overridden functions
-       assertEquals("Type not what expected!",eventType,testEvent.getType().getId());
+       assertEquals("Type not what expected!",eventType,testEvent.getType().getName());
        assertEquals("Channel not what expected!",eventChannel,testEvent.getChannelName());
        assertEquals("CpuId not what expected!",eventCpu,testEvent.getCpuId());
        assertEquals("Marker not what expected!",eventMarker,testEvent.getMarkerName());
@@ -177,7 +177,7 @@ public class LttngEventTest extends TestCase {
         LttngEventContent      testContent             = null;
         JniEvent                       testJniEvent    = null;
                
-        String[] testMarkerFields = new String[1];
+        String[] testMarkerFields = new String[] { "test" };
         testType       = new LttngEventType("test", 0L, "test", 0, testMarkerFields);
         testContent    = new LttngEventContent(testEvent);
         
index c00d487ff4dd58d097721425c2b4c18cb78b2125..b149e250f19f63dd1379ea1d922abee039e81da6 100644 (file)
@@ -85,18 +85,18 @@ public class LttngEventTypeTest extends TestCase {
         
         // Default construction with good arguments
         try {
-            tmpEventType = new LttngEventType("test", 0L, "test",  0, new String[1]);
+            tmpEventType = new LttngEventType("test", 0L, "test",  0, new String[] { "test" });
         }
-        catchException e) { 
+        catch (Exception e) { 
             fail("Construction failed!");
         }
         
         // Copy constructor
         try {
-            tmpEventType = new LttngEventType("test", 0L, "test", 0, new String[1]);
+            tmpEventType = new LttngEventType("test", 0L, "test", 0, new String[] { "test" });
             tmpEventType2 = new LttngEventType(tmpEventType);
         }
-        catchException e) { 
+        catch (Exception e) { 
             fail("Construction failed!");
         }
     }
@@ -109,7 +109,7 @@ public class LttngEventTypeTest extends TestCase {
         assertTrue("Cpu Id not what was expected!",firstEventCpu == tmpEventType.getCpuId() );
         assertTrue("Marker Name not what was expected!",firstEventMarker.equals((String)tmpEventType.getMarkerName()) );
         // Just test the non-nullity of labels
-        assertNotSame("getLabels returned null",null, tmpEventType.getFieldLabels() );
+        assertNotSame("getLabels returned null",null, tmpEventType.getFieldNames() );
     }
     
     public void testToString() {
index ec7c2b91222fdcae70ac983ecf03a9d85bcaa28f..2853e3bf3ad9a49b93fdb9a132b55c4ba326d7d8 100644 (file)
@@ -273,7 +273,7 @@ public abstract class AbsStateUpdate implements ILttngEventProcessor {
                String expectedFieldName = expectedField.getInName();
                for (int i = 0; i < fields.length; i++) {
                        field = (LttngEventField) fields[i];
-                       fieldname = field.getId();
+                       fieldname = field.getName();
                        if (fieldname.equals(expectedFieldName)) {
                                Object fieldObj = field.getValue();
                                if (fieldObj instanceof Long) {
@@ -328,7 +328,7 @@ public abstract class AbsStateUpdate implements ILttngEventProcessor {
                String expectedFieldName = expectedField.getInName();
                for (int i = 0; i < fields.length; i++) {
                        field = (LttngEventField) fields[i];
-                       fieldname = field.getId();
+                       fieldname = field.getName();
                        if (fieldname.equals(expectedFieldName)) {
                                Object fieldObj = field.getValue();
                                if (fieldObj instanceof String) {
@@ -362,7 +362,7 @@ public abstract class AbsStateUpdate implements ILttngEventProcessor {
                sb.append(" number of fields: " + fields.length + "Fields: ");
                for (int i = 0; i < fields.length; i++) {
                        field = (LttngEventField) fields[i];
-                       sb.append(field.getId() + " ");
+                       sb.append(field.getName() + " ");
                }
 
                TraceDebug.debug(sb.toString(), 5);
index c1da3362621e83f8193479934031fc12216c8467..7185761735ca5da531c34a7a127f45b789e20d6b 100644 (file)
@@ -273,7 +273,7 @@ public abstract class AbsStateUpdate implements ILttngEventProcessor {
                String expectedFieldName = expectedField.getInName();
                for (int i = 0; i < fields.length; i++) {
                        field = (LttngEventField) fields[i];
-                       fieldname = field.getId();
+                       fieldname = field.getName();
                        if (fieldname.equals(expectedFieldName)) {
                                Object fieldObj = field.getValue();
                                if (fieldObj instanceof Long) {
@@ -328,7 +328,7 @@ public abstract class AbsStateUpdate implements ILttngEventProcessor {
                String expectedFieldName = expectedField.getInName();
                for (int i = 0; i < fields.length; i++) {
                        field = (LttngEventField) fields[i];
-                       fieldname = field.getId();
+                       fieldname = field.getName();
                        if (fieldname.equals(expectedFieldName)) {
                                Object fieldObj = field.getValue();
                                if (fieldObj instanceof String) {
@@ -362,7 +362,7 @@ public abstract class AbsStateUpdate implements ILttngEventProcessor {
                sb.append(" number of fields: " + fields.length + "Fields: ");
                for (int i = 0; i < fields.length; i++) {
                        field = (LttngEventField) fields[i];
-                       sb.append(field.getId() + " ");
+                       sb.append(field.getName() + " ");
                }
 
                TraceDebug.debug(sb.toString(), 5);
index c1555bbaa41b6e53ae35512d140c7c409044b72c..2c8e36f21547cb94867633186f86897b1c0f0884 100644 (file)
@@ -15,26 +15,28 @@ package org.eclipse.linuxtools.lttng.core.event;
 import java.util.HashMap;
 
 import org.eclipse.linuxtools.lttng.jni.JniEvent;
-import org.eclipse.linuxtools.tmf.core.event.TmfEventContent;
-import org.eclipse.linuxtools.tmf.core.event.TmfNoSuchFieldException;
+import org.eclipse.linuxtools.tmf.core.event.ITmfEvent;
+import org.eclipse.linuxtools.tmf.core.event.ITmfEventField;
+import org.eclipse.linuxtools.tmf.core.event.TmfEventField;
 
 /**
  * <b><u>LttngEventContent</u></b><p>
  * 
  * Lttng specific implementation of the TmfEventContent.<p>
  */
-public class LttngEventContent extends TmfEventContent {
+public class LttngEventContent extends TmfEventField {
+    
+    private LttngEvent fParentEvent;
     
     // Hash map that contain the (parsed) fields. This is the actual payload of the event.
-    HashMap<String, LttngEventField> fFieldsMap = new HashMap<String, LttngEventField>();
+    private HashMap<String, LttngEventField> fFieldsMap = new HashMap<String, LttngEventField>();
     
     /**
      * Default constructor.<p>
      * 
-     * 
      */
     public LttngEventContent() {
-        super(null, null);
+        super(ITmfEventField.ROOT_ID, null);
     }
     
     /**
@@ -45,7 +47,8 @@ public class LttngEventContent extends TmfEventContent {
      * @see org.eclipse.linuxtools.lttng.core.event.LttngEvent
      */
     public LttngEventContent(LttngEvent thisParent) {
-        super(thisParent, null);
+        super(ITmfEventField.ROOT_ID, null);
+        fParentEvent = thisParent;
     }
     
     /**
@@ -57,8 +60,8 @@ public class LttngEventContent extends TmfEventContent {
      * @see org.eclipse.linuxtools.lttng.core.event.LttngEvent
      */
     public LttngEventContent(LttngEvent thisParent, HashMap<String, LttngEventField> thisContent) {
-        super(thisParent, null);
-        
+        super(ITmfEventField.ROOT_ID, null);
+        fParentEvent = thisParent;
         fFieldsMap = thisContent;
     }
     
@@ -68,13 +71,11 @@ public class LttngEventContent extends TmfEventContent {
      * @param oldContent  Content to copy from
      */
     public LttngEventContent(LttngEventContent oldContent) {
-        this((LttngEvent)oldContent.getEvent(), oldContent.getMapContent() );
+        this((LttngEvent) oldContent.getEvent(), oldContent.getMapContent());
     }
     
-    
-    @Override
        public LttngEvent getEvent() {
-        return (LttngEvent)fParentEvent;
+        return fParentEvent;
     }
     
     public void setEvent(LttngEvent newParent) {
@@ -84,13 +85,14 @@ public class LttngEventContent extends TmfEventContent {
     
     // *** VERIFY ***
     // These are not very useful, are they?
-    @Override
-       public LttngEventType getType() {
-        return (LttngEventType)fParentEvent.getType();
-    }
-    public void setType(LttngEventType newType) {
-        ((LttngEvent)fParentEvent).setType(newType);
-    }
+
+//    public LttngEventType getType() {
+//        return (LttngEventType)fParentEvent.getType();
+//    }
+    
+//    public void setType(LttngEventType newType) {
+//        ((LttngEvent)fParentEvent).setType(newType);
+//    }
     
     
     // ***TODO***
@@ -107,10 +109,8 @@ public class LttngEventContent extends TmfEventContent {
      * 
      * @return  Currently parsed fields.
      */
-    @Override
     public Object[] getRawContent() {
-        Object[] returnedContent = fFieldsMap.values().toArray( new Object[fFieldsMap.size()] );
-        
+        Object[] returnedContent = fFieldsMap.values().toArray(new Object[fFieldsMap.size()]);
         return returnedContent;
     }
     
@@ -155,11 +155,13 @@ public class LttngEventContent extends TmfEventContent {
      */
     @Override
     public synchronized LttngEventField[] getFields() {
-        if (fFieldsMap.size() < fParentEvent.getType().getNbFields()) {
+        int nbFields = fParentEvent.getType().getFieldNames().length;
+        
+        if (fFieldsMap.size() < nbFields) {
                LttngEventField tmpField = null;
                LttngEventType tmpType = (LttngEventType)fParentEvent.getType();
                
-               for ( int pos=0; pos<tmpType.getNbFields(); pos++ ) {
+               for (int pos=0; pos < nbFields; pos++) {
                    String name = null;
                    LttngEvent lttngTmpEvent = (LttngEvent)getEvent(); //added for easier debugging
                                JniEvent tmpEvent = (lttngTmpEvent).convertEventTmfToJni();
@@ -167,16 +169,16 @@ public class LttngEventContent extends TmfEventContent {
                                // tmpEvent == null probably mean there is a discrepancy between Eclipse and C library
                                // An error was probably printed in convertEventTmfToJni() already, but keep in mind this is SERIOUS
                                if ( tmpEvent != null ) {
-                                       try {
-                                               name = tmpType.getFieldLabel(pos);
+//                                     try {
+                                               name = tmpType.getFieldName(pos);
                                        
                                                Object newValue = tmpEvent.parseFieldByName(name);
-                                               tmpField = new LttngEventField(this, name, newValue );
+                        tmpField = new LttngEventField(name, newValue, null);
                                                fFieldsMap.put(name, tmpField);
-                                       }
-                                       catch (TmfNoSuchFieldException e) {
-                                               System.out.println("Invalid field position requested : " + pos + ", ignoring (getFields).");  //$NON-NLS-1$//$NON-NLS-2$
-                                       }
+//                                     }
+//                                     catch (TmfNoSuchFieldException e) {
+//                                             System.out.println("Invalid field position requested : " + pos + ", ignoring (getFields).");  //$NON-NLS-1$//$NON-NLS-2$
+//                                     }
                    }
                }
         }
@@ -194,14 +196,13 @@ public class LttngEventContent extends TmfEventContent {
     public LttngEventField getField(int position) {
         LttngEventField returnedField = null;
         String label = null;
-               try {
-                       label = fParentEvent.getType().getFieldLabel(position);
-                       
+//             try {
+                       label = fParentEvent.getType().getFieldName(position);
                        returnedField = (LttngEventField) this.getField(label);
-               } 
-               catch (TmfNoSuchFieldException e) {
-                       System.out.println("Invalid field position requested : " + position + ", ignoring (getField).");  //$NON-NLS-1$//$NON-NLS-2$
-               }
+//             } 
+//             catch (TmfNoSuchFieldException e) {
+//                     System.out.println("Invalid field position requested : " + position + ", ignoring (getField).");  //$NON-NLS-1$//$NON-NLS-2$
+//             }
         
         return returnedField;
     }
@@ -217,16 +218,16 @@ public class LttngEventContent extends TmfEventContent {
     public synchronized LttngEventField getField(String name) {
 
         // Check for generic table header fields
-        if (name.equals(LttngEventType.CONTENT_LABEL) || name.equals(FIELD_ID_CONTENT)) {
-            return new LttngEventField(this, toString());
-        } else if (name.equals(LttngEventType.MARKER_LABEL) || name.equals(FIELD_ID_TYPE)) {
-            return new LttngEventField(this, fParentEvent.getType().getId());
-        } else if (name.equals(LttngEventType.TRACE_LABEL) || name.equals(FIELD_ID_REFERENCE)) {
-            return new LttngEventField(this, fParentEvent.getReference());
-        } else if (name.equals(LttngEventType.TIMESTAMP_LABEL) || name.equals(FIELD_ID_TIMESTAMP)) {
-            return new LttngEventField(this, fParentEvent.getTimestamp().toString());
-        } else if (name.equals(FIELD_ID_SOURCE)) {
-            return new LttngEventField(this, fParentEvent.getSource());
+        if (name.equals(LttngEventType.CONTENT_LABEL) || name.equals(ITmfEvent.EVENT_FIELD_CONTENT)) {
+            return new LttngEventField(toString());
+        } else if (name.equals(LttngEventType.MARKER_LABEL) || name.equals(ITmfEvent.EVENT_FIELD_TYPE)) {
+            return new LttngEventField(fParentEvent.getType().getName());
+        } else if (name.equals(LttngEventType.TRACE_LABEL) || name.equals(ITmfEvent.EVENT_FIELD_REFERENCE)) {
+            return new LttngEventField(fParentEvent.getReference());
+        } else if (name.equals(LttngEventType.TIMESTAMP_LABEL) || name.equals(ITmfEvent.EVENT_FIELD_TIMESTAMP)) {
+            return new LttngEventField(fParentEvent.getTimestamp().toString());
+        } else if (name.equals(ITmfEvent.EVENT_FIELD_SOURCE)) {
+            return new LttngEventField(fParentEvent.getSource());
         }
 
        // *** VERIFY ***
@@ -243,7 +244,8 @@ public class LttngEventContent extends TmfEventContent {
                        Object newValue =  tmpEvent.parseFieldByName(name);
                    
                    if ( newValue!= null ) {
-                       returnedField = new LttngEventField(this, name, newValue);
+                       returnedField = new LttngEventField(name, newValue);
+                    returnedField = new LttngEventField(name, newValue);
                        fFieldsMap.put(name, returnedField );
                    }
                }
@@ -252,12 +254,11 @@ public class LttngEventContent extends TmfEventContent {
         return returnedField;
     }
     
-    // *** VERIFY ***
-    // *** Is this even useful?
-    @Override
-    protected void parseContent() {
-        fFields = getFields();
-    }
+//    // *** VERIFY ***
+//    // *** Is this even useful?
+//    protected void parseContent() {
+//        fSubfields = getFields();
+//    }
     
     /**
      * toString() method to print the content
@@ -282,10 +283,11 @@ public class LttngEventContent extends TmfEventContent {
        public LttngEventContent clone() {
                LttngEventContent clone = (LttngEventContent) super.clone();
                LttngEventField[] fields = getFields();
-               clone.fFields = new LttngEventField[fields.length];
+               LttngEventField[] subfields = new LttngEventField[fields.length];
                for (int i = 0; i < fields.length; i++) {
-                       clone.fFields[i] = fields[i].clone();
+                   subfields[i] = (LttngEventField) fields[i].clone();
                }
+               clone.setValue(getValue(), subfields);
                clone.fFieldsMap = new HashMap<String, LttngEventField>();
                for (String key : fFieldsMap.keySet()) {
                        clone.fFieldsMap.put(new String(key), ((LttngEventField) fFieldsMap.get(key)).clone());
index 0950e50ace81348d742974c4075341f95a43813b..40332778019fd1baed6c94c738750e93a5f7c67c 100644 (file)
@@ -12,8 +12,6 @@
 
 package org.eclipse.linuxtools.lttng.core.event;
 
-import org.eclipse.linuxtools.tmf.core.event.ITmfEventContent;
-import org.eclipse.linuxtools.tmf.core.event.TmfEventContent;
 import org.eclipse.linuxtools.tmf.core.event.TmfEventField;
 
 /**
@@ -25,49 +23,32 @@ import org.eclipse.linuxtools.tmf.core.event.TmfEventField;
  * mean the fields will have a name and a value.
  */
 public class LttngEventField extends TmfEventField {
-       
-    /**
-     * Constructor with parameters.<p>
-     * 
-     * @param parent   Parent content for this field
-     * @param id       Name (label) of this field
-     */
-    public LttngEventField(TmfEventContent parent, String id) {
-        super(parent, id, null);
+
+    public LttngEventField(String name, Object value, LttngEventField[] subfields) {
+        super(name, value, subfields);
+    }
+    
+    public LttngEventField(String name, Object value) {
+        this(name, value, null);
     }
     
-       /**
-        * Constructor with parameters with optional value.<p>
-        * 
-        * @param parent   Parent content for this field
-        * @param id       Name (label) of this field
-        * @param value    Parsed value (payload) of this field
-        */
-       public LttngEventField(ITmfEventContent parent, String id, Object value) {
-               super(parent, id, value);
-       }
-       
-       /**
-        * Copy constructor.<p>
-        * 
-        * @param oldField     the field to copy from
-        */
-       public LttngEventField(LttngEventField oldField) {
-               this(oldField.getContent(), oldField.getId(), oldField.getValue());
-       }
-       
-       @Override
-    @SuppressWarnings("nls")
-       public String toString() {
-               Object value = getValue();
-           return getId() + ":" + ((value != null) ? value.toString() : "null");
-       }
-       
-       @Override
-       public LttngEventField clone() {
-               LttngEventField clone = (LttngEventField) super.clone();
-               clone.fValue = fValue;
-               return clone;
-       }
-       
+    public LttngEventField(String name) {
+        this(name, null, null);
+    }
+
+    public LttngEventField(LttngEventField field) {
+        super(field);
+    }
+
+    @Override
+    public LttngEventField clone() {
+        LttngEventField clone = null;
+        clone = (LttngEventField) super.clone();
+        return clone;
+    }
+
+    @Override
+    public String toString() {
+        return getName() + ":" + getValue(); //$NON-NLS-1$
+    }
 }
index 8b92f1483fd2c182f0b16efc423113be1a045fff..55fee284f07855e183e9d3e88f0501688a47af27 100644 (file)
@@ -53,7 +53,7 @@ public class LttngEventType extends TmfEventType {
      * 
      */
     public LttngEventType(String typeId, String[] labels) {
-        super(DEFAULT_CONTEXT, typeId, labels);
+        super(DEFAULT_CONTEXT, typeId, TmfEventField.makeRoot(labels));
     }
     
     /**
@@ -64,7 +64,7 @@ public class LttngEventType extends TmfEventType {
      * @param thisMarkerfieldsName  MarkerFields related to this marker        
      */
     public LttngEventType(String thisTracefileName, Long thisCpuId, String thisMarkerName, int thisMarkerId, String[] thisMarkerfieldsName) {
-        super(DEFAULT_CONTEXT, thisTracefileName + "/" + thisCpuId + "/" + thisMarkerName, thisMarkerfieldsName); //$NON-NLS-1$ //$NON-NLS-2$
+        super(DEFAULT_CONTEXT, thisTracefileName + "/" + thisCpuId + "/" + thisMarkerName,  TmfEventField.makeRoot(thisMarkerfieldsName)); //$NON-NLS-1$ //$NON-NLS-2$
         
         tracefileName   = thisTracefileName;
         cpuId           = thisCpuId;
@@ -78,7 +78,7 @@ public class LttngEventType extends TmfEventType {
      * @param oldType   Type we want to copy from
      */
     public LttngEventType(LttngEventType oldType) {
-        this(oldType.tracefileName, oldType.cpuId, oldType.markerName, oldType.markerId, oldType.getFieldLabels());
+        this(oldType.tracefileName, oldType.cpuId, oldType.markerName, oldType.markerId, oldType.getFieldNames());
     }
     
     
index 451f89da45b0adff16273a77c2d5bb113db3d67c..06dd109cd1a678bcc21b2120250db61b29bb16fc 100644 (file)
@@ -17,11 +17,10 @@ import java.util.Map;
 
 import org.eclipse.linuxtools.lttng.core.LttngConstants;
 import org.eclipse.linuxtools.lttng.core.TraceDebug;
-import org.eclipse.linuxtools.tmf.core.event.TmfDataItem;
-import org.eclipse.linuxtools.tmf.core.event.TmfEventType;
+import org.eclipse.linuxtools.tmf.core.event.TmfEvent;
 
 public abstract class LTTngTreeNodeGeneric<E extends LTTngTreeNodeGeneric<E>>
-               extends TmfDataItem implements ILTTngTreeNode<E> {
+               extends TmfEvent implements ILTTngTreeNode<E> {
 
        // ========================================================================
        // Data
index 00ce0efaac4f5b2069a94dc64143f00114e0a2a2..14bf79230535368375ae80936bbf01e13680dafe 100644 (file)
@@ -201,7 +201,7 @@ public abstract class AbsStateProcessing {
                sb.append(" number of fields: " + fields.length + "Fields: ");
                for (int i = 0; i < fields.length; i++) {
                        field = (LttngEventField) fields[i];
-                       sb.append(field.getId() + " ");
+                       sb.append(field.getName() + " ");
                }
        
                TraceDebug.debug(sb.toString(), 5);
index 482c280d6c397d612c57a855aa15381bedf812a7..2881e964e23aad51c0d2b8500b9b1d4ec091a451 100644 (file)
@@ -23,7 +23,6 @@ import org.eclipse.linuxtools.lttng.core.event.LttngEventField;
 import org.eclipse.linuxtools.lttng.core.event.LttngEventType;
 import org.eclipse.linuxtools.lttng.core.event.LttngTimestamp;
 import org.eclipse.linuxtools.lttng.jni.JniEvent;
-import org.eclipse.linuxtools.tmf.core.event.TmfNoSuchFieldException;
 import org.eclipse.linuxtools.tmf.core.event.TmfTimeRange;
 import org.eclipse.linuxtools.tmf.core.trace.ITmfLocation;
 import org.eclipse.linuxtools.tmf.core.trace.TmfCheckpoint;
@@ -373,7 +372,7 @@ public class LTTngTextTrace extends TmfTrace<LttngEvent> {
                                        }
                                        catch (NumberFormatException e) { }
                                        
-                                       LttngEventField tmpField = new LttngEventField(eventContent, markerName, payload);
+                                       LttngEventField tmpField = new LttngEventField(markerName, payload);
                                        fieldsMap.put(markerName, tmpField);
                                        
                                        tmpIndexBegin = tmpIndexEnd+1;
@@ -385,7 +384,7 @@ public class LTTngTextTrace extends TmfTrace<LttngEvent> {
                                markerName = ""; //$NON-NLS-1$
                                payload = ""; //$NON-NLS-1$
                                
-                               LttngEventField tmpField = new LttngEventField(eventContent, markerName, payload);
+                               LttngEventField tmpField = new LttngEventField(markerName, payload);
                                fieldsMap.put(markerName, tmpField);
                        }
                        
@@ -494,7 +493,7 @@ class TextLttngEventContent extends LttngEventContent {
     }
     
     public TextLttngEventContent(TextLttngEventContent oldContent) {
-       this( (TextLttngEvent)oldContent.fParentEvent, oldContent.getMapContent());
+       this(((TextLttngEvent) oldContent.getEvent()), oldContent.getMapContent());
     }
     
     @Override
@@ -513,13 +512,13 @@ class TextLttngEventContent extends LttngEventContent {
     public LttngEventField getField(int position) {
        LttngEventField returnedField = null;
        String label = null;
-               try {
-                       label = fParentEvent.getType().getFieldLabel(position);
+//             try {
+                       label = getEvent().getType().getFieldName(position);
                        returnedField = this.getField(label);
-               } 
-               catch (TmfNoSuchFieldException e) {
-                       System.out.println("Invalid field position requested : " + position + ", ignoring (getField)."); //$NON-NLS-1$ //$NON-NLS-2$
-               }
+//             } 
+//             catch (TmfNoSuchFieldException e) {
+//                     System.out.println("Invalid field position requested : " + position + ", ignoring (getField)."); //$NON-NLS-1$ //$NON-NLS-2$
+//             }
         
         return returnedField;
     }
index 2c6388df59d398d015559de68965ca407aec17fa..7a4deab4d742d0e9acfbcec7a0330c1eea37929a 100644 (file)
@@ -13,9 +13,8 @@
 \r
 package org.eclipse.linuxtools.lttng.ui.views.events;\r
 \r
-import org.eclipse.linuxtools.tmf.core.event.ITmfEventContent;\r
+import org.eclipse.linuxtools.tmf.core.event.ITmfEvent;\r
 import org.eclipse.linuxtools.tmf.core.event.TmfEvent;\r
-import org.eclipse.linuxtools.tmf.core.event.TmfEventContent;\r
 import org.eclipse.linuxtools.tmf.core.event.TmfEventField;\r
 import org.eclipse.linuxtools.tmf.ui.viewers.events.TmfEventsTable;\r
 import org.eclipse.linuxtools.tmf.ui.widgets.ColumnData;\r
@@ -53,10 +52,10 @@ public class EventsTable extends TmfEventsTable {
 \r
     public EventsTable(Composite parent, int cacheSize) {\r
         super(parent, cacheSize, COLUMN_DATA);\r
-        fTable.getColumns()[0].setData(Key.FIELD_ID, TmfEventContent.FIELD_ID_TIMESTAMP);\r
-        fTable.getColumns()[1].setData(Key.FIELD_ID, TmfEventContent.FIELD_ID_REFERENCE);\r
-        fTable.getColumns()[2].setData(Key.FIELD_ID, TmfEventContent.FIELD_ID_TYPE);\r
-        fTable.getColumns()[3].setData(Key.FIELD_ID, TmfEventContent.FIELD_ID_CONTENT);\r
+        fTable.getColumns()[0].setData(Key.FIELD_ID, ITmfEvent.EVENT_FIELD_TIMESTAMP);\r
+        fTable.getColumns()[1].setData(Key.FIELD_ID, ITmfEvent.EVENT_FIELD_REFERENCE);\r
+        fTable.getColumns()[2].setData(Key.FIELD_ID, ITmfEvent.EVENT_FIELD_TYPE);\r
+        fTable.getColumns()[3].setData(Key.FIELD_ID, ITmfEvent.EVENT_FIELD_CONTENT);\r
     }\r
 \r
     /**\r
@@ -67,12 +66,11 @@ public class EventsTable extends TmfEventsTable {
     protected TmfEventField[] extractItemFields(TmfEvent event) {\r
         TmfEventField[] fields = new TmfEventField[0];\r
         if (event != null) {\r
-            ITmfEventContent content = event.getContent();\r
             fields = new TmfEventField[] {\r
-                     new TmfEventField(content, TmfEventContent.FIELD_ID_TIMESTAMP, ((Long) event.getTimestamp().getValue()).toString()),\r
-                     new TmfEventField(content, TmfEventContent.FIELD_ID_REFERENCE, event.getReference()),\r
-                     new TmfEventField(content, TmfEventContent.FIELD_ID_TYPE, event.getType().getId()),\r
-                     new TmfEventField(content, TmfEventContent.FIELD_ID_CONTENT, event.getContent().toString())\r
+                     new TmfEventField(ITmfEvent.EVENT_FIELD_TIMESTAMP, ((Long) event.getTimestamp().getValue()).toString()),\r
+                     new TmfEventField(ITmfEvent.EVENT_FIELD_REFERENCE, event.getReference()),\r
+                     new TmfEventField(ITmfEvent.EVENT_FIELD_TYPE, event.getType().getName()),\r
+                     new TmfEventField(ITmfEvent.EVENT_FIELD_CONTENT, event.getContent().toString())\r
                     };\r
         }\r
         return fields;\r
index 9c4b23ed9559cd20704b98ccdfcef7bd96aafbf2..4ced46a711fd1c2f4bd4fdccb9f2652c1d651c92 100644 (file)
@@ -12,7 +12,6 @@ public class AllTests {
                TestSuite suite = new TestSuite("Test suite for " + TmfCorePlugin.PLUGIN_ID + ".event"); //$NON-NLS-1$);
                //$JUnit-BEGIN$
                suite.addTestSuite(TmfEventFieldTest.class);
-               suite.addTestSuite(TmfEventContentTest.class);
                suite.addTestSuite(TmfEventTypeTest.class);
                suite.addTestSuite(TmfTimestampTest.class);
                suite.addTestSuite(TmfTimeRangeTest.class);
diff --git a/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/event/TmfEventContentTest.java b/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/event/TmfEventContentTest.java
deleted file mode 100644 (file)
index ac49384..0000000
+++ /dev/null
@@ -1,315 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Ericsson
- * 
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License v1.0 which
- * accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *   Francois Chouinard - Initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.linuxtools.tmf.core.tests.event;
-
-import junit.framework.TestCase;
-
-import org.eclipse.linuxtools.tmf.core.event.TmfEvent;
-import org.eclipse.linuxtools.tmf.core.event.TmfEventContent;
-import org.eclipse.linuxtools.tmf.core.event.TmfEventField;
-import org.eclipse.linuxtools.tmf.core.event.TmfEventType;
-import org.eclipse.linuxtools.tmf.core.event.TmfNoSuchFieldException;
-import org.eclipse.linuxtools.tmf.core.event.TmfTimestamp;
-import org.eclipse.linuxtools.tmf.stubs.event.TmfEventContentStub;
-import org.eclipse.linuxtools.tmf.stubs.event.TmfEventTypeStub;
-
-/**
- * <b><u>TmfEventContentTest</u></b>
- * <p>
- * Test suite for the TmfEventContent class.
- */
-@SuppressWarnings("nls")
-public class TmfEventContentTest extends TestCase {
-
-       // ------------------------------------------------------------------------
-       // Variables
-       // ------------------------------------------------------------------------
-
-       private final TmfTimestamp      fTimestamp;
-       private final String            fEventSource;
-       private final TmfEventType      fEventType;
-       private final TmfEventTypeStub  fEventTypeStub;
-       private final String            fReference;
-       private final TmfEvent          fEvent;
-       private final TmfEvent          fEventStub;
-
-       private final String fRawContent0 = "Some content";
-       private final String fRawContent1 = "Some other content";
-
-       private final TmfEventContent     fBasicContent0;
-       private final TmfEventContent     fBasicContent1;
-       private final TmfEventContent     fBasicContent2;
-       private final TmfEventContentStub fStubContent;
-
-       // ------------------------------------------------------------------------
-       // Housekeeping
-       // ------------------------------------------------------------------------
-
-       /**
-        * @param name the test name
-        */
-       public TmfEventContentTest(String name) {
-               super(name);
-               fTimestamp     = new TmfTimestamp();
-               fEventSource   = "";
-               fEventType     = new TmfEventTypeStub();
-               fEventTypeStub = new TmfEventTypeStub();
-               fReference     = "";
-
-               fEvent         = new TmfEvent(fTimestamp, fEventSource, fEventType, fReference);
-               fBasicContent0 = new TmfEventContent(fEvent, fRawContent0);
-               fBasicContent1 = new TmfEventContent(fEvent, fRawContent0);
-               fBasicContent2 = new TmfEventContent(fEvent, fRawContent0);
-
-               fEventStub    = new TmfEvent(fTimestamp, fEventSource, fEventTypeStub, fReference);
-               fStubContent  = new TmfEventContentStub(fEventStub, fRawContent1);
-       }
-
-       @Override
-       protected void setUp() throws Exception {
-               super.setUp();
-       }
-
-       @Override
-       protected void tearDown() throws Exception {
-               super.tearDown();
-       }
-
-       // ------------------------------------------------------------------------
-       // Constructors
-       // ------------------------------------------------------------------------
-
-       public void testTmfEventContent() {
-               assertSame("getLabels",    fEvent,       fBasicContent0.getEvent());
-               assertEquals("getType",    fEventType,   fBasicContent0.getType());
-               assertEquals("getContent", fRawContent0, fBasicContent0.getRawContent());
-       }
-
-       public void testTmfEventContentCopy() {
-               TmfEventContent content  = new TmfEventContent(fBasicContent0);
-               assertSame("getLabels",    fEvent,       content.getEvent());
-               assertEquals("getType",    fEventType,   content.getType());
-               assertEquals("getContent", fRawContent0, content.getRawContent());
-       }
-
-       public void testTmfEventContentCopy2() {
-               try {
-                       new TmfEventContent(null);
-                       fail("null copy");
-               }
-               catch (IllegalArgumentException e) {
-                       // Success
-               }
-       }
-
-//     // ------------------------------------------------------------------------
-//     // setEvent
-//     // ------------------------------------------------------------------------
-//
-//     public void testSetEvent() {
-//             TmfEvent event = new TmfEvent(fTimestamp, fEventSource, fEventType, fReference);
-//             TmfEventContent content1 = new TmfEventContent(event, fRawContent0);
-//             event.setContent(content1);
-//             TmfEventContent content2 = new TmfEventContent(null, fRawContent1);
-//
-//             content2.setEvent(event);
-//
-//             assertEquals("setEvent", event, content2.getEvent());
-////           assertEquals("setEvent", content2, event.getContent());
-////           assertEquals("setEvent", null, content1.getEvent());
-//     }
-
-       // ------------------------------------------------------------------------
-       // equals
-       // ------------------------------------------------------------------------
-
-       public void testEqualsReflexivity() throws Exception {
-               @SuppressWarnings("unused")
-               Object[] fields1 = fBasicContent0.getFields(); 
-               @SuppressWarnings("unused")
-               Object[] fields2 = fStubContent.getFields(); 
-
-               assertTrue("equals", fBasicContent0.equals(fBasicContent0));
-               assertTrue("equals", fStubContent.equals(fStubContent));
-
-               assertTrue("equals", !fBasicContent0.equals(fStubContent));
-               assertTrue("equals", !fStubContent.equals(fBasicContent0));
-       }
-       
-       public void testEqualsSymmetry() throws Exception {
-               assertTrue("equals", fBasicContent0.equals(fBasicContent2));
-               assertTrue("equals", fBasicContent2.equals(fBasicContent0));
-
-               assertTrue("equals", !fBasicContent0.equals(fStubContent));
-               assertTrue("equals", !fStubContent.equals(fBasicContent0));
-       }
-       
-       public void testEqualsTransivity() throws Exception {
-               assertTrue("equals", fBasicContent0.equals(fBasicContent1));
-               assertTrue("equals", fBasicContent1.equals(fBasicContent2));
-               assertTrue("equals", fBasicContent0.equals(fBasicContent2));
-       }
-       
-       public void testEqualsNull() throws Exception {
-               assertTrue("equals", !fBasicContent0.equals(null));
-               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
-       // ------------------------------------------------------------------------
-
-       public void testToString() {
-           String expected = "TmfEventContent [fRawContent=" + fRawContent0 + ", fFields=null]";
-               TmfEventContent content = new TmfEventContent(fEvent, fRawContent0);
-               assertEquals("toString", expected, content.toString());
-       }
-
-       public void testToString2() {
-        String expected = "TmfEventContent [fRawContent=" + fRawContent0 + ", fFields=null]";
-               TmfEventContentStub content = new TmfEventContentStub(fEvent, fRawContent0);
-               assertEquals("toString", expected, content.toString());
-       }
-
-       // ------------------------------------------------------------------------
-       // Basic content parsing
-       // ------------------------------------------------------------------------
-
-       public void testGetFields() {
-           TmfEventField expected = new TmfEventField(fBasicContent0, TmfEventContent.FIELD_ID_CONTENT, fRawContent0);
-               Object[] fields = fBasicContent0.getFields(); 
-               assertEquals("getFields", 1, fields.length);
-               assertEquals("getFields", expected, fields[0]);
-       }
-
-//     public void testGetFieldFromId() {
-//             Object field;
-//             try {
-//                     field = fStubContent.getField("Content");
-//                     assertEquals("getField", fRawContent0, field.toString());
-//             } catch (TmfNoSuchFieldException e) {
-//                     fail("Field not found");
-//             } 
-//     }
-
-       public void testGetFieldFromIdFailed() {
-               try {
-                       fBasicContent0.getField("Dummy");
-                       fail("Found an inexisting field...");
-               } catch (TmfNoSuchFieldException e) {
-                       // Success
-               } 
-       }
-
-       public void testGetFieldFromPos() {
-        String expected = "TmfEventField [fFieldId=" + 
-                  TmfEventContent.FIELD_ID_CONTENT + ", fValue=" + fRawContent0 + "]"; 
-               Object field = fBasicContent0.getField(0);
-               assertEquals("getField", expected, field.toString());
-       }
-
-       public void testGetFieldFromPosFailed() {
-               Object field = fBasicContent0.getField(10);
-               assertEquals("getField", null, field);
-       }
-
-       // ------------------------------------------------------------------------
-       // Standard content parsing
-       // ------------------------------------------------------------------------
-
-       public void testGetFields2() {
-               Object[] fields = fStubContent.getFields(); 
-               assertEquals("getFields", 5, fields.length);
-       }
-
-       public void testGetFieldFromId2() {
-               Object field;
-               TmfEventField expected;
-               try {
-                       field = fStubContent.getField("Field1");
-                       expected = new TmfEventField(fStubContent, "field1", new Integer(1));
-                       assertEquals("getField", expected, field);
-
-                       field = fStubContent.getField("Field2");
-            expected = new TmfEventField(fStubContent, "field2", new Integer(-10));
-                       assertEquals("getField", expected, field);
-
-                       field = fStubContent.getField("Field3");
-            expected = new TmfEventField(fStubContent, "field3", new Boolean(true));
-                       assertEquals("getField", expected, field);
-
-                       field = fStubContent.getField("Field4");
-            expected = new TmfEventField(fStubContent, "field4", "some string");
-                       assertEquals("getField", expected, field);
-
-                       field = fStubContent.getField("Field5");
-            expected = new TmfEventField(fStubContent, "field5", new TmfTimestamp(1, 2, 3));
-                       assertEquals("getField", expected, field);
-
-               } catch (TmfNoSuchFieldException e) {
-                       fail("Field not found");
-               } 
-       }
-
-       public void testGetFieldFromPos2() {
-               TmfEventContentStub content = new TmfEventContentStub(fEvent, fRawContent0);
-
-        Object field;
-        TmfEventField expected;
-
-        field = content.getField(0);
-               expected = new TmfEventField(content, "field1", new Integer(1));
-               assertEquals("getField", expected, field);
-
-               field = content.getField(1);
-        expected = new TmfEventField(content, "field2", new Integer(-10));
-               assertEquals("getField", expected, field);
-
-               field = content.getField(2);
-        expected = new TmfEventField(content, "field3", new Boolean(true));
-               assertEquals("getField", expected, field);
-
-               field = content.getField(3);
-        expected = new TmfEventField(content, "field4", "some string");
-               assertEquals("getField",expected, field);
-
-               field = content.getField(4);
-        expected = new TmfEventField(content, "field5", new TmfTimestamp(1, 2, 3));
-               assertEquals("getField", expected, field);
-       }
-
-}
index 18d194bca1fa838fe27786ac9a68fee7c1a3b988..99ffc9ef7e6b4c7df25f69b5c472d55c02dbd96f 100644 (file)
@@ -14,12 +14,8 @@ package org.eclipse.linuxtools.tmf.core.tests.event;
 
 import junit.framework.TestCase;
 
-import org.eclipse.linuxtools.tmf.core.event.TmfEvent;
-import org.eclipse.linuxtools.tmf.core.event.TmfEventContent;
+import org.eclipse.linuxtools.tmf.core.event.ITmfEventField;
 import org.eclipse.linuxtools.tmf.core.event.TmfEventField;
-import org.eclipse.linuxtools.tmf.core.event.TmfEventType;
-import org.eclipse.linuxtools.tmf.core.event.TmfTimestamp;
-import org.eclipse.linuxtools.tmf.stubs.event.TmfEventTypeStub;
 
 /**
  * <b><u>TmfEventFieldTest</u></b>
@@ -33,7 +29,6 @@ public class TmfEventFieldTest extends TestCase {
        // Variables
        // ------------------------------------------------------------------------
 
-       private final TmfEventContent fContent;
        private final String fFieldId = "Field";
        private final Object fValue1  = new String("Value"); 
        private final Object fValue2  = new Integer(10); 
@@ -52,18 +47,10 @@ public class TmfEventFieldTest extends TestCase {
         */
        public TmfEventFieldTest(String name) {
                super(name);
-               TmfTimestamp fTimestamp   = new TmfTimestamp();
-               String       fEventSource = "";
-               TmfEventType fEventType   = new TmfEventTypeStub();
-               String       fReference   = "";
-               TmfEvent     fEvent       = new TmfEvent(fTimestamp, fEventSource, fEventType, fReference);
-
-               fContent = new TmfEventContent(fEvent, "Some content");
-
-               fField0 = new TmfEventField(fContent, fFieldId, fValue1);
-               fField1 = new TmfEventField(fContent, fFieldId, fValue1);
-               fField2 = new TmfEventField(fContent, fFieldId, fValue1);
-               fField3 = new TmfEventField(fContent, fFieldId, fValue2);
+      fField0 = new TmfEventField(fFieldId, fValue1, null);
+      fField1 = new TmfEventField(fFieldId, fValue1, null);
+      fField2 = new TmfEventField(fFieldId, fValue1, null);
+      fField3 = new TmfEventField(fFieldId, fValue2, null);
        }
 
        @Override
@@ -81,14 +68,13 @@ public class TmfEventFieldTest extends TestCase {
     // ------------------------------------------------------------------------
 
        public void testTmfEventField() {
-               assertSame("getParent", fContent, fField0.getContent());
-               assertSame("getId",     fFieldId, fField0.getId());
+               assertSame("getId",     fFieldId, fField0.getName());
                assertSame("getValue",  fValue1,  fField0.getValue());
        }
 
        public void testTmfEventFieldBadArg() {
                try {
-                       new TmfEventField(fContent, null, fValue1);
+                       new TmfEventField(null, fValue1, null);
                        fail("null copy");
                }
                catch (IllegalArgumentException e) {
@@ -97,10 +83,9 @@ public class TmfEventFieldTest extends TestCase {
        }
 
        public void testTmfEventFieldCopy() {
-               TmfEventField original = new TmfEventField(fContent, fFieldId, fValue1);
+           TmfEventField original = new TmfEventField(fFieldId, fValue1, null);
                TmfEventField field = new TmfEventField(original);
-               assertSame("getContent", fContent, field.getContent());
-               assertSame("getId",      fFieldId, field.getId());
+               assertSame("getId",      fFieldId, field.getName());
                assertSame("getValue",   fValue1,  field.getValue());
        }
 
@@ -119,26 +104,27 @@ public class TmfEventFieldTest extends TestCase {
     // ------------------------------------------------------------------------
 
        private class MyField extends TmfEventField {
-               public MyField(TmfEventContent parent, String id, Object value) {
-                       super(parent, id, value);
+               public MyField(String id, Object value) {
+                       super(id, value);
                }
            public MyField(TmfEventField field) {
                        super(field);
                }
                @Override
-               public void setValue(Object value) {
-               super.setValue(value);
+               public void setValue(Object value, ITmfEventField[] subfields) {
+               super.setValue(value, subfields);
            }
        }
 
        public void testSetValue() {
-               TmfEventField original = new TmfEventField(fContent, fFieldId, fValue1);
+//             TmfEventField original = new TmfEventField(fContent, fFieldId, fValue1);
+        TmfEventField original = new TmfEventField(fFieldId, fValue1, null);
                TmfEventField field = new TmfEventField(original);
 
                MyField myField = new MyField(field);
                assertSame("getValue", fValue1,  myField.getValue());
 
-               myField.setValue(fValue2);
+               myField.setValue(fValue2, null);
                assertSame("getValue", fValue2,  myField.getValue());
        }
 
@@ -188,11 +174,13 @@ public class TmfEventFieldTest extends TestCase {
 
        public void testToString() {
                String expected1 = "TmfEventField [fFieldId=" + fFieldId + ", fValue=" + fValue1.toString() + "]";
-               TmfEventField field = new TmfEventField(fContent, fFieldId, fValue1);
+//             TmfEventField field = new TmfEventField(fContent, fFieldId, fValue1);
+        TmfEventField field = new TmfEventField(fFieldId, fValue1, null);
                assertEquals("toString", expected1, field.toString());
 
         String expected2 = "TmfEventField [fFieldId=" + fFieldId + ", fValue=" + fValue2.toString() + "]";
-               field = new TmfEventField(fContent, fFieldId, fValue2);
+//             field = new TmfEventField(fContent, fFieldId, fValue2);
+        field = new TmfEventField(fFieldId, fValue2, null);
                assertEquals("toString", expected2, field.toString());
        }
 
index 66658c0201ed04c6331d5c503087dba2efe6740b..347e865b047f3cf913ae85d5c736dbbf153780c5 100644 (file)
@@ -14,8 +14,9 @@ package org.eclipse.linuxtools.tmf.core.tests.event;
 
 import junit.framework.TestCase;
 
+import org.eclipse.linuxtools.tmf.core.event.ITmfEventField;
 import org.eclipse.linuxtools.tmf.core.event.TmfEvent;
-import org.eclipse.linuxtools.tmf.core.event.TmfEventContent;
+import org.eclipse.linuxtools.tmf.core.event.TmfEventField;
 import org.eclipse.linuxtools.tmf.core.event.TmfEventType;
 import org.eclipse.linuxtools.tmf.core.event.TmfTimestamp;
 
@@ -40,14 +41,14 @@ public class TmfEventTest extends TestCase {
        private final TmfTimestamp fTimestamp1 = new TmfTimestamp(12345, (byte) 2, 5);
        private final TmfTimestamp fTimestamp2 = new TmfTimestamp(12350, (byte) 2, 5);
        private final String       fSource     = "Source";
-       private final TmfEventType fType       = new TmfEventType(fContext, fTypeId, fLabels);
+       private final TmfEventType fType       = new TmfEventType(fContext, fTypeId, TmfEventField.makeRoot(fLabels));
        private final String       fReference  = "Some reference";
 
        private final TmfEvent fEvent1;
        private final TmfEvent fEvent2;
 
-       private final TmfEventContent fContent1;
-       private final TmfEventContent fContent2;
+       private final TmfEventField fContent1;
+       private final TmfEventField fContent2;
        
        // ------------------------------------------------------------------------
        // Housekeeping
@@ -59,13 +60,11 @@ public class TmfEventTest extends TestCase {
        public TmfEventTest(String name) {
                super(name);
 
-               fEvent1 = new TmfEvent(fTimestamp1, fSource, fType, fReference);
-               fContent1 = new TmfEventContent(fEvent1, "Some content");
-               fEvent1.setContent(fContent1);
+        fContent1 = new TmfEventField(ITmfEventField.ROOT_ID, "Some content");
+               fEvent1 = new TmfEvent(null, fTimestamp1, fSource, fType, fContent1, fReference);
 
-               fEvent2 = new TmfEvent(fTimestamp2, fSource, fType, fReference);
-               fContent2 = new TmfEventContent(fEvent2, "Some other content");
-               fEvent2.setContent(fContent2);
+        fContent2 = new TmfEventField(ITmfEventField.ROOT_ID, "Some other content");
+               fEvent2 = new TmfEvent(null, fTimestamp2, fSource, fType, fContent2, fReference);
        }
 
        @Override
index 26a292c92423603596b0a2d3966432725f048fed..fc4951e97c27d712b84a0637b803145f2cd6d76a 100644 (file)
@@ -14,8 +14,8 @@ package org.eclipse.linuxtools.tmf.core.tests.event;
 
 import junit.framework.TestCase;
 
+import org.eclipse.linuxtools.tmf.core.event.TmfEventField;
 import org.eclipse.linuxtools.tmf.core.event.TmfEventType;
-import org.eclipse.linuxtools.tmf.core.event.TmfNoSuchFieldException;
 
 /**
  * <b><u>TmfEventTypeTest</u></b>
@@ -37,10 +37,10 @@ public class TmfEventTypeTest extends TestCase {
     private final String[] fLabels1  = new String[] { fLabel0, fLabel1 };
     private final String[] fLabels2  = new String[] { fLabel1, fLabel0 };
 
-    private final TmfEventType fType0 = new TmfEventType(fContext, fTypeId,  fLabels1);
-    private final TmfEventType fType1 = new TmfEventType(fContext, fTypeId,  fLabels1);
-    private final TmfEventType fType2 = new TmfEventType(fContext, fTypeId,  fLabels1);
-    private final TmfEventType fType3 = new TmfEventType(fContext, fTypeId2, fLabels2);
+    private final TmfEventType fType0 = new TmfEventType(fContext, fTypeId,  TmfEventField.makeRoot(fLabels1));
+    private final TmfEventType fType1 = new TmfEventType(fContext, fTypeId,  TmfEventField.makeRoot(fLabels1));
+    private final TmfEventType fType2 = new TmfEventType(fContext, fTypeId,  TmfEventField.makeRoot(fLabels1));
+    private final TmfEventType fType3 = new TmfEventType(fContext, fTypeId2, TmfEventField.makeRoot(fLabels2));
 
     // ------------------------------------------------------------------------
     // Housekeeping
@@ -69,51 +69,45 @@ public class TmfEventTypeTest extends TestCase {
 
     public void testTmfEventTypeDefault() {
         TmfEventType type = new TmfEventType();
-        assertEquals("getTypeId",   TmfEventType.DEFAULT_TYPE_ID, type.getId());
-        assertEquals("getNbFields", 0, type.getNbFields());
-        assertEquals("getLabels",   0, type.getFieldLabels().length);
+        assertEquals("getTypeId", TmfEventType.DEFAULT_TYPE_ID, type.getName());
+        assertNull("getLabels", type.getFieldName(0));
 
-        try {
-            assertEquals("getFieldIndex", 0, type.getFieldIndex(fLabel0));
-            fail("getFieldIndex: no such field");
-            assertEquals("getLabel", 0, type.getFieldLabel(0));
-            fail("getFieldIndex: no such field");
-        } catch (TmfNoSuchFieldException e) {
-            // Success
-        }
+//            assertEquals("getFieldIndex", 0, type.getFieldIndex(fLabel0));
+//            fail("getFieldIndex: no such field");
+            assertNull("getLabel", type.getFieldName(0));
+//            fail("getFieldIndex: no such field");
     }
 
     public void testTmfEventType() {
-        TmfEventType type = new TmfEventType(fContext, fTypeId, fLabels1);
+        TmfEventType type = new TmfEventType(fContext, fTypeId, TmfEventField.makeRoot(fLabels1));
         String[] expected = new String[] { fLabel0, fLabel1 };
-        try {
-            assertEquals("getTypeId", fTypeId, type.getId());
-            assertEquals("getNbFields", fLabels1.length, type.getNbFields());
-            assertEquals("getFieldIndex", 0, type.getFieldIndex(fLabel0));
-            assertEquals("getFieldIndex", 1, type.getFieldIndex(fLabel1));
-            String[] labels = type.getFieldLabels();
+//        try {
+            assertEquals("getTypeId", fTypeId, type.getName());
+//            assertEquals("getFieldIndex", 0, type.getFieldIndex(fLabel0));
+//            assertEquals("getFieldIndex", 1, type.getFieldIndex(fLabel1));
+            String[] labels = type.getFieldNames();
             for (int i = 0; i < labels.length; i++) {
                 assertEquals("getLabels", expected[i], labels[i]);
             }
-            assertEquals("getLabel", fLabel0, type.getFieldLabel(0));
-            assertEquals("getLabel", fLabel1, type.getFieldLabel(1));
-        } catch (TmfNoSuchFieldException e) {
-            fail("getFieldIndex: no such field");
-        }
-
-        try {
-            assertEquals("getFieldIndex", 0, type.getFieldIndex("Dummy"));
-            fail("getFieldIndex: inexistant field");
-        } catch (TmfNoSuchFieldException e) {
-            // Success
-        }
-
-        try {
-            type.getFieldLabel(10);
-            fail("getLabel: inexistant field");
-        } catch (TmfNoSuchFieldException e) {
-            // Success
-        }
+            assertEquals("getLabel", fLabel0, type.getFieldName(0));
+            assertEquals("getLabel", fLabel1, type.getFieldName(1));
+//        } catch (TmfNoSuchFieldException e) {
+//            fail("getFieldIndex: no such field");
+//        }
+
+//        try {
+//            assertEquals("getFieldIndex", 0, type.getFieldIndex("Dummy"));
+//            fail("getFieldIndex: inexistant field");
+//        } catch (TmfNoSuchFieldException e) {
+//            // Success
+//        }
+
+//        try {
+            assertNull(type.getFieldName(10));
+//            fail("getLabel: inexistant field");
+//        } catch (TmfNoSuchFieldException e) {
+//            // Success
+//        }
     }
 
     public void testTmfEventType2() {
@@ -135,13 +129,12 @@ public class TmfEventTypeTest extends TestCase {
     }
 
     public void testTmfEventTypeCopy() {
-        TmfEventType original = new TmfEventType(fContext, fTypeId, fLabels1);
+        TmfEventType original = new TmfEventType(fContext, fTypeId, TmfEventField.makeRoot(fLabels1));
         TmfEventType copy = new TmfEventType(original);
         String[] expected = new String[] { fLabel0, fLabel1 };
 
-        assertEquals("getTypeId", fTypeId, copy.getId());
-        assertEquals("getNbFields", fLabels1.length, copy.getNbFields());
-        String[] labels = copy.getFieldLabels();
+        assertEquals("getTypeId", fTypeId, copy.getName());
+        String[] labels = copy.getFieldNames();
         for (int i = 0; i < labels.length; i++) {
             assertEquals("getLabels", expected[i], labels[i]);
         }
@@ -203,14 +196,12 @@ public class TmfEventTypeTest extends TestCase {
 
     public void testToString() {
         String expected1 = "TmfEventType [fContext=" + TmfEventType.DEFAULT_CONTEXT_ID +
-               ", fTypeId=" + TmfEventType.DEFAULT_TYPE_ID + 
-               ", fNbFields=0, fFieldLabels=[]]";
+               ", fTypeId=" + TmfEventType.DEFAULT_TYPE_ID + "]";
         TmfEventType type1 = new TmfEventType();
         assertEquals("toString", expected1, type1.toString());
 
-        String expected2 = "TmfEventType [fContext=" + fContext + ", fTypeId=" + fTypeId + 
-               ", fNbFields=2, fFieldLabels=[label1, label2]]";
-        TmfEventType type2 = new TmfEventType(fContext, fTypeId, fLabels1);
+        String expected2 = "TmfEventType [fContext=" + fContext + ", fTypeId=" + fTypeId + "]";
+        TmfEventType type2 = new TmfEventType(fContext, fTypeId, TmfEventField.makeRoot(fLabels1));
         assertEquals("toString", expected2, type2.toString());
     }
 
index f329fb8fe2258e39a094bf4b8659bb51173492b1..73a2532311131547eeb49c239887f7aaae0b0e56 100644 (file)
@@ -13,8 +13,9 @@ package org.eclipse.linuxtools.tmf.core.tests.uml2sd;
 
 import junit.framework.TestCase;
 
+import org.eclipse.linuxtools.tmf.core.event.ITmfEventField;
 import org.eclipse.linuxtools.tmf.core.event.TmfEvent;
-import org.eclipse.linuxtools.tmf.core.event.TmfEventContent;
+import org.eclipse.linuxtools.tmf.core.event.TmfEventField;
 import org.eclipse.linuxtools.tmf.core.event.TmfEventType;
 import org.eclipse.linuxtools.tmf.core.event.TmfTimestamp;
 import org.eclipse.linuxtools.tmf.core.uml2sd.TmfAsyncSequenceDiagramEvent;
@@ -31,23 +32,21 @@ public class TmfAsyncSequenceDiagramEventTest extends TestCase {
     private final TmfTimestamp fTimestamp1 = new TmfTimestamp(12345, (byte) 2, 5);
     private final TmfTimestamp fTimestamp2 = new TmfTimestamp(12350, (byte) 2, 5);
     private final String       fSource     = "Source";
-    private final TmfEventType fType       = new TmfEventType(fContext, fTypeId, fLabels);
+    private final TmfEventType fType       = new TmfEventType(fContext, fTypeId, TmfEventField.makeRoot(fLabels));
     private final String       fReference  = "Some reference";
 
     private final TmfEvent fEvent1;
     private final TmfEvent fEvent2;
-    private final TmfEventContent fContent1;
-    private final TmfEventContent fContent2;
+    private final TmfEventField fContent1;
+    private final TmfEventField fContent2;
 
    
     public TmfAsyncSequenceDiagramEventTest() {
-        fEvent1 = new TmfEvent(fTimestamp1, fSource, fType, fReference);
-        fContent1 = new TmfEventContent(fEvent1, "Some content");
-        fEvent1.setContent(fContent1);
+        fContent1 = new TmfEventField(ITmfEventField.ROOT_ID, "Some content");
+        fEvent1 = new TmfEvent(null, fTimestamp1, fSource, fType, fContent1, fReference);
 
-        fEvent2 = new TmfEvent(fTimestamp2, fSource, fType, fReference);
-        fContent2 = new TmfEventContent(fEvent2, "Some other content");
-        fEvent2.setContent(fContent2);
+        fContent2 = new TmfEventField(ITmfEventField.ROOT_ID, "Some other content");
+        fEvent2 = new TmfEvent(null, fTimestamp2, fSource, fType, fContent2, fReference);
     }
     
     @Override 
index c314099bd8bd54e4d5cbcc2129be33b87022c145..f20f4a72666b29771fa975485cd6e4b3023c9b0c 100644 (file)
@@ -13,8 +13,9 @@ package org.eclipse.linuxtools.tmf.core.tests.uml2sd;
 
 import junit.framework.TestCase;
 
+import org.eclipse.linuxtools.tmf.core.event.ITmfEventField;
 import org.eclipse.linuxtools.tmf.core.event.TmfEvent;
-import org.eclipse.linuxtools.tmf.core.event.TmfEventContent;
+import org.eclipse.linuxtools.tmf.core.event.TmfEventField;
 import org.eclipse.linuxtools.tmf.core.event.TmfEventType;
 import org.eclipse.linuxtools.tmf.core.event.TmfTimestamp;
 import org.eclipse.linuxtools.tmf.core.uml2sd.TmfSyncSequenceDiagramEvent;
@@ -30,16 +31,15 @@ public class TmfSyncSequenceDiagramEventTest extends TestCase {
 
     private final TmfTimestamp fTimestamp1 = new TmfTimestamp(12345, (byte) 2, 5);
     private final String       fSource     = "Source";
-    private final TmfEventType fType       = new TmfEventType(fContext, fTypeId, fLabels);
+    private final TmfEventType fType       = new TmfEventType(fContext, fTypeId, TmfEventField.makeRoot(fLabels));
     private final String       fReference  = "Some reference";
 
     private final TmfEvent fEvent1;
-    private final TmfEventContent fContent1;
+    private final TmfEventField fContent1;
 
     public TmfSyncSequenceDiagramEventTest () {
-        fEvent1 = new TmfEvent(fTimestamp1, fSource, fType, fReference);
-        fContent1 = new TmfEventContent(fEvent1, "Some content");
-        fEvent1.setContent(fContent1);
+        fContent1 = new TmfEventField(ITmfEventField.ROOT_ID, "Some content");
+        fEvent1 = new TmfEvent(null, fTimestamp1, fSource, fType, fContent1, fReference);
     }
 
     @Override
index b07f5ff9b10e4a0c3564dec13969d02275254d44..b25b3ce334cbadc02bd67326a2d2ed6c2a79e1a6 100644 (file)
@@ -20,7 +20,7 @@ import java.net.URL;
 import org.eclipse.core.runtime.FileLocator;
 import org.eclipse.core.runtime.Path;
 import org.eclipse.linuxtools.tmf.core.component.TmfDataProvider;
-import org.eclipse.linuxtools.tmf.core.event.TmfDataItem;
+import org.eclipse.linuxtools.tmf.core.event.TmfEvent;
 import org.eclipse.linuxtools.tmf.core.request.ITmfDataRequest;
 import org.eclipse.linuxtools.tmf.core.request.ITmfEventRequest;
 import org.eclipse.linuxtools.tmf.core.tests.TmfCoreTestPlugin;
@@ -33,7 +33,7 @@ import org.eclipse.linuxtools.tmf.stubs.trace.TmfTraceStub;
  * TODO: Implement me. Please.
  */
 @SuppressWarnings("nls")
-public class TmfDataProviderStub extends TmfDataProvider<TmfDataItem> {
+public class TmfDataProviderStub extends TmfDataProvider<TmfEvent> {
 
     private static final String DIRECTORY   = "testfiles";
     private static final String TEST_STREAM = "M-Test-10K";
@@ -41,7 +41,7 @@ public class TmfDataProviderStub extends TmfDataProvider<TmfDataItem> {
     private TmfTraceStub fTrace;
 
     public TmfDataProviderStub(String path) throws IOException {
-       super("TmfDataProviderStub", TmfDataItem.class);
+       super("TmfDataProviderStub", TmfEvent.class);
         URL location = FileLocator.find(TmfCoreTestPlugin.getDefault().getBundle(), new Path(path), null);
                try {
                        File test = new File(FileLocator.toFileURL(location).toURI());
@@ -60,7 +60,7 @@ public class TmfDataProviderStub extends TmfDataProvider<TmfDataItem> {
     // ------------------------------------------------------------------------
 
        @Override
-       public ITmfContext armRequest(ITmfDataRequest<TmfDataItem> request) {
+       public ITmfContext armRequest(ITmfDataRequest<TmfEvent> request) {
                if (request instanceof ITmfEventRequest<?>) {
                        ITmfContext context = fTrace.seekEvent(((ITmfEventRequest<?>) request).getRange().getStartTime());
                        return context;
@@ -69,12 +69,12 @@ public class TmfDataProviderStub extends TmfDataProvider<TmfDataItem> {
        }
 
        @Override
-       public TmfDataItem getNext(ITmfContext context) {
+       public TmfEvent getNext(ITmfContext context) {
                return fTrace.getNext(context);
        }
 
        @Override
-       public boolean isCompleted(ITmfDataRequest<TmfDataItem> request, TmfDataItem data, int nbRead) {
+       public boolean isCompleted(ITmfDataRequest<TmfEvent> request, TmfEvent data, int nbRead) {
                return false;
        }
 
diff --git a/org.eclipse.linuxtools.tmf.core.tests/stubs/org/eclipse/linuxtools/tmf/stubs/event/TmfEventContentStub.java b/org.eclipse.linuxtools.tmf.core.tests/stubs/org/eclipse/linuxtools/tmf/stubs/event/TmfEventContentStub.java
deleted file mode 100644 (file)
index 06ba6ff..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Ericsson
- * 
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License v1.0 which
- * accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *   Francois Chouinard - Initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.linuxtools.tmf.stubs.event;
-
-import org.eclipse.linuxtools.tmf.core.event.TmfEvent;
-import org.eclipse.linuxtools.tmf.core.event.TmfEventContent;
-import org.eclipse.linuxtools.tmf.core.event.TmfEventField;
-import org.eclipse.linuxtools.tmf.core.event.TmfTimestamp;
-
-/**
- * <b><u>TmfEventContentStub</u></b>
- * <p>
- * TODO: Implement me. Please.
- */
-@SuppressWarnings("nls")
-public class TmfEventContentStub extends TmfEventContent {
-
-       public TmfEventContentStub(TmfEvent parent, String content) {
-               super(parent, content);
-       }
-
-       public TmfEventContentStub(TmfEventContentStub other) {
-               super(other);
-       }
-
-       @Override
-       protected void parseContent() {
-        Object value1 = new Integer(1);
-        Object value2 = new Integer(-10);
-        Object value3 = new Boolean(true);
-        Object value4 = new String("some string");
-        Object value5 = new TmfTimestamp(1, (byte) 2, 3);
-
-        TmfEventField field1 = new TmfEventField(this, "field1", value1);
-        TmfEventField field2 = new TmfEventField(this, "field2", value2);
-        TmfEventField field3 = new TmfEventField(this, "field3", value3);
-        TmfEventField field4 = new TmfEventField(this, "field4", value4);
-        TmfEventField field5 = new TmfEventField(this, "field5", value5);
-
-        fFields = new TmfEventField[] { field1, field2, field3, field4, field5 };
-       }
-       
-    @Override
-    public TmfEventContent clone() {
-       TmfEventContentStub content = new TmfEventContentStub(this);
-       content.fRawContent = "Some content";
-       content.fFields = null;
-               return content;
-    }
-
-//    @Override
-//     public String toString() {
-//     Object[] fields = getFields();
-//     StringBuilder result = new StringBuilder("[TmfEventContent(");
-//     for (int i = 0; i < fields.length; i++) {
-//             if (i > 0) result.append(",");
-//             result.append(fields[i]);
-//     }
-//     result.append(")]");
-//     return result.toString();
-//    }
-}
index 5956bdbddaf54f8d55187b497c15a1fa792e20f6..b2844d75ae81e59ff07d62cc07eecd704800fd9b 100644 (file)
@@ -1,17 +1,18 @@
 /*******************************************************************************
  * Copyright (c) 2009 Ericsson
  * 
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License v1.0 which
+ * All rights reserved. This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License v1.0 which
  * accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  * 
- * Contributors:
- *   Francois Chouinard - Initial API and implementation
+ * Contributors: Francois Chouinard - Initial API and implementation
  *******************************************************************************/
 
 package org.eclipse.linuxtools.tmf.stubs.event;
 
+import org.eclipse.linuxtools.tmf.core.event.ITmfEventField;
+import org.eclipse.linuxtools.tmf.core.event.TmfEventField;
 import org.eclipse.linuxtools.tmf.core.event.TmfEventType;
 
 /**
@@ -22,14 +23,18 @@ import org.eclipse.linuxtools.tmf.core.event.TmfEventType;
 @SuppressWarnings("nls")
 public class TmfEventTypeStub extends TmfEventType {
 
-    private static final String FIELD_1 = "Field1"; 
-    private static final String FIELD_2 = "Field2"; 
-    private static final String FIELD_3 = "Field3"; 
-    private static final String FIELD_4 = "Field4"; 
-    private static final String FIELD_5 = "Field5"; 
-    private static final String[] FIELDS = new String[] { FIELD_1, FIELD_2, FIELD_3, FIELD_4, FIELD_5 };
+    private static final ITmfEventField FIELD_1 = new TmfEventField("Field1", null);
+    private static final ITmfEventField FIELD_2 = new TmfEventField("Field2", null);
+    private static final ITmfEventField FIELD_3 = new TmfEventField("Field3", null);
+    private static final ITmfEventField FIELD_4 = new TmfEventField("Field4", null);
+    private static final ITmfEventField FIELD_5 = new TmfEventField("Field5", null);
 
-   public TmfEventTypeStub() {
-       super("UnitTest", "TmfEventTypeStub", FIELDS);
+    private static final ITmfEventField[] FIELDS = new ITmfEventField[] {
+        FIELD_1, FIELD_2, FIELD_3, FIELD_4, FIELD_5 };
+
+    private static ITmfEventField ROOT = new TmfEventField(ITmfEventField.ROOT_ID, FIELDS);
+
+    public TmfEventTypeStub() {
+        super("UnitTest", "TmfEventTypeStub", ROOT);
     }
 }
index 0a21917a10e3636c8b8ba785dc9aa30568b98688..4ef8e8986a782bd3acedc497b55d1365c86df16b 100644 (file)
@@ -12,7 +12,7 @@
 
 package org.eclipse.linuxtools.tmf.stubs.request;
 
-import org.eclipse.linuxtools.tmf.core.event.TmfDataItem;
+import org.eclipse.linuxtools.tmf.core.event.TmfEvent;
 import org.eclipse.linuxtools.tmf.core.request.TmfDataRequest;
 
 /**
@@ -20,7 +20,7 @@ import org.eclipse.linuxtools.tmf.core.request.TmfDataRequest;
  * <p>
  * TODO: Implement me. Please.
  */
-public class TmfDataRequestStub<T extends TmfDataItem> extends TmfDataRequest<T> {
+public class TmfDataRequestStub<T extends TmfEvent> extends TmfDataRequest<T> {
 
     /**
      * Default constructor
index d5c87f5e1ada6e85bf75bbc883b543125558627a..d78bf8408bafa7d7b172478a8beb0700c5c102e4 100644 (file)
@@ -17,8 +17,9 @@ import java.io.IOException;
 import java.io.RandomAccessFile;
 import java.util.Vector;
 
+import org.eclipse.linuxtools.tmf.core.event.ITmfEventField;
 import org.eclipse.linuxtools.tmf.core.event.TmfEvent;
-import org.eclipse.linuxtools.tmf.core.event.TmfEventContent;
+import org.eclipse.linuxtools.tmf.core.event.TmfEventField;
 import org.eclipse.linuxtools.tmf.core.event.TmfEventType;
 import org.eclipse.linuxtools.tmf.core.event.TmfTimestamp;
 import org.eclipse.linuxtools.tmf.core.parser.ITmfEventParser;
@@ -54,7 +55,8 @@ public class TmfEventParserStub implements ITmfEventParser {
                    fields.add(field);
                }
                String[] fieldArray = new String[i];
-               fTypes[i] = new TmfEventType("UnitTest", "Type-" + i, fields.toArray(fieldArray));
+               ITmfEventField rootField = TmfEventField.makeRoot(fields.toArray(fieldArray));
+               fTypes[i] = new TmfEventType("UnitTest", "Type-" + i, rootField);
        }
     }
 
@@ -104,11 +106,11 @@ public class TmfEventParserStub implements ITmfEventParser {
                    }
                    content += "]";
 
-                   TmfEvent event = new TmfEvent(
+            TmfEventField root = new TmfEventField(ITmfEventField.ROOT_ID, content);
+                   TmfEvent event = new TmfEvent(eventStream,
                            new TmfTimestamp(ts, (byte) -3, 0),     // millisecs
-                           source, fTypes[typeIndex], name);
-                   TmfEventContent cnt = new TmfEventContent(event, content);
-                   event.setContent(cnt);
+                           source, fTypes[typeIndex], root, name);
+                   event.setContent(root);
                    return event;
                } catch (EOFException e) {
                }
index 5ab71130915f179d72a71845ef35106cfdecc76c..b2f02fa90c3bf4112de14739b525fbd673e33c46 100644 (file)
@@ -7,7 +7,7 @@ import java.io.IOException;
 import org.eclipse.core.runtime.Platform;\r
 import org.eclipse.linuxtools.tmf.core.component.ITmfComponent;\r
 import org.eclipse.linuxtools.tmf.core.component.ITmfDataProvider;\r
-import org.eclipse.linuxtools.tmf.core.event.TmfDataItem;\r
+import org.eclipse.linuxtools.tmf.core.event.TmfEvent;\r
 import org.eclipse.linuxtools.tmf.core.request.ITmfDataRequest;\r
 import org.eclipse.linuxtools.tmf.core.request.ITmfEventRequest;\r
 import org.eclipse.linuxtools.tmf.core.signal.TmfSignal;\r
@@ -171,7 +171,7 @@ public class Tracer {
         trace(message);\r
     }\r
 \r
-    public static void traceEvent(ITmfDataProvider<?> provider, ITmfDataRequest<?> request, TmfDataItem data) {\r
+    public static void traceEvent(ITmfDataProvider<?> provider, ITmfDataRequest<?> request, TmfEvent data) {\r
         String message = ("[EVT] Provider=" + provider.toString() + ", Req=" + request.getRequestId() + ", Event=" + data\r
                 .toString());\r
         trace(message);\r
index b0d2cf11151ab5568b181d36f26e0d1b6518e5d7..68b1780491e420f9a6d294cff56d541b34e56f1f 100644 (file)
@@ -12,7 +12,7 @@
 
 package org.eclipse.linuxtools.tmf.core.component;
 
-import org.eclipse.linuxtools.tmf.core.event.TmfDataItem;
+import org.eclipse.linuxtools.tmf.core.event.TmfEvent;
 import org.eclipse.linuxtools.tmf.core.request.ITmfDataRequest;
 
 /**
@@ -20,7 +20,7 @@ import org.eclipse.linuxtools.tmf.core.request.ITmfDataRequest;
  * <p>
  * TODO: Implement me. Please.
  */
-public interface ITmfDataProvider<T extends TmfDataItem> {
+public interface ITmfDataProvider<T extends TmfEvent> {
 
     /**
      * Queues the request for processing.
index 37de48768f3fd4ff71eedbf8121678051a8c1d23..d76f32886b2e43a692be1765cb2b54a3b4bc570b 100644 (file)
@@ -18,12 +18,12 @@ import java.util.concurrent.LinkedBlockingQueue;
 import java.util.concurrent.SynchronousQueue;
 
 import org.eclipse.linuxtools.tmf.core.Tracer;
-import org.eclipse.linuxtools.tmf.core.event.TmfDataItem;
+import org.eclipse.linuxtools.tmf.core.event.TmfEvent;
 import org.eclipse.linuxtools.tmf.core.request.ITmfDataRequest;
+import org.eclipse.linuxtools.tmf.core.request.ITmfDataRequest.ExecutionType;
 import org.eclipse.linuxtools.tmf.core.request.TmfCoalescedDataRequest;
 import org.eclipse.linuxtools.tmf.core.request.TmfDataRequest;
 import org.eclipse.linuxtools.tmf.core.request.TmfRequestExecutor;
-import org.eclipse.linuxtools.tmf.core.request.ITmfDataRequest.ExecutionType;
 import org.eclipse.linuxtools.tmf.core.signal.TmfEndSynchSignal;
 import org.eclipse.linuxtools.tmf.core.signal.TmfSignalHandler;
 import org.eclipse.linuxtools.tmf.core.signal.TmfStartSynchSignal;
@@ -42,7 +42,7 @@ import org.eclipse.linuxtools.tmf.core.trace.ITmfContext;
  * <p>
  * TODO: Add support for providing multiple data types.
  */
-public abstract class TmfDataProvider<T extends TmfDataItem> extends TmfComponent implements ITmfDataProvider<T> {
+public abstract class TmfDataProvider<T extends TmfEvent> extends TmfComponent implements ITmfDataProvider<T> {
 
     // ------------------------------------------------------------------------
     // Constants
index be5da1369e925deb2aad887a3ff5b66c2faf76ac..cc7c3cbe4596bab8f809caa6e0f9f75178023970 100644 (file)
@@ -17,7 +17,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-import org.eclipse.linuxtools.tmf.core.event.TmfDataItem;
+import org.eclipse.linuxtools.tmf.core.event.TmfEvent;
 
 /**
  * <b><u>TmfProviderManager.java</u></b>
@@ -36,8 +36,8 @@ public class TmfProviderManager {
        // Keeps track of the providers for each event type
        // ------------------------------------------------------------------------
        
-       private static Map<Class<? extends TmfDataItem>, List<TmfDataProvider<? extends TmfDataItem>>> fProviders =
-                  new HashMap<Class<? extends TmfDataItem>, List<TmfDataProvider<? extends TmfDataItem>>>();
+       private static Map<Class<? extends TmfEvent>, List<TmfDataProvider<? extends TmfEvent>>> fProviders =
+                  new HashMap<Class<? extends TmfEvent>, List<TmfDataProvider<? extends TmfEvent>>>();
 
        /**
         * Registers [provider] as a provider of [eventType]
@@ -45,9 +45,9 @@ public class TmfProviderManager {
         * @param eventType
         * @param provider
         */
-       public static <T extends TmfDataItem> void register(Class<T> eventType, TmfDataProvider<? extends TmfDataItem> provider) {
+       public static <T extends TmfEvent> void register(Class<T> eventType, TmfDataProvider<? extends TmfEvent> provider) {
                if (fProviders.get(eventType) == null)
-                       fProviders.put(eventType, new ArrayList<TmfDataProvider<? extends TmfDataItem>>());
+                       fProviders.put(eventType, new ArrayList<TmfDataProvider<? extends TmfEvent>>());
                fProviders.get(eventType).add(provider);
        }
 
@@ -57,8 +57,8 @@ public class TmfProviderManager {
         * @param dataClass
         * @param provider
         */
-       public static <T extends TmfDataItem> void deregister(Class<T> dataClass, TmfDataProvider<? extends TmfDataItem> provider) {
-               List<TmfDataProvider<? extends TmfDataItem>> list = fProviders.get(dataClass);
+       public static <T extends TmfEvent> void deregister(Class<T> dataClass, TmfDataProvider<? extends TmfEvent> provider) {
+               List<TmfDataProvider<? extends TmfEvent>> list = fProviders.get(dataClass);
                if (list != null) {
                        list.remove(provider);
                        if (list.size() == 0)
@@ -73,11 +73,11 @@ public class TmfProviderManager {
         * @return
         */
        @SuppressWarnings("unchecked")
-       public static TmfDataProvider<? extends TmfDataItem>[] getProviders(Class<? extends TmfDataItem> dataClass) {
-               List<TmfDataProvider<? extends TmfDataItem>> list = fProviders.get(dataClass);
+       public static TmfDataProvider<? extends TmfEvent>[] getProviders(Class<? extends TmfEvent> dataClass) {
+               List<TmfDataProvider<? extends TmfEvent>> list = fProviders.get(dataClass);
                if (list == null)
-                       list = new ArrayList<TmfDataProvider<? extends TmfDataItem>>(); 
-               TmfDataProvider<? extends TmfDataItem>[] result = new TmfDataProvider[list.size()];
+                       list = new ArrayList<TmfDataProvider<? extends TmfEvent>>(); 
+               TmfDataProvider<? extends TmfEvent>[] result = new TmfDataProvider[list.size()];
                return list.toArray(result);
        }
 
@@ -89,20 +89,20 @@ public class TmfProviderManager {
         * @return
         */
        @SuppressWarnings("unchecked")
-       public static TmfDataProvider<? extends TmfDataItem>[] getProviders(Class<? extends TmfDataItem> dataClass, Class<? extends TmfDataProvider<? extends TmfDataItem>> providerClass) {
+       public static TmfDataProvider<? extends TmfEvent>[] getProviders(Class<? extends TmfEvent> dataClass, Class<? extends TmfDataProvider<? extends TmfEvent>> providerClass) {
                if (providerClass == null) {
                        return getProviders(dataClass);
                }
-               TmfDataProvider<? extends TmfDataItem>[] list = getProviders(dataClass);
-               List<TmfDataProvider<? extends TmfDataItem>> result = new ArrayList<TmfDataProvider<? extends TmfDataItem>>();
+               TmfDataProvider<? extends TmfEvent>[] list = getProviders(dataClass);
+               List<TmfDataProvider<? extends TmfEvent>> result = new ArrayList<TmfDataProvider<? extends TmfEvent>>();
                if (list != null) {
-                       for (TmfDataProvider<? extends TmfDataItem> provider : list) {
+                       for (TmfDataProvider<? extends TmfEvent> provider : list) {
                                if (provider.getClass() == providerClass) {
                                        result.add(provider);
                                }
                        }
                }
-               TmfDataProvider<? extends TmfDataItem>[] array = new TmfDataProvider[result.size()];
+               TmfDataProvider<? extends TmfEvent>[] array = new TmfDataProvider[result.size()];
                return result.toArray(array);
        }
 
diff --git a/org.eclipse.linuxtools.tmf.core/src/org/eclipse/linuxtools/tmf/core/event/ITmfDataItem.java b/org.eclipse.linuxtools.tmf.core/src/org/eclipse/linuxtools/tmf/core/event/ITmfDataItem.java
deleted file mode 100644 (file)
index f6d3427..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2012 Ericsson
- * 
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License v1.0 which
- * accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *   Francois Chouinard - Initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.linuxtools.tmf.core.event;
-
-import org.eclipse.linuxtools.tmf.core.trace.ITmfTrace;
-
-/**
- * <b><u>ITmfDataItem</u></b>
- * <p>
- * The basic event structure in the TMF. In its canonical form, a data item has:
- * <ul>
- * <li> a parent trace
- * <li> a rank (order within the trace)
- * <li> a source (reporting component)
- * <li> a type
- * <li> a content
- * </ul>
- * For convenience, a free-form reference field is also provided. It could be
- * used as e.g. a location marker (filename:lineno) to indicate where the event
- * was generated.
- */
-public interface ITmfDataItem extends Cloneable {
-
-    /**
-     * @return the trace that 'owns' the event
-     */
-    public ITmfTrace<?> getTrace();
-
-    /**
-     * @return the event rank within the parent trace
-     */
-    public long getRank();
-
-    /**
-     * @return the event source
-     */
-    public String getSource();
-
-    /**
-     * @return the event type
-     */
-    public ITmfEventType getType();
-
-    /**
-     * @return the event content
-     */
-    public ITmfEventContent getContent();
-
-    /**
-     * @return the event reference
-     */
-    public String getReference();
-
-    /**
-     * @return a clone of the data item
-     */
-    public ITmfDataItem clone();
-    
-}
index 421682f5d48e63453ba886801021a35f61a8c65f..1cba08aef56fb216e5dbfa34d2082fe3c01999c4 100644 (file)
 
 package org.eclipse.linuxtools.tmf.core.event;
 
+import org.eclipse.linuxtools.tmf.core.trace.ITmfTrace;
+
 /**
  * <b><u>ITmfEvent</u></b>
  * <p>
- * The ITmfEvent is essentially an ITmfDataEvent with a timestamp.
-*/
-public interface ITmfEvent extends ITmfDataItem, Cloneable {
+ * The basic event structure in the TMF. In its canonical form, a data item has:
+ * <ul>
+ * <li> a parent trace
+ * <li> a rank (order within the trace)
+ * <li> a timestamp
+ * <li> a source (reporting component)
+ * <li> a type
+ * <li> a content (payload)
+ * </ul>
+ * For convenience, a free-form reference field is also provided. It could be
+ * used as e.g. a location marker (filename:lineno) to indicate where the event
+ * was generated.
+ */
+public interface ITmfEvent extends Cloneable {
+
+    /**
+     * Pre-defined event attributes 
+     */
+    public String EVENT_FIELD_TIMESTAMP = ":timestamp:"; //$NON-NLS-1$
+    public String EVENT_FIELD_SOURCE    = ":source:";    //$NON-NLS-1$
+    public String EVENT_FIELD_TYPE      = ":type:";      //$NON-NLS-1$
+    public String EVENT_FIELD_CONTENT   = ":content:";   //$NON-NLS-1$
+    public String EVENT_FIELD_REFERENCE = ":reference:"; //$NON-NLS-1$
+
+    /**
+     * @return the trace that 'owns' the event
+     */
+    public ITmfTrace<?> getTrace();
+
+    /**
+     * @return the event rank within the parent trace
+     */
+    public long getRank();
 
     /**
      * @return the event timestamp
      */
     public ITmfTimestamp getTimestamp();
 
+    /**
+     * @return the event source
+     */
+    public String getSource();
+
+    /**
+     * @return the event type
+     */
+    public ITmfEventType getType();
+
+    /**
+     * @return the event content
+     */
+    public ITmfEventField getContent();
+
+    /**
+     * @return the event reference
+     */
+    public String getReference();
+
+    /**
+     * @return a clone of the data item
+     */
+    public ITmfEvent clone();
+    
 }
diff --git a/org.eclipse.linuxtools.tmf.core/src/org/eclipse/linuxtools/tmf/core/event/ITmfEventContent.java b/org.eclipse.linuxtools.tmf.core/src/org/eclipse/linuxtools/tmf/core/event/ITmfEventContent.java
deleted file mode 100644 (file)
index f552b07..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2012 Ericsson
- * 
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License v1.0 which
- * accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *   Francois Chouinard - Initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.linuxtools.tmf.core.event;
-
-/**
- * <b><u>ITmfEventContent</u></b>
- * <p>
- */
-public interface ITmfEventContent extends Cloneable {
-
-    /**
-     * @return the raw event content
-     */
-    public Object getRawContent();
-
-    /**
-     * @return the formatted event content (string'ified)
-     */
-    public String getFmtContent();
-
-    /**
-     * @return the event type
-     */
-    public ITmfEventType getType();
-
-    /**
-     * @return the list of event fields
-     */
-    public ITmfEventField[] getFields();
-
-    /**
-     * @param index the field index
-     * @return the corresponding field
-     */
-    public ITmfEventField getField(int index) throws TmfNoSuchFieldException;
-
-    /**
-     * @param name the field name
-     * @return the corresponding field
-     */
-    public ITmfEventField getField(String name) throws TmfNoSuchFieldException;
-
-    /**
-     * @return a clone of the event content
-     */
-    public ITmfEventContent clone();
-}
index d27c6e51e48d113782934945a4025b16690b52d8..8b421a2b19595a06307f0447d788a6c7029e9764 100644 (file)
@@ -15,13 +15,20 @@ package org.eclipse.linuxtools.tmf.core.event;
 /**
  * <b><u>ITmfEventField</u></b>
  * <p>
+ * The TMF event payload structure. Each field can be either a terminal or
+ * further decomposed into subfields.
  */
 public interface ITmfEventField extends Cloneable {
 
+    /**
+     * The root field id (the main container)
+     */
+    public static final String ROOT_ID = ":root:"; //$NON-NLS-1$
+    
     /**
      * @return the field ID
      */
-    public String getId();
+    public String getName();
 
     /**
      * @return the field value
@@ -29,9 +36,29 @@ public interface ITmfEventField extends Cloneable {
     public Object getValue();
 
     /**
-     * @return the list of subfields (if any)
+     * @return the list of subfield names (empty array if none)
+     */
+    public String[] getFieldNames();
+
+    /**
+     * @return the nth field name (null if absent or inexistent)
+     */
+    public String getFieldName(int index);
+
+    /**
+     * @return the list of subfields (empty array  if none)
+     */
+    public ITmfEventField[] getFields();
+
+    /**
+     * @return a specific subfield by name (null if absent or inexistent)
+     */
+    public ITmfEventField getField(String name);
+
+    /**
+     * @return a specific subfield by index (null if absent or inexistent)
      */
-    public ITmfEventField[] getSubFields();
+    public ITmfEventField getField(int index);
 
     /**
      * @return a clone of the event type
index 2a648b57beaa932cd149f6a9726e24ed1fb1c148..8005c346a42aa1183e60660722371e2ac29efd8c 100644 (file)
@@ -15,9 +15,23 @@ package org.eclipse.linuxtools.tmf.core.event;
 /**
  * <b><u>ITmfEventType</u></b>
  * <p>
+ * The TMF event event type. It contains a reference to the full field structure
+ * for that event type.
+ * <p>
+ * Types are unique within their context space.
  */
 public interface ITmfEventType extends Cloneable {
 
+    /**
+     * The default event type content 
+     */
+    public static final String DEFAULT_CONTEXT_ID = "TmfContext"; //$NON-NLS-1$
+
+    /**
+     * The default event type name 
+     */
+    public static final String DEFAULT_TYPE_ID = "TmfType"; //$NON-NLS-1$
+    
     /**
      * @return the event type context
      */
@@ -26,29 +40,23 @@ public interface ITmfEventType extends Cloneable {
     /**
      * @return the event type ID
      */
-    public String getId();
+    public String getName();
 
     /**
-     * @return the number of fields
+     * @return the event type root field
      */
-    public int getNbFields();
+    public ITmfEventField getRootField();
 
     /**
-     * @return the event field labels
+     * @return the event field names (labels)
      */
-    public String[] getFieldLabels();
+    public String[] getFieldNames();
 
     /**
      * @param index the event field index
      * @return the corresponding event field label
      */
-    public String getFieldLabel(int index) throws TmfNoSuchFieldException;
-
-    /**
-     * @param fieldId the event field ID
-     * @return the corresponding event field index
-     */
-    public int getFieldIndex(String fieldId) throws TmfNoSuchFieldException;
+    public String getFieldName(int index);
 
     /**
      * @return a clone of the event content
diff --git a/org.eclipse.linuxtools.tmf.core/src/org/eclipse/linuxtools/tmf/core/event/TmfDataItem.java b/org.eclipse.linuxtools.tmf.core/src/org/eclipse/linuxtools/tmf/core/event/TmfDataItem.java
deleted file mode 100644 (file)
index 681d557..0000000
+++ /dev/null
@@ -1,249 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2012 Ericsson
- * 
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License v1.0 which
- * accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *   Francois Chouinard - Initial API and implementation
- *   Francois Chouinard - Updated as per TMF Event Model 1.0
- *******************************************************************************/
-
-package org.eclipse.linuxtools.tmf.core.event;
-
-import org.eclipse.linuxtools.tmf.core.trace.ITmfTrace;
-
-/**
- * <b><u>TmfDataItem</u></b>
- * <p>
- * A basic implementation of ITmfDataItem.
- * 
- * Notice that for performance reasons TmfDataEvent is NOT immutable. If a copy
- * of an event is needed, use the copy constructor (shallow copy) or the clone()
- * method (deep copy).
- */
-public class TmfDataItem implements ITmfDataItem {
-
-    // ------------------------------------------------------------------------
-    // Attributes
-    // ------------------------------------------------------------------------
-
-    protected ITmfTrace<? extends TmfDataItem> fTrace;
-    protected long fRank;
-    protected String fSource;
-    protected ITmfEventType fType;
-    protected ITmfEventContent fContent;
-    protected String fReference;
-
-    // ------------------------------------------------------------------------
-    // Constructors
-    // ------------------------------------------------------------------------
-
-    /**
-     * Default constructor
-     */
-    public TmfDataItem() {
-    }
-
-    /**
-     * Full constructor
-     * 
-     * @param trace the parent trace
-     * @param rank the vent rank (in the trace)
-     * @param source the event source
-     * @param type the event type
-     * @param reference the event reference
-     */
-    public TmfDataItem(ITmfTrace<? extends TmfDataItem> trace, long rank,
-            String source, TmfEventType type, TmfEventContent content,
-            String reference)
-    {
-        fTrace = trace;
-        fRank = rank;
-        fSource = source;
-        fType = type;
-        fContent = content;
-        fReference = reference;
-    }
-
-    /**
-     * Copy constructor
-     * 
-     * @param event the original event
-     */
-    public TmfDataItem(TmfDataItem event) {
-        if (event == null)
-            throw new IllegalArgumentException();
-        fTrace = event.fTrace;
-        fRank = event.fRank;
-        fSource = event.fSource;
-        fType = event.fType;
-        fContent = event.fContent;
-        fReference = event.fReference;
-    }
-
-    // ------------------------------------------------------------------------
-    // ITmfDataItem
-    // ------------------------------------------------------------------------
-
-    /**
-     * @return the parent trace
-     */
-    public ITmfTrace<? extends TmfDataItem> getTrace() {
-        return fTrace;
-    }
-
-    /**
-     * @return the event rank
-     */
-    public long getRank() {
-        return fRank;
-    }
-
-    /**
-     * @return the event source
-     */
-    public String getSource() {
-        return fSource;
-    }
-
-    /**
-     * @return the event type
-     */
-    public ITmfEventType getType() {
-        return fType;
-    }
-
-    /**
-     * @return the event content
-     */
-    public ITmfEventContent getContent() {
-        return fContent;
-    }
-
-    /**
-     * @return the event reference
-     */
-    public String getReference() {
-        return fReference;
-    }
-
-    // ------------------------------------------------------------------------
-    // Convenience setters
-    // ------------------------------------------------------------------------
-
-    /**
-     * @param source the new event source
-     */
-    public void setSource(String source) {
-        fSource = source;
-    }
-
-    /**
-     * @param type the new event type
-     */
-    public void setType(TmfEventType type) {
-        fType = type;
-    }
-
-    /**
-     * @param content the event new content
-     */
-    public void setContent(TmfEventContent content) {
-        fContent = content;
-    }
-
-    /**
-     * @param reference the new event reference
-     */
-    public void setReference(String reference) {
-        fReference = reference;
-    }
-
-    // ------------------------------------------------------------------------
-    // Cloneable
-    // ------------------------------------------------------------------------
-
-    @Override
-    public TmfDataItem clone() {
-        TmfDataItem clone = null;
-        try {
-            clone = (TmfDataItem) super.clone();
-            clone.fTrace = fTrace;
-            clone.fRank = fRank;
-            clone.fSource = fSource;
-            clone.fType = fType != null ? fType.clone() : null;
-            clone.fContent = fContent != null ? fContent.clone() : null;
-            clone.fReference = fReference;
-        } catch (CloneNotSupportedException e) {
-        }
-        return clone;
-    }
-
-    // ------------------------------------------------------------------------
-    // Object
-    // ------------------------------------------------------------------------
-
-    @Override
-    public int hashCode() {
-        final int prime = 31;
-        int result = 1;
-        result = prime * result + ((fContent == null) ? 0 : fContent.hashCode());
-        result = prime * result + (int) (fRank ^ (fRank >>> 32));
-        result = prime * result + ((fReference == null) ? 0 : fReference.hashCode());
-        result = prime * result + ((fSource == null) ? 0 : fSource.hashCode());
-        result = prime * result + ((fTrace == null) ? 0 : fTrace.hashCode());
-        result = prime * result + ((fType == null) ? 0 : fType.hashCode());
-        return result;
-    }
-
-    @Override
-    public boolean equals(Object obj) {
-        if (this == obj)
-            return true;
-        if (obj == null)
-            return false;
-        if (getClass() != obj.getClass())
-            return false;
-        TmfDataItem other = (TmfDataItem) obj;
-        if (fContent == null) {
-            if (other.fContent != null)
-                return false;
-        } else if (!fContent.equals(other.fContent))
-            return false;
-        if (fRank != other.fRank)
-            return false;
-        if (fReference == null) {
-            if (other.fReference != null)
-                return false;
-        } else if (!fReference.equals(other.fReference))
-            return false;
-        if (fSource == null) {
-            if (other.fSource != null)
-                return false;
-        } else if (!fSource.equals(other.fSource))
-            return false;
-        if (fTrace == null) {
-            if (other.fTrace != null)
-                return false;
-        } else if (!fTrace.equals(other.fTrace))
-            return false;
-        if (fType == null) {
-            if (other.fType != null)
-                return false;
-        } else if (!fType.equals(other.fType))
-            return false;
-        return true;
-    }
-
-    @Override
-    @SuppressWarnings("nls")
-    public String toString() {
-        return "TmfDataEvent [fTrace=" + fTrace + ", fRank=" + fRank
-                + ", fSource=" + fSource + ", fType=" + fType + ", fContent="
-                + fContent + ", fReference=" + fReference + "]";
-    }
-
-}
index 2c0c471469e04db3b718abb222c99f88a9078f4c..f78fe03165995987df29feba28e079bd9abc189c 100644 (file)
@@ -18,27 +18,24 @@ import org.eclipse.linuxtools.tmf.core.trace.ITmfTrace;
 /**
  * <b><u>TmfEvent</u></b>
  * <p>
- * The basic event structure in the TMF. In its canonical form, an event has:
- * <ul>
- * <li>a normalized timestamp
- * <li>a source (reporter)
- * <li>a type
- * <li>a content
- * </ul>
- * For convenience, a free-form reference field is also provided. It could be
- * used as e.g. a location marker in the event stream to distinguish between
- * otherwise identical events.
+ * A basic implementation of ITmfEvent.
  * 
- * Notice that for performance reasons TmfEvent is NOT immutable. If a copy of
+ * Note that for performance reasons TmfEvent is NOT immutable. If a copy of
  * the event is needed, use the copy constructor.
  */
-public class TmfEvent extends TmfDataItem implements ITmfEvent {
+public class TmfEvent implements ITmfEvent {
 
     // ------------------------------------------------------------------------
     // Attributes
     // ------------------------------------------------------------------------
 
+    protected ITmfTrace<? extends TmfEvent> fTrace;
+    protected long fRank;
     protected ITmfTimestamp fTimestamp;
+    protected String fSource;
+    protected ITmfEventType fType;
+    protected ITmfEventField fContent;
+    protected String fReference;
 
     // ------------------------------------------------------------------------
     // Constructors
@@ -54,33 +51,49 @@ public class TmfEvent extends TmfDataItem implements ITmfEvent {
      * Full constructor
      * 
      * @param trace the parent trace
-     * @param rank the vent rank (in the trace)
+     * @param rank the event rank (in the trace)
      * @param timestamp the event timestamp
      * @param source the event source
      * @param type the event type
+     * @param type the event content (payload)
      * @param reference the event reference
      */
-    public TmfEvent(ITmfTrace<?> trace, long rank, ITmfTimestamp timestamp, String source,
-                    TmfEventType type, String reference)
+    public TmfEvent(ITmfTrace<? extends TmfEvent> trace, long rank, ITmfTimestamp timestamp, String source,
+                    TmfEventType type, ITmfEventField content, String reference)
     {
-        super(trace, rank, source, type, null, reference);
+        fTrace = trace;
+        fRank = rank;
         fTimestamp = timestamp;
+        fSource = source;
+        fType = type;
+        fContent = content;
+        fReference = reference;
     }
 
     /**
      * Constructor - no rank
      */
-    public TmfEvent(ITmfTrace<?> parentTrace, ITmfTimestamp timestamp, String source,
-                    TmfEventType type, String reference)
+    public TmfEvent(ITmfTrace<? extends TmfEvent> trace, ITmfTimestamp timestamp, String source,
+            TmfEventType type, ITmfEventField content, String reference)
     {
-        this(parentTrace, -1, timestamp, source, type, reference);
+        this(trace, -1, timestamp, source, type, content, reference);
     }
 
     /**
-     * Constructor - no trace, no rank
+     * Constructor - no rank, no content
      */
-    public TmfEvent(ITmfTimestamp timestamp, String source, TmfEventType type, String reference) {
-        this(null, -1, timestamp, source, type, reference);
+    public TmfEvent(ITmfTrace<? extends TmfEvent> trace, ITmfTimestamp timestamp, String source,
+            TmfEventType type, String reference)
+    {
+        this(trace, -1, timestamp, source, type, null, reference);
+    }
+
+    /**
+     * Constructor - no rank, no content, no trace
+     */
+    public TmfEvent(TmfTimestamp timestamp, String source, TmfEventType type, String reference)
+    {
+        this(null, -1, timestamp, source, type, null, reference);
     }
 
     /**
@@ -89,21 +102,88 @@ public class TmfEvent extends TmfDataItem implements ITmfEvent {
      * @param event the original event
      */
     public TmfEvent(TmfEvent event) {
-        super(event);
-        fTimestamp = event.fTimestamp != null ? event.fTimestamp.clone() : null;
+        if (event == null)
+            throw new IllegalArgumentException();
+        fTrace = event.fTrace;
+        fRank = event.fRank;
+        fTimestamp = event.fTimestamp;
+        fSource = event.fSource;
+        fType = event.fType;
+        fContent = event.fContent;
+        fReference = event.fReference;
     }
 
     // ------------------------------------------------------------------------
     // ITmfEvent
     // ------------------------------------------------------------------------
 
-    /**
-     * @return the effective event timestamp
-     */
+    public ITmfTrace<? extends TmfEvent> getTrace() {
+        return fTrace;
+    }
+
+    public long getRank() {
+        return fRank;
+    }
+
     public ITmfTimestamp getTimestamp() {
         return fTimestamp;
     }
 
+    public String getSource() {
+        return fSource;
+    }
+
+    public ITmfEventType getType() {
+        return fType;
+    }
+
+    public ITmfEventField getContent() {
+        return fContent;
+    }
+
+    public String getReference() {
+        return fReference;
+    }
+
+    // ------------------------------------------------------------------------
+    // Convenience setters
+    // ------------------------------------------------------------------------
+
+    /**
+     * @param source the new event source
+     */
+    public void setSource(String source) {
+        fSource = source;
+    }
+
+    /**
+     * @param timestamp the new event timestamp
+     */
+    public void setTimestamp(ITmfTimestamp timestamp) {
+        fTimestamp = timestamp;
+    }
+
+    /**
+     * @param type the new event type
+     */
+    public void setType(TmfEventType type) {
+        fType = type;
+    }
+
+    /**
+     * @param content the event new content
+     */
+    public void setContent(ITmfEventField content) {
+        fContent = content;
+    }
+
+    /**
+     * @param reference the new event reference
+     */
+    public void setReference(String reference) {
+        fReference = reference;
+    }
+
     // ------------------------------------------------------------------------
     // Cloneable
     // ------------------------------------------------------------------------
@@ -111,8 +191,17 @@ public class TmfEvent extends TmfDataItem implements ITmfEvent {
     @Override
     public TmfEvent clone() {
         TmfEvent clone = null;
-        clone = (TmfEvent) super.clone();
-        clone.fTimestamp = fTimestamp != null ? fTimestamp.clone() : null;
+        try {
+            clone = (TmfEvent) super.clone();
+            clone.fTrace = fTrace;
+            clone.fRank = fRank;
+            clone.fTimestamp = fTimestamp != null ? fTimestamp.clone() : null;
+            clone.fSource = fSource;
+            clone.fType = fType != null ? fType.clone() : null;
+            clone.fContent = fContent != null ? fContent.clone() : null;
+            clone.fReference = fReference;
+        } catch (CloneNotSupportedException e) {
+        }
         return clone;
     }
 
@@ -123,8 +212,14 @@ public class TmfEvent extends TmfDataItem implements ITmfEvent {
     @Override
     public int hashCode() {
         final int prime = 31;
-        int result = super.hashCode();
+        int result = 1;
+        result = prime * result + ((fTrace == null) ? 0 : fTrace.hashCode());
+        result = prime * result + (int) (fRank ^ (fRank >>> 32));
         result = prime * result + ((fTimestamp == null) ? 0 : fTimestamp.hashCode());
+        result = prime * result + ((fSource == null) ? 0 : fSource.hashCode());
+        result = prime * result + ((fType == null) ? 0 : fType.hashCode());
+        result = prime * result + ((fContent == null) ? 0 : fContent.hashCode());
+        result = prime * result + ((fReference == null) ? 0 : fReference.hashCode());
         return result;
     }
 
@@ -132,16 +227,43 @@ public class TmfEvent extends TmfDataItem implements ITmfEvent {
     public boolean equals(Object obj) {
         if (this == obj)
             return true;
-        if (!super.equals(obj))
+        if (obj == null)
             return false;
         if (getClass() != obj.getClass())
             return false;
         TmfEvent other = (TmfEvent) obj;
+        if (fTrace == null) {
+            if (other.fTrace != null)
+                return false;
+        } else if (!fTrace.equals(other.fTrace))
+            return false;
+        if (fRank != other.fRank)
+            return false;
         if (fTimestamp == null) {
             if (other.fTimestamp != null)
                 return false;
         } else if (!fTimestamp.equals(other.fTimestamp))
             return false;
+        if (fSource == null) {
+            if (other.fSource != null)
+                return false;
+        } else if (!fSource.equals(other.fSource))
+            return false;
+        if (fType == null) {
+            if (other.fType != null)
+                return false;
+        } else if (!fType.equals(other.fType))
+            return false;
+        if (fContent == null) {
+            if (other.fContent != null)
+                return false;
+        } else if (!fContent.equals(other.fContent))
+            return false;
+        if (fReference == null) {
+            if (other.fReference != null)
+                return false;
+        } else if (!fReference.equals(other.fReference))
+            return false;
         return true;
     }
 
diff --git a/org.eclipse.linuxtools.tmf.core/src/org/eclipse/linuxtools/tmf/core/event/TmfEventContent.java b/org.eclipse.linuxtools.tmf.core/src/org/eclipse/linuxtools/tmf/core/event/TmfEventContent.java
deleted file mode 100644 (file)
index c2259be..0000000
+++ /dev/null
@@ -1,238 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2012 Ericsson
- * 
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License v1.0 which
- * accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *   Francois Chouinard - Initial API and implementation
- *   Francois Chouinard - Updated as per TMF Event Model 1.0
- *******************************************************************************/
-
-package org.eclipse.linuxtools.tmf.core.event;
-
-import java.util.Arrays;
-
-/**
- * <b><u>TmfEventContent</u></b>
- * <p>
- * A basic implementation of ITmfEventContent where the raw content is a String.
- */
-public class TmfEventContent implements ITmfEventContent {
-
-    // ------------------------------------------------------------------------
-    // Constants
-    // ------------------------------------------------------------------------
-
-       // Default field IDs
-       public static final String FIELD_ID_TIMESTAMP = ":timestamp:"; //$NON-NLS-1$
-       public static final String FIELD_ID_SOURCE    = ":source:";    //$NON-NLS-1$
-       public static final String FIELD_ID_TYPE      = ":type:";      //$NON-NLS-1$
-       public static final String FIELD_ID_REFERENCE = ":reference:"; //$NON-NLS-1$
-       public static final String FIELD_ID_CONTENT   = ":content:";   //$NON-NLS-1$
-       
-    // ------------------------------------------------------------------------
-    // Attributes
-    // ------------------------------------------------------------------------
-
-       protected TmfEvent fParentEvent;
-       protected String fRawContent;
-       protected TmfEventField[] fFields;
-
-    // ------------------------------------------------------------------------
-    // Constructors
-    // ------------------------------------------------------------------------
-       
-    /**
-     * Default constructor
-     */
-    @SuppressWarnings("unused")
-    private TmfEventContent() {
-        throw new AssertionError();
-    }
-
-       /**
-        * Full constructor
-        * 
-        * @param parent the parent event (owner)
-        * @param content the raw content as a byte[]
-        */
-       public TmfEventContent(TmfEvent parent, String content) {
-               fParentEvent = parent;
-               fRawContent  = content;
-       }
-
-    /**
-     * Copy constructor
-     * 
-     * @param content the original event content
-     */
-    public TmfEventContent(TmfEventContent content) {
-       if (content == null)
-               throw new IllegalArgumentException();
-       fParentEvent = content.fParentEvent;
-               fRawContent  = content.fRawContent;
-               fFields      = content.fFields;
-    }
-
-    // ------------------------------------------------------------------------
-    // Accessors
-    // ------------------------------------------------------------------------
-
-       /**
-        * @return the parent (containing) event
-        */
-       public TmfEvent getEvent() {
-               return fParentEvent;
-       }
-
-       /**
-        * @return the event type
-        */
-       public ITmfEventType getType() {
-               return fParentEvent.getType();
-       }
-
-       /**
-        * @return the raw content
-        */
-       public Object getRawContent() {
-               return fRawContent;
-       }
-
-    /**
-     * @return the serialized content
-     */
-    public String getFmtContent() {
-        return fRawContent;
-    }
-
-       /**
-        * Returns the list of fields in the same order as TmfEventType.getLabels()
-        * 
-        * @return the ordered set of fields (optional fields might be null)
-        */
-       public ITmfEventField[] getFields() {
-               if (fFields == null) {
-                       parseContent();
-               }
-               return fFields;
-       }
-
-       /**
-        * @param id the field id
-        * @return the corresponding field
-        * @throws TmfNoSuchFieldException
-        */
-    public ITmfEventField getField(String id) throws TmfNoSuchFieldException {
-        if (fFields == null) {
-            parseContent();
-        }
-        try {
-            return fFields[getType().getFieldIndex(id)];
-        } catch (TmfNoSuchFieldException e) {
-            // Required for filtering from default TmfEventsTable columns
-            if (id.equals(FIELD_ID_CONTENT)) {
-                return new TmfEventField(this, FIELD_ID_CONTENT, toString());
-            } else if (id.equals(FIELD_ID_TIMESTAMP)) {
-                return new TmfEventField(this, FIELD_ID_TIMESTAMP, fParentEvent.getTimestamp().toString());
-            } else if (id.equals(FIELD_ID_SOURCE)) {
-                return new TmfEventField(this, FIELD_ID_SOURCE, fParentEvent.getSource());
-            } else if (id.equals(FIELD_ID_TYPE)) {
-                return new TmfEventField(this, FIELD_ID_TYPE, fParentEvent.getType().getId());
-            } else if (id.equals(FIELD_ID_REFERENCE)) {
-                return new TmfEventField(this, FIELD_ID_REFERENCE, fParentEvent.getReference());
-            }
-            throw e;
-        }
-    }
-
-       /**
-        * @param n the field index as per TmfEventType.getLabels()
-        * @return the corresponding field (null if non-existing)
-        */
-       public ITmfEventField getField(int n) {
-               if (fFields == null) {
-                       parseContent();
-               }
-               if (n >= 0 && n < fFields.length)
-                       return fFields[n];
-
-               return null;
-       }
-
-    // ------------------------------------------------------------------------
-    // Operations
-    // ------------------------------------------------------------------------
-
-       /**
-        * Parse the content into fields. By default, a single field (the raw
-        * content) is returned.
-        * 
-        * Should be overridden.
-        */
-       protected void parseContent() {
-               fFields = new TmfEventField[1];
-               fFields[0] = new TmfEventField(this, FIELD_ID_CONTENT, fRawContent);
-       }
-       
-    // ------------------------------------------------------------------------
-    // Cloneable
-    // ------------------------------------------------------------------------
-
-    @Override
-    public ITmfEventContent clone() {
-        TmfEventContent clone = null;
-        try {
-            clone = (TmfEventContent) super.clone();
-            clone.fParentEvent = fParentEvent;
-            clone.fRawContent = fRawContent;
-            clone.fFields = fFields;
-        }
-        catch (CloneNotSupportedException e) {
-            e.printStackTrace();
-        }
-        return clone;
-    }
-
-    // ------------------------------------------------------------------------
-    // Object
-    // ------------------------------------------------------------------------
-
-    @Override
-    public int hashCode() {
-        final int prime = 31;
-        int result = 1;
-        result = prime * result + Arrays.hashCode(fFields);
-        result = prime * result + ((fRawContent == null) ? 0 : fRawContent.hashCode());
-        return result;
-    }
-
-    @Override
-    public boolean equals(Object obj) {
-        if (this == obj)
-            return true;
-        if (obj == null)
-            return false;
-        if (getClass() != obj.getClass())
-            return false;
-        TmfEventContent other = (TmfEventContent) obj;
-        if (!Arrays.equals(fFields, other.fFields))
-            return false;
-        if (fRawContent == null) {
-            if (other.fRawContent != null)
-                return false;
-        } else if (!fRawContent.equals(other.fRawContent))
-            return false;
-        return true;
-    }
-
-    @Override
-    @SuppressWarnings("nls")
-    public String toString() {
-        return "TmfEventContent [fRawContent=" + fRawContent + ", fFields=" + Arrays.toString(fFields) + "]";
-    }
-
-}
index 6a01746bff42c916e957454d821d3719f0c4ec38..ca5fd9dfe7dd9e6c5e510074916107bb84997e3b 100644 (file)
 
 package org.eclipse.linuxtools.tmf.core.event;
 
+import java.util.HashMap;
+import java.util.Map;
+
 /**
  * <b><u>TmfEventField</u></b>
  * <p>
- * A basic implementation of ITmfEventField with no subfields.
+ * A basic implementation of ITmfEventField.
  */
 public class TmfEventField implements ITmfEventField {
 
@@ -24,11 +27,13 @@ public class TmfEventField implements ITmfEventField {
     // Attributes
     // ------------------------------------------------------------------------
 
-    protected ITmfEventContent fEventContent;
-    protected String fFieldId;
-    protected Object fValue;
-    protected ITmfEventField[] fSubFields;
+    private String fName;
+    private Object fValue;
+    private ITmfEventField[] fFields;
 
+    private String[] fFieldNames;
+    private Map<String, ITmfEventField> fNameMapping;
+    
     // ------------------------------------------------------------------------
     // Constructors
     // ------------------------------------------------------------------------
@@ -41,21 +46,41 @@ public class TmfEventField implements ITmfEventField {
         throw new AssertionError();
     }
 
+    /**
+     * Constructor for a terminal field (i.e. no subfields)
+     * 
+     * @param name the event field id
+     * @param value the event field value
+     */
+    public TmfEventField(String name, Object value) {
+        this(name, value, new ITmfEventField[0]);
+    }
+
+    /**
+     * Constructor for a non-valued field (for structural purposes)
+     * 
+     * @param name the event field id
+     * @param subfields the list of subfields
+     */
+    public TmfEventField(String name, ITmfEventField[] fields) {
+        this(name, null, fields);
+    }
+
     /**
      * Full constructor
      * 
-     * @param content the event content (field container)
-     * @param id the event field id
+     * @param name the event field id
      * @param value the event field value
+     * @param subfields the list of subfields
      */
-    public TmfEventField(ITmfEventContent content, String id, Object value) {
-        if (id == null) {
+    public TmfEventField(String name, Object value, ITmfEventField[] fields) {
+        if (name == null) {
             throw new IllegalArgumentException();
         }
-        fEventContent = content;
-        fFieldId = id;
+        fName = name;
         fValue = value;
-        fSubFields = null;
+        fFields = fields;
+        populateStructs();
     }
 
     /**
@@ -66,30 +91,48 @@ public class TmfEventField implements ITmfEventField {
     public TmfEventField(TmfEventField field) {
        if (field == null)
                throw new IllegalArgumentException();
-       fEventContent  = field.fEventContent;
-       fFieldId = field.fFieldId;
+       fName = field.fName;
                fValue = field.fValue;
-               fSubFields = field.fSubFields;
+               fFields = field.fFields;
+               fFieldNames = field.fFieldNames;
     }
 
     // ------------------------------------------------------------------------
     // ITmfEventField
     // ------------------------------------------------------------------------
 
-    public ITmfEventContent getContent() {
-        return fEventContent;
-    }
-
-    public String getId() {
-        return fFieldId;
+    public String getName() {
+        return fName;
     }
 
     public Object getValue() {
         return fValue;
     }
 
-    public ITmfEventField[] getSubFields() {
-        return fSubFields;
+    public String[] getFieldNames() {
+        return fFieldNames;
+    }
+
+    public String getFieldName(int index) {
+        ITmfEventField field = getField(index);
+        if (field != null) {
+            return field.getName();
+        }
+        return null;
+    }
+
+    public ITmfEventField[] getFields() {
+        return fFields;
+    }
+
+    public ITmfEventField getField(String name) {
+        return fNameMapping.get(name);
+    }
+
+    public ITmfEventField getField(int index) {
+        if (index >= 0 && index < fFields.length)
+            return fFields[index];
+        return null;
     }
 
     // ------------------------------------------------------------------------
@@ -97,10 +140,46 @@ public class TmfEventField implements ITmfEventField {
     // ------------------------------------------------------------------------
 
     /**
-     * @param value new field value
+     * @param value new field raw value
+     * @param fields the corresponding fields
      */
-    protected void setValue(Object value) {
+    protected void setValue(Object value, ITmfEventField[] fields) {
         fValue = value;
+        fFields = fields;
+        populateStructs();
+    }
+
+    // ------------------------------------------------------------------------
+    // Operations
+    // ------------------------------------------------------------------------
+
+    /**
+     * Create a root field from a list of labels.
+     * 
+     * @param labels the list of labels
+     * @return the (flat) root list
+     */
+    public final static ITmfEventField makeRoot(String[] labels) {
+        ITmfEventField[] fields = new ITmfEventField[labels.length];
+        for (int i = 0; i < labels.length; i++) {
+            fields[i] = new TmfEventField(labels[i], null);
+        }
+        ITmfEventField rootField = new TmfEventField(ITmfEventField.ROOT_ID, fields);
+        return rootField;
+    }
+
+    /*
+     * Populate the subfield names and the name map
+     */
+    private void populateStructs() {
+        int nbFields = (fFields != null) ? fFields.length : 0;
+        fFieldNames = new String[nbFields];
+        fNameMapping = new HashMap<String, ITmfEventField>();
+        for (int i = 0; i < nbFields; i++) {
+            String name = fFields[i].getName();
+            fFieldNames[i] = name;
+            fNameMapping.put(name, fFields[i]);
+        }
     }
 
     // ------------------------------------------------------------------------
@@ -112,10 +191,10 @@ public class TmfEventField implements ITmfEventField {
         TmfEventField clone = null;
         try {
             clone = (TmfEventField) super.clone();
-            clone.fEventContent = fEventContent;
-            clone.fFieldId = fFieldId;
+            clone.fName = fName;
             clone.fValue = fValue;
-            clone.fSubFields = (fSubFields != null) ? fSubFields.clone() : null;
+            clone.fFields = (fFields != null) ? fFields.clone() : null;
+            clone.populateStructs();
         } catch (CloneNotSupportedException e) {
         }
         return clone;
@@ -129,8 +208,7 @@ public class TmfEventField implements ITmfEventField {
     public int hashCode() {
         final int prime = 31;
         int result = 1;
-        result = prime * result + ((fEventContent == null) ? 0 : fEventContent.hashCode());
-        result = prime * result + ((fFieldId == null) ? 0 : fFieldId.hashCode());
+        result = prime * result + ((fName == null) ? 0 : fName.hashCode());
         result = prime * result + ((fValue == null) ? 0 : fValue.hashCode());
         return result;
     }
@@ -144,15 +222,10 @@ public class TmfEventField implements ITmfEventField {
         if (getClass() != obj.getClass())
             return false;
         TmfEventField other = (TmfEventField) obj;
-        if (fEventContent == null) {
-            if (other.fEventContent != null)
-                return false;
-        } else if (!fEventContent.equals(other.fEventContent))
-            return false;
-        if (fFieldId == null) {
-            if (other.fFieldId != null)
+        if (fName == null) {
+            if (other.fName != null)
                 return false;
-        } else if (!fFieldId.equals(other.fFieldId))
+        } else if (!fName.equals(other.fName))
             return false;
         if (fValue == null) {
             if (other.fValue != null)
@@ -165,7 +238,7 @@ public class TmfEventField implements ITmfEventField {
     @Override
     @SuppressWarnings("nls")
     public String toString() {
-        return "TmfEventField [fFieldId=" + fFieldId + ", fValue=" + fValue + "]";
+        return "TmfEventField [fFieldId=" + fName + ", fValue=" + fValue + "]";
     }
 
 }
index 7f39bf32970cea570a4dd12b60929afb9cdf72d8..70793a4d81ec7850052c129e79ed6c96b13c1224 100644 (file)
 
 package org.eclipse.linuxtools.tmf.core.event;
 
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.Map;
-
 /**
  * <b><u>TmfEventType</u></b>
  * <p>
@@ -24,22 +20,13 @@ import java.util.Map;
  */
 public class TmfEventType implements ITmfEventType {
 
-    // ------------------------------------------------------------------------
-    // Constants
-    // ------------------------------------------------------------------------
-
-    public static final String DEFAULT_CONTEXT_ID = "Context"; //$NON-NLS-1$
-    public static final String DEFAULT_TYPE_ID = "Type"; //$NON-NLS-1$
-       
     // ------------------------------------------------------------------------
     // Attributes
     // ------------------------------------------------------------------------
 
        private String fContext;
        private String fTypeId;
-       private int fNbFields;
-       private Map<String, Integer> fFieldMap;
-       private String[] fFieldLabels;
+       private ITmfEventField fRootField;
 
     // ------------------------------------------------------------------------
     // Constructors
@@ -52,29 +39,23 @@ public class TmfEventType implements ITmfEventType {
                this(DEFAULT_CONTEXT_ID, DEFAULT_TYPE_ID, null);
        }
 
-       /**
-        * Full constructor
-        * 
-        * @param context the type context
-        * @param typeId the type name
-        * @param labels the list of field labels
-        */
-       public TmfEventType(String context, String typeId, String[] labels) {
-               if (context == null || typeId == null)
-               throw new IllegalArgumentException();
-               fContext = context;
-               fTypeId = typeId;
-               fFieldLabels = (labels != null) ? labels : new String[] { }; 
-               fNbFields = (fFieldLabels != null) ? fFieldLabels.length : 0;
-               fFieldMap = new HashMap<String, Integer>();
-               for (int i = 0; i < fNbFields; i++) {
-                   String id = fFieldLabels[i];
-                       fFieldMap.put(id, i);
-               }
-
-               // Register to the event type manager
-               TmfEventTypeManager.getInstance().add(context, this);
-       }
+    /**
+     * Full constructor
+     * 
+     * @param context the type context
+     * @param typeId the type name
+     * @param root the root field
+     */
+    public TmfEventType(String context, String typeId, ITmfEventField root) {
+        if (context == null || typeId == null)
+            throw new IllegalArgumentException();
+        fContext = context;
+        fTypeId = typeId;
+        fRootField = root;
+
+        // Register to the event type manager
+        TmfEventTypeManager.getInstance().add(context, this);
+    }
 
        /**
         * Copy constructor
@@ -84,11 +65,9 @@ public class TmfEventType implements ITmfEventType {
        public TmfEventType(TmfEventType type) {
        if (type == null)
                throw new IllegalArgumentException();
-       fContext     = type.fContext;
-               fTypeId      = type.fTypeId;
-        fFieldLabels = type.fFieldLabels;
-        fNbFields    = type.fNbFields;
-        fFieldMap    = type.fFieldMap;
+       fContext = type.fContext;
+               fTypeId  = type.fTypeId;
+               fRootField    = type.fRootField;
        }
 
     // ------------------------------------------------------------------------
@@ -99,29 +78,20 @@ public class TmfEventType implements ITmfEventType {
                return fContext;
        }
 
-    public String getId() {
+    public String getName() {
         return fTypeId;
     }
 
-       public int getNbFields() {
-               return fNbFields;
-       }
-
-    public String[] getFieldLabels() {
-        return fFieldLabels;
+    public ITmfEventField getRootField() {
+        return fRootField;
     }
 
-    public String getFieldLabel(int i) throws TmfNoSuchFieldException {
-        if (i >= 0 && i < fNbFields)
-            return fFieldLabels[i];
-        throw new TmfNoSuchFieldException("Invalid index (" + i + ")"); //$NON-NLS-1$//$NON-NLS-2$
+    public String[] getFieldNames() {
+        return (fRootField != null) ? fRootField.getFieldNames() : null;
     }
 
-    public int getFieldIndex(String fieldId) throws TmfNoSuchFieldException {
-        Integer index = fFieldMap.get(fieldId);
-        if (index == null)
-            throw (new TmfNoSuchFieldException("Invalid field (" + fieldId + ")")); //$NON-NLS-1$//$NON-NLS-2$
-        return index;
+    public String getFieldName(int index) {
+        return (fRootField != null) ? fRootField.getFieldName(index) : null;
     }
 
     // ------------------------------------------------------------------------
@@ -135,14 +105,7 @@ public class TmfEventType implements ITmfEventType {
             clone = (TmfEventType) super.clone();
             clone.fContext = fContext;
             clone.fTypeId = fTypeId;
-            // Clone the fields
-            clone.fNbFields = fNbFields;
-            clone.fFieldLabels = new String[fNbFields];
-            clone.fFieldMap = new HashMap<String, Integer>();
-            for (int i = 0; i < fNbFields; i++) {
-                clone.fFieldLabels[i] = fFieldLabels[i];
-                clone.fFieldMap.put(fFieldLabels[i], Integer.valueOf(i));
-            }
+            clone.fRootField = (fRootField != null) ? fRootField.clone() : null;
         }
         catch (CloneNotSupportedException e) {
         }
@@ -158,9 +121,6 @@ public class TmfEventType implements ITmfEventType {
         final int prime = 31;
         int result = 1;
         result = prime * result + ((fContext == null) ? 0 : fContext.hashCode());
-        result = prime * result + Arrays.hashCode(fFieldLabels);
-        result = prime * result + ((fFieldMap == null) ? 0 : fFieldMap.hashCode());
-        result = prime * result + fNbFields;
         result = prime * result + ((fTypeId == null) ? 0 : fTypeId.hashCode());
         return result;
     }
@@ -179,15 +139,6 @@ public class TmfEventType implements ITmfEventType {
                 return false;
         } else if (!fContext.equals(other.fContext))
             return false;
-        if (!Arrays.equals(fFieldLabels, other.fFieldLabels))
-            return false;
-        if (fFieldMap == null) {
-            if (other.fFieldMap != null)
-                return false;
-        } else if (!fFieldMap.equals(other.fFieldMap))
-            return false;
-        if (fNbFields != other.fNbFields)
-            return false;
         if (fTypeId == null) {
             if (other.fTypeId != null)
                 return false;
@@ -199,27 +150,7 @@ public class TmfEventType implements ITmfEventType {
     @Override
     @SuppressWarnings("nls")
     public String toString() {
-        return "TmfEventType [fContext=" + fContext + ", fTypeId=" + fTypeId + ", fNbFields="
-                        + fNbFields + ", fFieldLabels=" + Arrays.toString(fFieldLabels) + "]";
+        return "TmfEventType [fContext=" + fContext + ", fTypeId=" + fTypeId + "]";
     }
 
-//     @Override
-//    public int hashCode() {
-//        return fTypeId.hashCode();
-//    }
-//
-//     @Override
-//    public boolean equals(Object other) {
-//             if (!(other instanceof TmfEventType))
-//                     return false;
-//             TmfEventType o = (TmfEventType) other;
-//        return fTypeId.equals(o.fTypeId);
-//    }
-//
-//    @Override
-//    @SuppressWarnings("nls")
-//    public String toString() {
-//     return "[TmfEventType:" + fTypeId + "]";
-//    }
-
 }
\ No newline at end of file
index 9567f8dedc5836ec00bbf1d5f5a76edbcb794821..614f5d1db7ee80789dece111791ec8ff02b31d91 100644 (file)
@@ -18,7 +18,7 @@ import java.util.HashMap;
  * <b><u>TmfEventTypeManager</u></b>
  * <p>
  * The TmfEventTypeManager acts as a central repository for the available
- * event types.
+ * event types. Types are managed in their context space.
  * <p>
  */
 public final class TmfEventTypeManager {
@@ -63,7 +63,7 @@ public final class TmfEventTypeManager {
         if (types == null) {
             types = new HashMap<String, ITmfEventType>();
         }
-        types.put(type.getId(), type);
+        types.put(type.getName(), type);
         fEventTypes.put(context, types);
     }
 
diff --git a/org.eclipse.linuxtools.tmf.core/src/org/eclipse/linuxtools/tmf/core/event/TmfNoSuchFieldException.java b/org.eclipse.linuxtools.tmf.core/src/org/eclipse/linuxtools/tmf/core/event/TmfNoSuchFieldException.java
deleted file mode 100644 (file)
index b7420a6..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Ericsson
- * 
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License v1.0 which
- * accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *   Francois Chouinard - Initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.linuxtools.tmf.core.event;
-
-/**
- * <b><u>TmfNoSuchFieldException</u></b>
- * <p>
- * TODO: Implement me. Please.
- */
-public class TmfNoSuchFieldException extends Exception {
-
-       /**
-        * 
-        */
-       private static final long serialVersionUID = 2504826473032522133L;
-
-       public TmfNoSuchFieldException(String message) {
-               super(message);
-       }
-}
index f0a7bcd37e3f748eb9aebdd544b417f07d6ca99b..b83672050d400d236f002878071dd3df60547e80 100644 (file)
@@ -100,7 +100,7 @@ public class TmfSimpleTimestamp extends TmfTimestamp {
     @Override
     @SuppressWarnings("nls")
     public String toString() {
-        return "TmfSimpleTimestamp [fValue=" + fValue + ", fScale=" + fScale + ", fPrecision=" + fPrecision + "]";
+        return "TmfSimpleTimestamp [fValue=" + fValue + "]";
     }
 
 }
index 0c30227ee940e80e6f7900585d2b6d2679022839..8ca69f9bc351ffc74f7af95afac906d862848a29 100644 (file)
@@ -16,7 +16,7 @@ package org.eclipse.linuxtools.tmf.core.event;
 /**
  * <b><u>TmfTimeRange</u></b>
  * <p>
- * A utility class to define time ranges.
+ * A utility class to define and manage time ranges.
  */
 public class TmfTimeRange implements Cloneable {
 
@@ -77,7 +77,7 @@ public class TmfTimeRange implements Cloneable {
     }
 
     // ------------------------------------------------------------------------
-    // Accessors
+    // Getters
     // ------------------------------------------------------------------------
 
     /**
index 9172ccada761e4ffbaf9b960e1daeaf092a0c109..78f619b37aaf413704bfc4cdb07038c6d26ac930 100644 (file)
@@ -34,9 +34,9 @@ public class TmfTimestamp implements ITmfTimestamp {
     // Attributes
     // ------------------------------------------------------------------------
 
-    protected long fValue;      // The timestamp raw value
-    protected int fScale;       // The time scale
-    protected int fPrecision;   // The value precision (tolerance)
+    protected long fValue;    // The timestamp raw value
+    protected int fScale;     // The time scale
+    protected int fPrecision; // The value precision (tolerance)
 
     // ------------------------------------------------------------------------
     // Constructors
index fb9bb56c185bc3fe194ec5d6e91317fcfef7f68a..7dff3e6072ffa38940b068295322846a438d347e 100644 (file)
@@ -18,7 +18,6 @@ import java.util.ArrayList;
 import java.util.List;\r
 \r
 import org.eclipse.linuxtools.tmf.core.event.TmfEvent;\r
-import org.eclipse.linuxtools.tmf.core.event.TmfNoSuchFieldException;\r
 import org.eclipse.linuxtools.tmf.core.event.TmfTimestamp;\r
 \r
 \r
@@ -113,44 +112,44 @@ public class TmfFilterCompareNode extends TmfFilterTreeNode {
 \r
        @Override\r
        public boolean matches(TmfEvent event) {\r
-               try {\r
-                       Object value = event.getContent().getField(fField);\r
-                       if (value == null) {\r
-                               return false ^ fNot;\r
-                       }\r
-                       if (fType == Type.NUM) {\r
-                               if (fValueNumber instanceof Number) {\r
-                                       if (value instanceof Number) {\r
-                                               Double valueDouble = ((Number) value).doubleValue();\r
-                                               return (valueDouble.compareTo(fValueNumber.doubleValue()) == fResult) ^ fNot;\r
-                                       } else {\r
-                                               try {\r
-                                                       Double valueDouble = NumberFormat.getInstance().parse(value.toString()).doubleValue();\r
-                                                       return (valueDouble.compareTo(fValueNumber.doubleValue()) == fResult) ^ fNot;\r
-                                               } catch (ParseException e) {\r
-                                               }\r
-                                       }\r
-                               }\r
-                       } else if (fType == Type.ALPHA) {\r
-                               String valueString = value.toString();\r
-                               return (valueString.compareTo(fValue.toString()) == fResult) ^ fNot;\r
-                       } else if (fType == Type.TIMESTAMP) {\r
-                               if (fValueTimestamp instanceof TmfTimestamp) {\r
-                                       if (value instanceof TmfTimestamp) {\r
-                                               TmfTimestamp valueTimestamp = (TmfTimestamp) value;\r
-                                               return (valueTimestamp.compareTo(fValueTimestamp, false) == fResult) ^ fNot;\r
-                                       } else {\r
-                                               try {\r
-                                                       TmfTimestamp valueTimestamp = new TmfTimestamp((long) (1E9 * NumberFormat.getInstance().parse(value.toString()).doubleValue()));\r
-                                                       return (valueTimestamp.compareTo(fValueTimestamp, false) == fResult) ^ fNot;\r
-                                               } catch (ParseException e) {\r
-                                               }\r
-                                       }\r
-                               }\r
-                       }\r
-               } catch (TmfNoSuchFieldException e) {\r
-               }\r
-               return false ^ fNot;\r
+        Object value = event.getContent().getField(fField).getValue();\r
+        if (value == null) {\r
+            return false ^ fNot;\r
+        }\r
+        if (fType == Type.NUM) {\r
+            if (fValueNumber instanceof Number) {\r
+                if (value instanceof Number) {\r
+                    Double valueDouble = ((Number) value).doubleValue();\r
+                    return (valueDouble.compareTo(fValueNumber.doubleValue()) == fResult) ^ fNot;\r
+                } else {\r
+                    try {\r
+                        Double valueDouble = NumberFormat.getInstance().parse(value.toString())\r
+                                        .doubleValue();\r
+                        return (valueDouble.compareTo(fValueNumber.doubleValue()) == fResult)\r
+                                        ^ fNot;\r
+                    } catch (ParseException e) {\r
+                    }\r
+                }\r
+            }\r
+        } else if (fType == Type.ALPHA) {\r
+            String valueString = value.toString();\r
+            return (valueString.compareTo(fValue.toString()) == fResult) ^ fNot;\r
+        } else if (fType == Type.TIMESTAMP) {\r
+            if (fValueTimestamp instanceof TmfTimestamp) {\r
+                if (value instanceof TmfTimestamp) {\r
+                    TmfTimestamp valueTimestamp = (TmfTimestamp) value;\r
+                    return (valueTimestamp.compareTo(fValueTimestamp, false) == fResult) ^ fNot;\r
+                } else {\r
+                    try {\r
+                        TmfTimestamp valueTimestamp = new TmfTimestamp((long) (1E9 * NumberFormat\r
+                                        .getInstance().parse(value.toString()).doubleValue()));\r
+                        return (valueTimestamp.compareTo(fValueTimestamp, false) == fResult) ^ fNot;\r
+                    } catch (ParseException e) {\r
+                    }\r
+                }\r
+            }\r
+        }\r
+        return false ^ fNot;\r
        }\r
 \r
        @Override\r
index 01a7c0429f6cfa959f328f37d60bde36301dcf81..9a77053b85f719a4994b615cd3fa75826575af99 100644 (file)
@@ -16,7 +16,6 @@ import java.util.ArrayList;
 import java.util.List;\r
 \r
 import org.eclipse.linuxtools.tmf.core.event.TmfEvent;\r
-import org.eclipse.linuxtools.tmf.core.event.TmfNoSuchFieldException;\r
 \r
 \r
 public class TmfFilterContainsNode extends TmfFilterTreeNode {\r
@@ -77,20 +76,16 @@ public class TmfFilterContainsNode extends TmfFilterTreeNode {
 \r
        @Override\r
        public boolean matches(TmfEvent event) {\r
-               try {\r
-                       Object value = event.getContent().getField(fField);\r
-                       if (value == null) {\r
-                               return false ^ fNot;\r
-                       }\r
-                       String valueString = value.toString();\r
-                       if (fIgnoreCase) {\r
-                               return valueString.toUpperCase().contains(fValueUpperCase) ^ fNot;\r
-                       } else {\r
-                               return valueString.contains(fValue) ^ fNot;\r
-                       }\r
-               } catch (TmfNoSuchFieldException e) {\r
-                       return false ^ fNot;\r
-               }\r
+        Object value = event.getContent().getField(fField);\r
+        if (value == null) {\r
+            return false ^ fNot;\r
+        }\r
+        String valueString = value.toString();\r
+        if (fIgnoreCase) {\r
+            return valueString.toUpperCase().contains(fValueUpperCase) ^ fNot;\r
+        } else {\r
+            return valueString.contains(fValue) ^ fNot;\r
+        }\r
        }\r
 \r
        @Override\r
index d7781b5dabfc0bab5842d1b0333023d2b9b69766..1ae98755cb89840bfedfbf36ebacff51cadc91f2 100644 (file)
@@ -16,7 +16,6 @@ import java.util.ArrayList;
 import java.util.List;\r
 \r
 import org.eclipse.linuxtools.tmf.core.event.TmfEvent;\r
-import org.eclipse.linuxtools.tmf.core.event.TmfNoSuchFieldException;\r
 \r
 \r
 public class TmfFilterEqualsNode extends TmfFilterTreeNode {\r
@@ -75,23 +74,19 @@ public class TmfFilterEqualsNode extends TmfFilterTreeNode {
 \r
        @Override\r
        public boolean matches(TmfEvent event) {\r
-               try {\r
-                       Object value = event.getContent().getField(fField);\r
-                       if (value == null) {\r
-                               return false ^ fNot;\r
-                       }\r
-                       String valueString = value.toString();\r
-                       if (valueString == null) {\r
-                               return false ^ fNot;\r
-                       }\r
-                       if (fIgnoreCase) {\r
-                               return valueString.equalsIgnoreCase(fValue) ^ fNot;\r
-                       } else {\r
-                               return valueString.equals(fValue) ^ fNot;\r
-                       }\r
-               } catch (TmfNoSuchFieldException e) {\r
-                       return false ^ fNot;\r
-               }\r
+        Object value = event.getContent().getField(fField);\r
+        if (value == null) {\r
+            return false ^ fNot;\r
+        }\r
+        String valueString = value.toString();\r
+        if (valueString == null) {\r
+            return false ^ fNot;\r
+        }\r
+        if (fIgnoreCase) {\r
+            return valueString.equalsIgnoreCase(fValue) ^ fNot;\r
+        } else {\r
+            return valueString.equals(fValue) ^ fNot;\r
+        }\r
        }\r
 \r
        @Override\r
index 20de59833c42f40c74254c98f8468ed0da9d71b9..26bae73b5fa7365d870a019e48f7455a44718a7f 100644 (file)
@@ -58,7 +58,7 @@ public class TmfFilterEventTypeNode extends TmfFilterTreeNode {
         if (fType.contains(":")) { //$NON-NLS-1$\r
             // special case for custom parsers\r
             if (fType.startsWith(event.getClass().getCanonicalName())) {\r
-                if (fType.endsWith(event.getType().getId())) {\r
+                if (fType.endsWith(event.getType().getName())) {\r
                     match = true;\r
                 }\r
             }\r
index 828de8398936c5eabb5bc9fc94b11adbb4833110..17a3382d319b38f11319f80007387abf7e02560e 100644 (file)
@@ -18,7 +18,6 @@ import java.util.regex.Pattern;
 import java.util.regex.PatternSyntaxException;\r
 \r
 import org.eclipse.linuxtools.tmf.core.event.TmfEvent;\r
-import org.eclipse.linuxtools.tmf.core.event.TmfNoSuchFieldException;\r
 \r
 \r
 public class TmfFilterMatchesNode extends TmfFilterTreeNode {\r
@@ -73,19 +72,15 @@ public class TmfFilterMatchesNode extends TmfFilterTreeNode {
 \r
        @Override\r
        public boolean matches(TmfEvent event) {\r
-               if (fPattern == null) {\r
-                       return false ^ fNot;\r
-               }\r
-               try {\r
-                       Object value = event.getContent().getField(fField);\r
-                       if (value == null) {\r
-                               return false ^ fNot;\r
-                       }\r
-                       String valueString = value.toString();\r
-                       return fPattern.matcher(valueString).matches() ^ fNot;\r
-               } catch (TmfNoSuchFieldException e) {\r
-                       return false ^ fNot;\r
-               }\r
+        if (fPattern == null) {\r
+            return false ^ fNot;\r
+        }\r
+        Object value = event.getContent().getField(fField);\r
+        if (value == null) {\r
+            return false ^ fNot;\r
+        }\r
+        String valueString = value.toString();\r
+        return fPattern.matcher(valueString).matches() ^ fNot;\r
        }\r
 \r
        @Override\r
index 7c67bdb3561b43a965d7e154e46e39e5a828bc34..7ed4d615073f0da562c55f903ca2690abf002a5f 100644 (file)
 
 package org.eclipse.linuxtools.tmf.core.request;
 
-import org.eclipse.linuxtools.tmf.core.event.TmfDataItem;
+import org.eclipse.linuxtools.tmf.core.event.TmfEvent;
 
 /**
  * <b><u>ITmfDataRequest</u></b>
  * <p>
  * TODO: Implement me. Please.
  */
-public interface ITmfDataRequest<T extends TmfDataItem> {
+public interface ITmfDataRequest<T extends TmfEvent> {
 
        // ------------------------------------------------------------------------
        // Constants
index 39a7a2de647906377f8221549a742363f06acd37..ea8d49a51b9ca420d2ea0b39b7989e2f9ed7a17b 100644 (file)
@@ -14,14 +14,14 @@ package org.eclipse.linuxtools.tmf.core.request;
 
 import java.util.Vector;
 
-import org.eclipse.linuxtools.tmf.core.event.TmfDataItem;
+import org.eclipse.linuxtools.tmf.core.event.TmfEvent;
 
 /**
  * <b><u>TmfCoalescedDataRequest</u></b>
  * <p>
  * TODO: Implement me. Please.
  */
-public class TmfCoalescedDataRequest<T extends TmfDataItem> extends TmfDataRequest<T> {
+public class TmfCoalescedDataRequest<T extends TmfEvent> extends TmfDataRequest<T> {
 
     // ------------------------------------------------------------------------
     // Attributes
index 91c5009b6f92a7b30068f6bf3b99faebb1058a09..96bdc62d245739750ec2f98782c7a961cd0cf736 100644 (file)
@@ -15,7 +15,7 @@ package org.eclipse.linuxtools.tmf.core.request;
 import java.util.concurrent.CountDownLatch;
 
 import org.eclipse.linuxtools.tmf.core.Tracer;
-import org.eclipse.linuxtools.tmf.core.event.TmfDataItem;
+import org.eclipse.linuxtools.tmf.core.event.TmfEvent;
 
 /**
  * <b><u>TmfDataRequest</u></b>
@@ -69,7 +69,7 @@ import org.eclipse.linuxtools.tmf.core.event.TmfDataItem;
  * 
  * TODO: Implement request failures (codes, etc...)
  */
-public abstract class TmfDataRequest<T extends TmfDataItem> implements ITmfDataRequest<T> {
+public abstract class TmfDataRequest<T extends TmfEvent> implements ITmfDataRequest<T> {
 
     // ------------------------------------------------------------------------
     // Constants
index 90819878e408a48cfc909a316f708db3e5099b1c..6e31cf85a8056d734fe79871cca708a71675d9cd 100644 (file)
@@ -18,8 +18,9 @@ import junit.framework.TestCase;
 
 import org.eclipse.jface.viewers.ColumnLabelProvider;
 import org.eclipse.jface.viewers.ViewerComparator;
+import org.eclipse.linuxtools.tmf.core.event.ITmfEventField;
 import org.eclipse.linuxtools.tmf.core.event.TmfEvent;
-import org.eclipse.linuxtools.tmf.core.event.TmfEventContent;
+import org.eclipse.linuxtools.tmf.core.event.TmfEventField;
 import org.eclipse.linuxtools.tmf.core.event.TmfEventType;
 import org.eclipse.linuxtools.tmf.core.event.TmfTimestamp;
 import org.eclipse.linuxtools.tmf.core.util.TmfFixedArray;
@@ -59,9 +60,9 @@ public class TmfBaseColumnDataProviderTest extends TestCase {
 
     private final String       fSource = "Source";
 
-    private final TmfEventType fType1 = new TmfEventType(fContext, fTypeId1, fLabels);
-    private final TmfEventType fType2 = new TmfEventType(fContext, fTypeId1, fLabels);
-    private final TmfEventType fType3 = new TmfEventType(fContext, fTypeId2, fLabels);
+    private final TmfEventType fType1 = new TmfEventType(fContext, fTypeId1, TmfEventField.makeRoot(fLabels));
+    private final TmfEventType fType2 = new TmfEventType(fContext, fTypeId1, TmfEventField.makeRoot(fLabels));
+    private final TmfEventType fType3 = new TmfEventType(fContext, fTypeId2, TmfEventField.makeRoot(fLabels));
 
     private final String fReference = "Some reference";
 
@@ -69,9 +70,9 @@ public class TmfBaseColumnDataProviderTest extends TestCase {
     private final TmfEvent fEvent2;
     private final TmfEvent fEvent3;
 
-    private final TmfEventContent fContent1;
-    private final TmfEventContent fContent2;
-    private final TmfEventContent fContent3;
+    private final TmfEventField fContent1;
+    private final TmfEventField fContent2;
+    private final TmfEventField fContent3;
 
     private final TmfBaseStatisticsTree fStatsData;
 
@@ -87,15 +88,15 @@ public class TmfBaseColumnDataProviderTest extends TestCase {
         fTestName = name;
 
         fEvent1 = new TmfEvent(fTimestamp1, fSource, fType1, fReference);
-        fContent1 = new TmfEventContent(fEvent1, "Some content");
+        fContent1 = new TmfEventField(ITmfEventField.ROOT_ID, "Some content");
         fEvent1.setContent(fContent1);
 
         fEvent2 = new TmfEvent(fTimestamp2, fSource, fType2, fReference);
-        fContent2 = new TmfEventContent(fEvent2, "Some other content");
+        fContent2 = new TmfEventField(ITmfEventField.ROOT_ID, "Some other content");
         fEvent2.setContent(fContent2);
 
         fEvent3 = new TmfEvent(fTimestamp3, fSource, fType3, fReference);
-        fContent3 = new TmfEventContent(fEvent3, "Some other different content");
+        fContent3 = new TmfEventField(ITmfEventField.ROOT_ID, "Some other different content");
         fEvent3.setContent(fContent3);
 
         fStatsData = new TmfBaseStatisticsTree();
index 314774a5de7eaaf4e55dc12d12ee0fa16978a174..f3be43e0d1622526cedad227a356e308b0f76c99 100755 (executable)
@@ -19,8 +19,9 @@ import java.util.Vector;
 
 import junit.framework.TestCase;
 
+import org.eclipse.linuxtools.tmf.core.event.ITmfEventField;
 import org.eclipse.linuxtools.tmf.core.event.TmfEvent;
-import org.eclipse.linuxtools.tmf.core.event.TmfEventContent;
+import org.eclipse.linuxtools.tmf.core.event.TmfEventField;
 import org.eclipse.linuxtools.tmf.core.event.TmfEventType;
 import org.eclipse.linuxtools.tmf.core.event.TmfTimestamp;
 import org.eclipse.linuxtools.tmf.core.util.TmfFixedArray;
@@ -53,9 +54,9 @@ public class TmfBaseStatisticsDataTest extends TestCase {
     
     private final String fSource = "Source";
     
-    private final TmfEventType fType1 = new TmfEventType(fContext, fTypeId1, fLabels);
-    private final TmfEventType fType2 = new TmfEventType(fContext, fTypeId1, fLabels);
-    private final TmfEventType fType3 = new TmfEventType(fContext, fTypeId2, fLabels);
+    private final TmfEventType fType1 = new TmfEventType(fContext, fTypeId1, TmfEventField.makeRoot(fLabels));
+    private final TmfEventType fType2 = new TmfEventType(fContext, fTypeId1, TmfEventField.makeRoot(fLabels));
+    private final TmfEventType fType3 = new TmfEventType(fContext, fTypeId2, TmfEventField.makeRoot(fLabels));
     
     private final String fReference = "Some reference";
 
@@ -63,9 +64,9 @@ public class TmfBaseStatisticsDataTest extends TestCase {
     private final TmfEvent fEvent2;
     private final TmfEvent fEvent3;
 
-    private final TmfEventContent fContent1;
-    private final TmfEventContent fContent2;
-    private final TmfEventContent fContent3;
+    private final TmfEventField fContent1;
+    private final TmfEventField fContent2;
+    private final TmfEventField fContent3;
     
     private final TmfBaseStatisticsTree fStatsData;
     
@@ -84,15 +85,15 @@ public class TmfBaseStatisticsDataTest extends TestCase {
         fTestName = name;
         
         fEvent1 = new TmfEvent(fTimestamp1, fSource, fType1, fReference);
-        fContent1 = new TmfEventContent(fEvent1, "Some content");
+        fContent1 = new TmfEventField(ITmfEventField.ROOT_ID, "Some content");
         fEvent1.setContent(fContent1);
 
         fEvent2 = new TmfEvent(fTimestamp2, fSource, fType2, fReference);
-        fContent2 = new TmfEventContent(fEvent2, "Some other content");
+        fContent2 = new TmfEventField(ITmfEventField.ROOT_ID, "Some other content");
         fEvent2.setContent(fContent2);
         
         fEvent3 = new TmfEvent(fTimestamp3, fSource, fType3, fReference);
-        fContent3 = new TmfEventContent(fEvent3, "Some other different content");
+        fContent3 = new TmfEventField(ITmfEventField.ROOT_ID, "Some other different content");
         fEvent3.setContent(fContent3);
         
         fStatsData = new TmfBaseStatisticsTree();
@@ -282,8 +283,8 @@ public class TmfBaseStatisticsDataTest extends TestCase {
         fStatsData.reset(new TmfFixedArray<String>(fTestName, Messages.TmfStatisticsData_EventTypes));
         
         assertEquals("reset", 0, fStatsData.getChildren(new TmfFixedArray<String>(fTestName, Messages.TmfStatisticsData_EventTypes)).size());
-        assertNull("reset", fStatsData.get(new TmfFixedArray<String>(fTestName, Messages.TmfStatisticsData_EventTypes, fType1.getId())));
-        assertNull("reset", fStatsData.get(new TmfFixedArray<String>(fTestName, Messages.TmfStatisticsData_EventTypes, fType3.getId())));
+        assertNull("reset", fStatsData.get(new TmfFixedArray<String>(fTestName, Messages.TmfStatisticsData_EventTypes, fType1.getName())));
+        assertNull("reset", fStatsData.get(new TmfFixedArray<String>(fTestName, Messages.TmfStatisticsData_EventTypes, fType3.getName())));
         
         fStatsData.reset(new TmfFixedArray<String>(fTestName));
         
index c597d9e9d0ed4665eb7a1e3c7a6bcb50e3876c0b..88acdba33859c736813479e5fbcb8edb4be0168b 100755 (executable)
@@ -19,8 +19,9 @@ import java.util.Vector;
 
 import junit.framework.TestCase;
 
+import org.eclipse.linuxtools.tmf.core.event.ITmfEventField;
 import org.eclipse.linuxtools.tmf.core.event.TmfEvent;
-import org.eclipse.linuxtools.tmf.core.event.TmfEventContent;
+import org.eclipse.linuxtools.tmf.core.event.TmfEventField;
 import org.eclipse.linuxtools.tmf.core.event.TmfEventType;
 import org.eclipse.linuxtools.tmf.core.event.TmfTimestamp;
 import org.eclipse.linuxtools.tmf.core.util.TmfFixedArray;
@@ -54,9 +55,9 @@ public class TmfStatisticsTreeNodeTest extends TestCase {
     
     private final String fSource = "Source";
     
-    private final TmfEventType fType1 = new TmfEventType(fContext, fTypeId1, fLabels);
-    private final TmfEventType fType2 = new TmfEventType(fContext, fTypeId1, fLabels);
-    private final TmfEventType fType3 = new TmfEventType(fContext, fTypeId2, fLabels);
+    private final TmfEventType fType1 = new TmfEventType(fContext, fTypeId1, TmfEventField.makeRoot(fLabels));
+    private final TmfEventType fType2 = new TmfEventType(fContext, fTypeId1, TmfEventField.makeRoot(fLabels));
+    private final TmfEventType fType3 = new TmfEventType(fContext, fTypeId2, TmfEventField.makeRoot(fLabels));
     
     private final String fReference = "Some reference";
 
@@ -64,9 +65,9 @@ public class TmfStatisticsTreeNodeTest extends TestCase {
     private final TmfEvent fEvent2;
     private final TmfEvent fEvent3;
 
-    private final TmfEventContent fContent1;
-    private final TmfEventContent fContent2;
-    private final TmfEventContent fContent3;
+    private final TmfEventField fContent1;
+    private final TmfEventField fContent2;
+    private final TmfEventField fContent3;
     
     private final TmfBaseStatisticsTree fStatsData;
     
@@ -85,15 +86,15 @@ public class TmfStatisticsTreeNodeTest extends TestCase {
         fTestName = name;
         
         fEvent1 = new TmfEvent(fTimestamp1, fSource, fType1, fReference);
-        fContent1 = new TmfEventContent(fEvent1, "Some content");
+        fContent1 = new TmfEventField(ITmfEventField.ROOT_ID, "Some content");
         fEvent1.setContent(fContent1);
 
         fEvent2 = new TmfEvent(fTimestamp2, fSource, fType2, fReference);
-        fContent2 = new TmfEventContent(fEvent2, "Some other content");
+        fContent2 = new TmfEventField(ITmfEventField.ROOT_ID, "Some other content");
         fEvent2.setContent(fContent2);
         
         fEvent3 = new TmfEvent(fTimestamp3, fSource, fType3, fReference);
-        fContent3 = new TmfEventContent(fEvent3, "Some other different content");
+        fContent3 = new TmfEventField(ITmfEventField.ROOT_ID, "Some other different content");
         fEvent3.setContent(fContent3);
         
         fStatsData = new TmfBaseStatisticsTree();
index d10ffdddfd8d7d6d9613dd06d4383871899d067a..db218effc6cffcd4d7a3d2d1114f370c8acd3fcd 100755 (executable)
@@ -19,8 +19,9 @@ import java.util.Vector;
 
 import junit.framework.TestCase;
 
+import org.eclipse.linuxtools.tmf.core.event.ITmfEventField;
 import org.eclipse.linuxtools.tmf.core.event.TmfEvent;
-import org.eclipse.linuxtools.tmf.core.event.TmfEventContent;
+import org.eclipse.linuxtools.tmf.core.event.TmfEventField;
 import org.eclipse.linuxtools.tmf.core.event.TmfEventType;
 import org.eclipse.linuxtools.tmf.core.event.TmfTimestamp;
 import org.eclipse.linuxtools.tmf.core.util.TmfFixedArray;
@@ -53,16 +54,16 @@ public class TmfTreeContentProviderTest extends TestCase {
 
     private final String fSource = "Source";
 
-    private final TmfEventType fType1 = new TmfEventType(fContext, fTypeId1, fLabels);
-    private final TmfEventType fType2 = new TmfEventType(fContext, fTypeId2, fLabels);
+    private final TmfEventType fType1 = new TmfEventType(fContext, fTypeId1, TmfEventField.makeRoot(fLabels));
+    private final TmfEventType fType2 = new TmfEventType(fContext, fTypeId2, TmfEventField.makeRoot(fLabels));
 
     private final String fReference = "Some reference";
 
     private final TmfEvent fEvent1;
     private final TmfEvent fEvent2;
 
-    private final TmfEventContent fContent1;
-    private final TmfEventContent fContent2;
+    private final TmfEventField fContent1;
+    private final TmfEventField fContent2;
 
     private final TmfBaseStatisticsTree fStatsData;
 
@@ -84,11 +85,11 @@ public class TmfTreeContentProviderTest extends TestCase {
         fTestName = name;
 
         fEvent1 = new TmfEvent(fTimestamp1, fSource, fType1, fReference);
-        fContent1 = new TmfEventContent(fEvent1, "Some content");
+        fContent1 = new TmfEventField(ITmfEventField.ROOT_ID, "Some content");
         fEvent1.setContent(fContent1);
 
         fEvent2 = new TmfEvent(fTimestamp2, fSource, fType2, fReference);
-        fContent2 = new TmfEventContent(fEvent2, "Some other content");
+        fContent2 = new TmfEventField(ITmfEventField.ROOT_ID, "Some other content");
         fEvent2.setContent(fContent2);
 
         fStatsData = new TmfBaseStatisticsTree();
index 9f04713ebfd2987c2bcda66adf5d054c6755b4f9..f8f0aec3aa1bcab96ab3f260fec31d9c73f6a025 100644 (file)
@@ -15,8 +15,8 @@ import java.io.EOFException;
 import java.io.IOException;
 import java.io.RandomAccessFile;
 
+import org.eclipse.linuxtools.tmf.core.event.ITmfEventField;
 import org.eclipse.linuxtools.tmf.core.event.TmfEvent;
-import org.eclipse.linuxtools.tmf.core.event.TmfEventContent;
 import org.eclipse.linuxtools.tmf.core.event.TmfEventField;
 import org.eclipse.linuxtools.tmf.core.event.TmfEventType;
 import org.eclipse.linuxtools.tmf.core.event.TmfTimestamp;
@@ -57,8 +57,8 @@ public class TmfUml2SDTestTrace implements ITmfEventParser {
 
             String[] labels = {"sender", "receiver", "signal"};
 
-            TmfEventType tmfEventType = new TmfEventType("UnitTest", type, labels);
-            TmfEvent tmfEvent = new TmfEvent(new TmfTimestamp(ts, (byte)-9), source, tmfEventType, reference);
+            TmfEventType tmfEventType = new TmfEventType("UnitTest", type, TmfEventField.makeRoot(labels));
+            TmfEvent tmfEvent = new TmfEvent(new TmfTimestamp(ts, -9), source, tmfEventType, reference);
 
             String content = "[";
             content += sender;
@@ -66,22 +66,13 @@ public class TmfUml2SDTestTrace implements ITmfEventParser {
             content += "," + signal;
             content += "]";
 
-            TmfEventContent tmfContent = new TmfEventContent(tmfEvent, content) {
-                @Override
-                public void parseContent() {
-                    String raw = fRawContent.toString();
-                    int i = raw.indexOf(",");
-                    String sender = raw.substring(1, i);
-                    int k = raw.indexOf(",", i+1);
-                    String receiver = raw.substring(i+1, k);
-                    i = raw.indexOf(",", k+1);
-                    String signal = raw.substring(k+1, raw.length() - 1);
-                    fFields = new TmfEventField[3];
-                    fFields[0] = new TmfEventField(this, "sender", sender);
-                    fFields[1] = new TmfEventField(this, "receiver", receiver);;
-                    fFields[2] = new TmfEventField(this, "signal", signal);;
-                }
-            };
+            // Pre-parse the content
+            TmfEventField[] fields = new TmfEventField[3];
+            fields[0] = new TmfEventField("sender", sender);
+            fields[1] = new TmfEventField("receiver", receiver);
+            fields[2] = new TmfEventField("signal", signal);
+            
+            ITmfEventField tmfContent = new TmfEventField(ITmfEventField.ROOT_ID, content, fields);
             tmfEvent.setContent(tmfContent);
 
             return tmfEvent;
index 1a275f31cbaa60a67a2f7b5f22e94c24d5bb841c..e5a4c01c93c2754d643b06516996e00bce3c2173 100644 (file)
@@ -86,9 +86,9 @@ public class CustomEvent extends TmfEvent {
             String value = fData.get(outputColumn.name);\r
             if (outputColumn.name.equals(CustomTraceDefinition.TAG_TIMESTAMP) && date != null) {\r
                 SimpleDateFormat dateFormat = new SimpleDateFormat(fDefinition.timeStampOutputFormat);\r
-                fColumnData[i++] = new TmfEventField(getContent(), outputColumn.name, dateFormat.format(date));\r
+                fColumnData[i++] = new TmfEventField(outputColumn.name, dateFormat.format(date));\r
             } else {\r
-                fColumnData[i++] = new TmfEventField(getContent(), outputColumn.name, (value != null ? value : "")); //$NON-NLS-1$\r
+                fColumnData[i++] = new TmfEventField(outputColumn.name, (value != null ? value : "")); //$NON-NLS-1$\r
             }\r
         }\r
         fData = null;\r
index 9900e66372b8ea7f1fd31297680deea399a65904..c08c4e62b514ae70be5cb8c79f5a690943c93f98 100644 (file)
@@ -1,24 +1,26 @@
 package org.eclipse.linuxtools.tmf.ui.parsers.custom;\r
 \r
-import java.util.Arrays;\r
+import org.eclipse.linuxtools.tmf.core.event.ITmfEventField;\r
+import org.eclipse.linuxtools.tmf.core.event.TmfEventField;\r
 \r
-import org.eclipse.linuxtools.tmf.core.event.TmfEventContent;\r
-\r
-public class CustomEventContent extends TmfEventContent {\r
+public class CustomEventContent extends TmfEventField {\r
 \r
+    CustomEvent fParent;\r
+    \r
     public CustomEventContent(CustomEvent parent, String content) {\r
-        super(parent, content);\r
-    }\r
-\r
-    @Override\r
-    protected void parseContent() {\r
-        CustomEvent event = (CustomEvent) fParentEvent;\r
-        fFields = event.extractItemFields();\r
+        super(ITmfEventField.ROOT_ID, content);\r
+        fParent = parent;\r
     }\r
 \r
-    @Override\r
-    public String toString() {\r
-        return Arrays.toString(getFields());\r
-    }\r
+//    @Override\r
+//    protected void parseContent() {\r
+//        CustomEvent event = (CustomEvent) fParentEvent;\r
+//        fFields = event.extractItemFields();\r
+//    }\r
+//\r
+//    @Override\r
+//    public String toString() {\r
+//        return Arrays.toString(getFields());\r
+//    }\r
 \r
 }\r
index 516cdde1d24b0df40faca03ff39f96c20aaaaa26..b6f2093aadb8813e6c4d96d71700a9486df7ba58 100644 (file)
@@ -1,5 +1,7 @@
 package org.eclipse.linuxtools.tmf.ui.parsers.custom;\r
 \r
+import org.eclipse.linuxtools.tmf.core.event.ITmfEventField;\r
+import org.eclipse.linuxtools.tmf.core.event.TmfEventField;\r
 import org.eclipse.linuxtools.tmf.core.event.TmfEventType;\r
 \r
 public abstract class CustomEventType extends TmfEventType {\r
@@ -7,15 +9,16 @@ public abstract class CustomEventType extends TmfEventType {
     private static String CONTEXT_ID = "CustomEventType"; //$NON-NLS-1$\r
     \r
     public CustomEventType(CustomTraceDefinition definition) {\r
-        super(CONTEXT_ID, definition.definitionName, getLabels(definition));\r
+        super(CONTEXT_ID, definition.definitionName, getRootField(definition));\r
     }\r
 \r
-    private static String[] getLabels(CustomTraceDefinition definition) {\r
-        String[] labels = new String[definition.outputs.size()];\r
-        for (int i = 0; i < labels.length; i++) {\r
-            labels[i] = definition.outputs.get(i).name;\r
+    private static ITmfEventField getRootField(CustomTraceDefinition definition) {\r
+        ITmfEventField[] fields = new ITmfEventField[definition.outputs.size()];\r
+        for (int i = 0; i < fields.length; i++) {\r
+            fields[i] = new TmfEventField(definition.outputs.get(i).name, null);\r
         }\r
-        return labels;\r
+        ITmfEventField rootField = new TmfEventField(ITmfEventField.ROOT_ID, fields);\r
+        return rootField;\r
     }\r
 \r
 }\r
index f77498fff79be405184e302329b8d3d4e0b43386..ca5745c73426c083f140731e2e94748b9d6911fe 100644 (file)
@@ -286,7 +286,7 @@ public class CustomTxtTrace extends TmfTrace<CustomTxtEvent> {
                                     }\r
                                 }\r
                             }\r
-                            ((StringBuffer) event.getContent().getRawContent()).append("\n").append(line); //$NON-NLS-1$\r
+                            ((StringBuffer) event.getContent().getValue()).append("\n").append(line); //$NON-NLS-1$\r
                         }\r
                     }\r
                     rawPos = context.raFile.getFilePointer();\r
index daba0fb0adfee3a82b45c1e3f0c4ad9585432d0a..310b7b94295923c57971753812fcb93ed921334e 100644 (file)
@@ -189,7 +189,7 @@ public class CustomXmlTrace extends TmfTrace<CustomXmlEvent> {
                 Element element = parseElementBuffer(elementBuffer);\r
                 \r
                 event = extractEvent(element, fRecordInputElement);\r
-                ((StringBuffer) event.getContent().getRawContent()).append(elementBuffer);\r
+                ((StringBuffer) event.getContent().getValue()).append(elementBuffer);\r
                 \r
                 String line;\r
                 String recordElementStart = "<" + fRecordInputElement.elementName; //$NON-NLS-1$\r
index adf05e07c69821af9772f0f78500f2391db3b59d..03945036bebdcccca1d9245a3a4e8e4da2215e63 100644 (file)
@@ -44,10 +44,9 @@ import org.eclipse.jface.resource.JFaceResources;
 import org.eclipse.jface.resource.LocalResourceManager;\r
 import org.eclipse.linuxtools.tmf.core.component.ITmfDataProvider;\r
 import org.eclipse.linuxtools.tmf.core.component.TmfComponent;\r
-import org.eclipse.linuxtools.tmf.core.event.ITmfEventContent;\r
+import org.eclipse.linuxtools.tmf.core.event.ITmfEvent;\r
 import org.eclipse.linuxtools.tmf.core.event.ITmfTimestamp;\r
 import org.eclipse.linuxtools.tmf.core.event.TmfEvent;\r
-import org.eclipse.linuxtools.tmf.core.event.TmfEventContent;\r
 import org.eclipse.linuxtools.tmf.core.event.TmfEventField;\r
 import org.eclipse.linuxtools.tmf.core.event.TmfTimeRange;\r
 import org.eclipse.linuxtools.tmf.core.event.TmfTimestamp;\r
@@ -238,11 +237,11 @@ public class TmfEventsTable extends TmfComponent implements IGotoMarker, IColorS
 \r
         // Set the default column field ids if this is not a subclass\r
         if (Arrays.equals(columnData, COLUMN_DATA)) {\r
-            fTable.getColumns()[0].setData(Key.FIELD_ID, TmfEventContent.FIELD_ID_TIMESTAMP);\r
-            fTable.getColumns()[1].setData(Key.FIELD_ID, TmfEventContent.FIELD_ID_SOURCE);\r
-            fTable.getColumns()[2].setData(Key.FIELD_ID, TmfEventContent.FIELD_ID_TYPE);\r
-            fTable.getColumns()[3].setData(Key.FIELD_ID, TmfEventContent.FIELD_ID_REFERENCE);\r
-            fTable.getColumns()[4].setData(Key.FIELD_ID, TmfEventContent.FIELD_ID_CONTENT);\r
+            fTable.getColumns()[0].setData(Key.FIELD_ID, ITmfEvent.EVENT_FIELD_TIMESTAMP);\r
+            fTable.getColumns()[1].setData(Key.FIELD_ID, ITmfEvent.EVENT_FIELD_SOURCE);\r
+            fTable.getColumns()[2].setData(Key.FIELD_ID, ITmfEvent.EVENT_FIELD_TYPE);\r
+            fTable.getColumns()[3].setData(Key.FIELD_ID, ITmfEvent.EVENT_FIELD_REFERENCE);\r
+            fTable.getColumns()[4].setData(Key.FIELD_ID, ITmfEvent.EVENT_FIELD_CONTENT);\r
         }\r
 \r
         // Set the frozen row for header row\r
@@ -1375,13 +1374,12 @@ public class TmfEventsTable extends TmfComponent implements IGotoMarker, IColorS
     protected TmfEventField[] extractItemFields(TmfEvent event) {\r
         TmfEventField[] fields = new TmfEventField[0];\r
         if (event != null) {\r
-            ITmfEventContent content = event.getContent();\r
             fields = new TmfEventField[] {\r
-                     new TmfEventField(content, TmfEventContent.FIELD_ID_TIMESTAMP, ((Long) event.getTimestamp().getValue()).toString()),\r
-                     new TmfEventField(content, TmfEventContent.FIELD_ID_SOURCE, event.getSource()),\r
-                     new TmfEventField(content, TmfEventContent.FIELD_ID_TYPE, event.getType().getId()),\r
-                     new TmfEventField(content, TmfEventContent.FIELD_ID_REFERENCE, event.getReference()),\r
-                     new TmfEventField(content, TmfEventContent.FIELD_ID_CONTENT, event.getContent().toString())\r
+                     new TmfEventField(ITmfEvent.EVENT_FIELD_TIMESTAMP, ((Long) event.getTimestamp().getValue()).toString()),\r
+                     new TmfEventField(ITmfEvent.EVENT_FIELD_SOURCE, event.getSource()),\r
+                     new TmfEventField(ITmfEvent.EVENT_FIELD_TYPE, event.getType().getName()),\r
+                     new TmfEventField(ITmfEvent.EVENT_FIELD_REFERENCE, event.getReference()),\r
+                     new TmfEventField(ITmfEvent.EVENT_FIELD_CONTENT, event.getContent().toString())\r
                     };\r
         }\r
         return fields;\r
index c257c9f7c973ca82851d3e72a63ad8e3d88997e8..ed056de09409eae1a26c5ff8305a0e3b091279a4 100644 (file)
@@ -341,7 +341,7 @@ class FilterViewer extends Composite {
                                 TmfEvent event = (TmfEvent) ce.createExecutableExtension(TmfTraceType.EVENT_TYPE_ATTR);\r
                                 ITmfEventType eventType = event.getType();\r
                                 if (eventType != null) {\r
-                                    for (String field : eventType.getFieldLabels()) {\r
+                                    for (String field : eventType.getRootField().getFieldNames()) {\r
                                         fieldsList.add(field);\r
                                     }\r
                                 }\r
@@ -380,7 +380,7 @@ class FilterViewer extends Composite {
                     if (eventType != null) {\r
                         fieldsList.add("[" + TmfTraceType.getCategoryName(ce.getAttribute(TmfTraceType.CATEGORY_ATTR)) + //$NON-NLS-1$\r
                                 " : " + ce.getAttribute(TmfTraceType.NAME_ATTR) + "]"); //$NON-NLS-1$ //$NON-NLS-2$\r
-                        for (String field : eventType.getFieldLabels()) {\r
+                        for (String field : eventType.getFieldNames()) {\r
                             fieldsList.add(field);\r
                         }\r
                         fieldsList.add(""); //$NON-NLS-1$\r
index fc8a1a5a6a759efa030e987c3365683fe22318ba..7e7d5d408d9882d530546b4f5c2959b728be9dfd 100644 (file)
@@ -27,7 +27,6 @@ import org.eclipse.linuxtools.tmf.core.component.TmfComponent;
 import org.eclipse.linuxtools.tmf.core.event.ITmfTimestamp;
 import org.eclipse.linuxtools.tmf.core.event.TmfEvent;
 import org.eclipse.linuxtools.tmf.core.event.TmfEventField;
-import org.eclipse.linuxtools.tmf.core.event.TmfNoSuchFieldException;
 import org.eclipse.linuxtools.tmf.core.event.TmfTimeRange;
 import org.eclipse.linuxtools.tmf.core.event.TmfTimestamp;
 import org.eclipse.linuxtools.tmf.core.experiment.TmfExperiment;
@@ -1332,22 +1331,18 @@ public class TmfUml2SDSyncLoader extends TmfComponent implements IUml2SDLoader,
         //type = .*RECEIVE.* or .*SEND.*
         //content = sender:<sender name>:receiver:<receiver name>,signal:<signal name>
         String eventType = tmfEvent.getType().toString();
-        if (eventType.contains(Messages.TmfUml2SDSyncCloader_EventTypeSend) || 
-                eventType.contains(Messages.TmfUml2SDSyncCloader_EventTypeReceive)) {
-            try {
-                Object sender = tmfEvent.getContent().getField(Messages.TmfUml2SDSyncCloader_FieldSender);
-                Object receiver = tmfEvent.getContent().getField(Messages.TmfUml2SDSyncCloader_FieldReceiver);
-                Object name = tmfEvent.getContent().getField(Messages.TmfUml2SDSyncCloader_FieldSignal);
-                if ((sender instanceof TmfEventField) && (receiver instanceof TmfEventField) && (name instanceof TmfEventField)) { 
-                    ITmfSyncSequenceDiagramEvent sdEvent = new TmfSyncSequenceDiagramEvent(tmfEvent, 
-                            ((TmfEventField)sender).getValue().toString(), 
-                            ((TmfEventField)receiver).getValue().toString(), 
-                            ((TmfEventField)name).getValue().toString());
-
-                    return sdEvent;
-                }
-            } catch (TmfNoSuchFieldException e) {
-            } 
+        if (eventType.contains(Messages.TmfUml2SDSyncCloader_EventTypeSend) || eventType.contains(Messages.TmfUml2SDSyncCloader_EventTypeReceive)) {
+            Object sender = tmfEvent.getContent().getField(Messages.TmfUml2SDSyncCloader_FieldSender);
+            Object receiver = tmfEvent.getContent().getField(Messages.TmfUml2SDSyncCloader_FieldReceiver);
+            Object name = tmfEvent.getContent().getField(Messages.TmfUml2SDSyncCloader_FieldSignal);
+            if ((sender instanceof TmfEventField) && (receiver instanceof TmfEventField) && (name instanceof TmfEventField)) {
+                ITmfSyncSequenceDiagramEvent sdEvent = new TmfSyncSequenceDiagramEvent(tmfEvent,
+                                ((TmfEventField) sender).getValue().toString(),
+                                ((TmfEventField) receiver).getValue().toString(),
+                                ((TmfEventField) name).getValue().toString());
+
+                return sdEvent;
+            }
         }
         return null;
     }
This page took 0.097474 seconds and 5 git commands to generate.