author | Jussi Ryoma <ext-jussi.s.ryoma@nokia.com> |
Tue, 20 Apr 2010 14:41:43 +0300 | |
changeset 4 | 615035072f7e |
child 16 | 72f198be1c1d |
permissions | -rw-r--r-- |
4
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
1 |
/* |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
2 |
* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
3 |
* All rights reserved. |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
4 |
* This component and the accompanying materials are made available |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
5 |
* under the terms of "Eclipse Public License v1.0" |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
6 |
* which accompanies this distribution, and is available |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
7 |
* at the URL "http://www.eclipse.org/legal/epl-v10.html". |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
8 |
* |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
9 |
* Initial Contributors: |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
10 |
* Nokia Corporation - initial contribution. |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
11 |
* |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
12 |
* Contributors: |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
13 |
* |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
14 |
* Description: |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
15 |
* |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
16 |
*/package com.nokia.s60tools.crashanalyser.containers; |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
17 |
|
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
18 |
import java.io.BufferedWriter; |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
19 |
import java.io.IOException; |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
20 |
import java.util.ArrayList; |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
21 |
import java.util.List; |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
22 |
|
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
23 |
import org.w3c.dom.Element; |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
24 |
import org.w3c.dom.Node; |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
25 |
import org.w3c.dom.NodeList; |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
26 |
|
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
27 |
public final class OstTrace { |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
28 |
|
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
29 |
private List<OstTraceLine> ostTraces; |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
30 |
|
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
31 |
/** |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
32 |
* Private constructor. |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
33 |
* @param traceLines Trace lines. |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
34 |
*/ |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
35 |
private OstTrace(List<OstTraceLine> traceLines) { |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
36 |
ostTraces = traceLines; |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
37 |
} |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
38 |
|
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
39 |
/** |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
40 |
* Writes traces in to a buffer (e.g. a text file) |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
41 |
* @param out where to write |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
42 |
* @throws IOException |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
43 |
*/ |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
44 |
public void writeTo(BufferedWriter out) throws IOException { |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
45 |
writeLine(out,""); |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
46 |
writeLine(out, "OST TRACE LOG:"); |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
47 |
writeLine(out, "-----------------"); |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
48 |
// if there are any events |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
49 |
if (ostTraces != null && !ostTraces.isEmpty()) { |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
50 |
// print events |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
51 |
for (OstTraceLine traceLine : ostTraces) { |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
52 |
String format = "%s : %s : %s : %s : %s : %s : %s : %s : %s : %s"; |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
53 |
String line = String.format(format, traceLine.getTimestamp(), traceLine.getTraceText(), |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
54 |
traceLine.getFile(), traceLine.getLineNumber(), traceLine.getType(), |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
55 |
traceLine.getContextId(), traceLine.getPrefix(), |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
56 |
traceLine.getComponent(), traceLine.getGroup(), traceLine.getId()); |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
57 |
writeLine(out, line); |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
58 |
} |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
59 |
} |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
60 |
} |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
61 |
|
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
62 |
/** |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
63 |
* Writes given line plus a line break. |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
64 |
* @param out where to write |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
65 |
* @param line what to write |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
66 |
* @throws IOException |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
67 |
*/ |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
68 |
void writeLine(BufferedWriter out, String line) throws IOException { |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
69 |
out.write(line); |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
70 |
out.newLine(); |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
71 |
} |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
72 |
|
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
73 |
/** |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
74 |
* Reads OST traces from an XML element |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
75 |
* @param elementSegTraces seg_traces tag |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
76 |
* @return a created OstTrace class or null |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
77 |
*/ |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
78 |
public static OstTrace read(Element elementSegOstTrace) { |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
79 |
List<OstTraceLine> traces = new ArrayList<OstTraceLine>(); |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
80 |
try { |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
81 |
|
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
82 |
// get all trace nodes |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
83 |
NodeList children = elementSegOstTrace.getChildNodes(); |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
84 |
if (children != null && children.getLength() > 0) { |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
85 |
// go through all line nodes |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
86 |
for (int i = 0; i < children.getLength(); i++) { |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
87 |
Node traceNode = children.item(i); |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
88 |
OstTraceLine traceLine = OstTraceLine.read(traceNode); |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
89 |
if(traceLine != null) { |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
90 |
traces.add(traceLine); |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
91 |
} |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
92 |
} |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
93 |
} |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
94 |
|
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
95 |
} catch (Exception e) { |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
96 |
// Do nothing. |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
97 |
} |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
98 |
return new OstTrace(traces); |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
99 |
} |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
100 |
|
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
101 |
|
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
102 |
/** |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
103 |
* Returns the trace lines. |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
104 |
* @return Trace lines |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
105 |
*/ |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
106 |
public List<OstTraceLine> getTraces() { |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
107 |
return ostTraces; |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
108 |
} |
615035072f7e
Crash Analyser Carbide extension v1.3
Jussi Ryoma <ext-jussi.s.ryoma@nokia.com>
parents:
diff
changeset
|
109 |
} |