1 package com.silvermindsoftware.hitch;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 import java.util.ArrayList;
20 import java.util.List;
21
22
23
24
25 public class ErrorContext {
26
27 private static class ThreadLocalList extends ThreadLocal {
28 public Object initialValue() {
29 return new ArrayList<String>();
30 }
31
32 public List<String> getList() {
33 return (List<String>) super.get();
34 }
35 }
36
37 private static ThreadLocalList list = new ThreadLocalList();
38 private static String[] stringArray = new String[0];
39
40 public static void clear() {
41 list.getList().clear();
42 }
43
44 public static void put(String text) {
45 list.getList().add(text);
46 }
47
48 public static void removeLast() {
49 list.getList().remove(list.getList().size()-1);
50 }
51
52 public static String[] get() {
53 return (String[])list.getList().toArray(stringArray);
54 }
55
56 public static String getAsString() {
57 StringBuilder sb = new StringBuilder();
58 for(String error : list.getList()) {
59 sb.append(error).append('\n');
60 }
61 return sb.toString();
62 }
63
64 }