langtools/src/share/classes/com/sun/tools/javac/util/AbstractDiagnosticFormatter.java
equal
deleted
inserted
replaced
25 package com.sun.tools.javac.util; |
25 package com.sun.tools.javac.util; |
26 |
26 |
27 import java.util.Collection; |
27 import java.util.Collection; |
28 import java.util.Locale; |
28 import java.util.Locale; |
29 import javax.tools.JavaFileObject; |
29 import javax.tools.JavaFileObject; |
|
30 import java.util.ResourceBundle; |
30 |
31 |
31 import com.sun.tools.javac.api.DiagnosticFormatter; |
32 import com.sun.tools.javac.api.DiagnosticFormatter; |
32 import com.sun.tools.javac.api.Formattable; |
33 import com.sun.tools.javac.api.Formattable; |
33 import com.sun.tools.javac.api.DiagnosticFormatter.PositionKind; |
34 import com.sun.tools.javac.api.DiagnosticFormatter.PositionKind; |
34 import com.sun.tools.javac.file.JavacFileManager; |
35 import com.sun.tools.javac.file.JavacFileManager; |
46 * |
47 * |
47 */ |
48 */ |
48 public abstract class AbstractDiagnosticFormatter implements DiagnosticFormatter<JCDiagnostic> { |
49 public abstract class AbstractDiagnosticFormatter implements DiagnosticFormatter<JCDiagnostic> { |
49 |
50 |
50 /** |
51 /** |
51 * Messages object used by this formatter for i18n |
52 * JavacMessages object used by this formatter for i18n |
52 */ |
53 */ |
53 protected Messages messages; |
54 protected JavacMessages messages; |
54 |
55 |
55 /** |
56 /** |
56 * Initialize an AbstractDiagnosticFormatter by setting its Messages object |
57 * Initialize an AbstractDiagnosticFormatter by setting its JavacMessages object |
57 * @param messages |
58 * @param messages |
58 */ |
59 */ |
59 protected AbstractDiagnosticFormatter(Messages messages) { |
60 protected AbstractDiagnosticFormatter(JavacMessages messages) { |
60 this.messages = messages; |
61 this.messages = messages; |
61 } |
62 } |
62 |
63 |
63 public String formatMessage(JCDiagnostic d, Locale l) { |
64 public String formatMessage(JCDiagnostic d, Locale l) { |
64 //this code should rely on the locale settings but it's not! See RFE 6443132 |
65 //this code should rely on the locale settings but it's not! See RFE 6443132 |
129 return formatIterable(d, (Iterable<?>)arg, l); |
130 return formatIterable(d, (Iterable<?>)arg, l); |
130 } |
131 } |
131 else if (arg instanceof JavaFileObject) |
132 else if (arg instanceof JavaFileObject) |
132 return JavacFileManager.getJavacBaseFileName((JavaFileObject)arg); |
133 return JavacFileManager.getJavacBaseFileName((JavaFileObject)arg); |
133 else if (arg instanceof Formattable) |
134 else if (arg instanceof Formattable) |
134 return ((Formattable)arg).toString(Messages.getDefaultBundle()); |
135 return ((Formattable)arg).toString(l, messages); |
135 else |
136 else |
136 return String.valueOf(arg); |
137 return String.valueOf(arg); |
137 } |
138 } |
138 |
139 |
139 /** |
140 /** |
162 * @param key locale-independent key used for looking up in a resource file |
163 * @param key locale-independent key used for looking up in a resource file |
163 * @param args localization arguments |
164 * @param args localization arguments |
164 * @return a locale-dependent string |
165 * @return a locale-dependent string |
165 */ |
166 */ |
166 protected String localize(Locale l, String key, Object... args) { |
167 protected String localize(Locale l, String key, Object... args) { |
167 return messages.getLocalizedString(key, args); |
168 return messages.getLocalizedString(l, key, args); |
168 } |
169 } |
169 } |
170 } |