1 /*******************************************************************************
2 * Copyright (c) 2011 Ericsson
4 * All rights reserved. This program and the accompanying materials are
5 * made available under the terms of the Eclipse Public License v1.0 which
6 * accompanies this distribution, and is available at
7 * http://www.eclipse.org/legal/epl-v10.html
10 * Bernd Hufmann - Initial API and implementation
11 *******************************************************************************/
12 package org
.eclipse
.linuxtools
.tmf
.ui
.tests
.uml2sd
.trace
;
14 import java
.io
.EOFException
;
15 import java
.io
.IOException
;
16 import java
.io
.RandomAccessFile
;
18 import org
.eclipse
.linuxtools
.tmf
.core
.event
.ITmfEventField
;
19 import org
.eclipse
.linuxtools
.tmf
.core
.event
.TmfEvent
;
20 import org
.eclipse
.linuxtools
.tmf
.core
.event
.TmfEventField
;
21 import org
.eclipse
.linuxtools
.tmf
.core
.event
.TmfEventType
;
22 import org
.eclipse
.linuxtools
.tmf
.core
.event
.TmfTimestamp
;
23 import org
.eclipse
.linuxtools
.tmf
.core
.parser
.ITmfEventParser
;
24 import org
.eclipse
.linuxtools
.tmf
.core
.trace
.ITmfContext
;
25 import org
.eclipse
.linuxtools
.tmf
.core
.trace
.ITmfTrace
;
26 import org
.eclipse
.linuxtools
.tmf
.core
.trace
.TmfLocation
;
27 import org
.eclipse
.linuxtools
.tmf
.tests
.stubs
.trace
.TmfTraceStub
;
29 public class TmfUml2SDTestTrace
implements ITmfEventParser
<TmfEvent
> {
32 @SuppressWarnings({ "unchecked", "nls" })
33 public TmfEvent
parseNextEvent(ITmfTrace
<TmfEvent
> eventStream
, ITmfContext context
) throws IOException
{
34 if (! (eventStream
instanceof TmfTraceStub
)) {
38 // Highly inefficient...
39 RandomAccessFile stream
= ((TmfTraceStub
) eventStream
).getStream();
41 // String name = eventStream.getName();
42 // name = name.substring(name.lastIndexOf('/') + 1);
46 location
= ((TmfLocation
<Long
>) (context
.getLocation())).getLocation();
47 stream
.seek(location
);
50 long ts
= stream
.readLong();
51 String source
= stream
.readUTF();
52 String type
= stream
.readUTF();
53 String reference
= stream
.readUTF();
54 String sender
= stream
.readUTF();
55 String receiver
= stream
.readUTF();
56 String signal
= stream
.readUTF();
58 String
[] labels
= {"sender", "receiver", "signal"};
60 TmfEventType tmfEventType
= new TmfEventType("UnitTest", type
, TmfEventField
.makeRoot(labels
));
64 content
+= "," + receiver
;
65 content
+= "," + signal
;
68 // Pre-parse the content
69 TmfEventField
[] fields
= new TmfEventField
[3];
70 fields
[0] = new TmfEventField("sender", sender
);
71 fields
[1] = new TmfEventField("receiver", receiver
);
72 fields
[2] = new TmfEventField("signal", signal
);
74 ITmfEventField tmfContent
= new TmfEventField(ITmfEventField
.ROOT_FIELD_ID
, content
, fields
);
75 TmfEvent tmfEvent
= new TmfEvent(eventStream
, new TmfTimestamp(ts
, -9), source
, tmfEventType
, tmfContent
, reference
);
78 } catch (EOFException e
) {