ThrowableVisualizer.java

biz/hammurapi/swing/ThrowableVisualizer.java

Violations

Inspector Message Severity Location
Java Inspector 048 Copyrights information should be present in each file. 1
Java Inspector 049 Use a Collection instead of arrays Object[] 2 48:66
Java Inspector 089 Type is not documented 2 37:1
Java Inspector 089 Undocumented method 2 40:9
Java Inspector 089 Undocumented method 2 43:25
Java Inspector 089 Undocumented method 2 46:41
Java Inspector 089 Undocumented method 2 58:41
Java Inspector 089 Undocumented method 2 83:25
Java Inspector 089 Undocumented method 2 87:25
Java Inspector 025 Avoid hardwired numeric literals. Allowed literals: [1, -1, 0] 3 59:114
Java Inspector 025 Avoid hardwired numeric literals. Allowed literals: [1, -1, 0] 3 59:118
Java Inspector 025 Avoid hardwired numeric literals. Allowed literals: [1, -1, 0] 3 59:121
Java Inspector 025 Avoid hardwired numeric literals. Allowed literals: [1, -1, 0] 3 67:80
Java Inspector 025 Avoid hardwired numeric literals. Allowed literals: [1, -1, 0] 3 68:86
Java Inspector 025 Avoid hardwired numeric literals. Allowed literals: [1, -1, 0] 3 88:76
Java Inspector 025 Avoid hardwired numeric literals. Allowed literals: [1, -1, 0] 3 88:79
Java Inspector 025 Avoid hardwired numeric literals. Allowed literals: [1, -1, 0] 3 96:57
Java Inspector 025 Avoid hardwired numeric literals. Allowed literals: [1, -1, 0] 3 97:72
Java Inspector 025 Avoid hardwired numeric literals. Allowed literals: [1, -1, 0] 3 99:55
Java Inspector 025 Avoid hardwired numeric literals. Allowed literals: [1, -1, 0] 3 100:88
Java Inspector 025 Avoid hardwired numeric literals. Allowed literals: [1, -1, 0] 3 102:57
Java Inspector 025 Avoid hardwired numeric literals. Allowed literals: [1, -1, 0] 3 103:88
Java Inspector 026 Avoid hardwired string literals. Allowed literals: [] 3 50:103
Java Inspector 026 Avoid hardwired string literals. Allowed literals: [] 3 60:87
Java Inspector 026 Avoid hardwired string literals. Allowed literals: [] 3 60:99
Java Inspector 026 Avoid hardwired string literals. Allowed literals: [] 3 61:63
Java Inspector 026 Avoid hardwired string literals. Allowed literals: [] 3 63:63
Java Inspector 026 Avoid hardwired string literals. Allowed literals: [] 3 67:71
Java Inspector 026 Avoid hardwired string literals. Allowed literals: [] 3 89:71
Java Inspector 026 Avoid hardwired string literals. Allowed literals: [] 3 89:83
Java Inspector 026 Avoid hardwired string literals. Allowed literals: [] 3 90:47
Java Inspector 026 Avoid hardwired string literals. Allowed literals: [] 3 93:47
Java Inspector 026 Avoid hardwired string literals. Allowed literals: [] 3 96:47
Java Inspector 026 Avoid hardwired string literals. Allowed literals: [] 3 99:47
Java Inspector 026 Avoid hardwired string literals. Allowed literals: [] 3 102:47
Java Inspector 026 Avoid hardwired string literals. Allowed literals: [] 3 103:74
Java Inspector 026 Avoid hardwired string literals. Allowed literals: [] 3 103:82

Source code

1/*
2 * hgcommons 9
3 * Hammurapi Group Common Library
4 * Copyright (C) 2003 Hammurapi Group
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2 of the License, or (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 *
20 * URL: http://www.hammurapi.biz/hammurapi-biz/ef/xmenu/hammurapi-group/products/products/hgcommons/index.html
21 * e-Mail: support@hammurapi.biz
22 */
23package biz.hammurapi.swing;
24
25import java.util.ArrayList;
26import java.util.List;
27
28import javax.swing.table.DefaultTableModel;
29import javax.swing.table.TableModel;
30import javax.swing.tree.TreeNode;
31
32/**
33 * @author Pavel Vlasov
34 *
35 * @version $Revision: 1.1 $
36 */
37public class ThrowableVisualizer {
38
39
40 public Visualizable convert(final Throwable th) {
41 return new Visualizable() {
42
43 public TreeNode toTreeNode(TreeNode parent, String title) {
44 return new LazyTreeNodeTableVisualizable(parent, title) {
45
46 protected List loadChildren() {
47 ArrayList ret = new ArrayList();
48 StackTraceElement[] st = th.getStackTrace();
49 for (int i=0; i<st.length; i++) {
50 TreeNode ev=ThrowableVisualizer.this.toTreeNode(this, "frame", st[i]);
51 if (ev!=null) {
52 ret.add(ev);
53 }
54 }
55 return ret;
56 }
57
58 public TableModel toTable() {
59 DefaultTableModel tm=new DefaultTableModel(th.getCause()==null ? 2 : 3, 2);
60 tm.setColumnIdentifiers(new String[] {"Property", "Value"});
61 tm.setValueAt("Class", 0, 0);
62 tm.setValueAt(th.getClass().getName(), 0, 1);
63 tm.setValueAt("Message", 1, 0);
64 tm.setValueAt(th.getMessage(), 1, 1);
65
66 if (th.getCause()!=null) {
67 tm.setValueAt("Cause", 2, 0);
68 tm.setValueAt(th.getCause(), 2, 1);
69 }
70
71 return tm;
72 }
73
74 };
75 }
76
77 };
78 }
79
80 private TreeNode toTreeNode(final TreeNode parent, final String title, final StackTraceElement element) {
81 return new LazyTreeNodeTableVisualizable(parent, title) {
82
83 protected List loadChildren() {
84 return new ArrayList();
85 }
86
87 public TableModel toTable() {
88 DefaultTableModel tm=new DefaultTableModel(5, 2);
89 tm.setColumnIdentifiers(new String[] {"Property", "Value"});
90 tm.setValueAt("Class", 0, 0);
91 tm.setValueAt(element.getClassName(), 0, 1);
92
93 tm.setValueAt("File", 1, 0);
94 tm.setValueAt(element.getFileName(), 1, 1);
95
96 tm.setValueAt("Method", 2, 0);
97 tm.setValueAt(element.getMethodName(), 2, 1);
98
99 tm.setValueAt("Line", 3, 0);
100 tm.setValueAt(String.valueOf(element.getLineNumber()), 3, 1);
101
102 tm.setValueAt("Native", 4, 0);
103 tm.setValueAt(element.isNativeMethod() ? "yes" : "no", 4, 1);
104
105
106 return tm;
107 }
108
109 };
110 }
111}
112