本文整理汇总了Java中javax.tools.Diagnostic.getLineNumber方法的典型用法代码示例。如果您正苦于以下问题:Java Diagnostic.getLineNumber方法的具体用法?Java Diagnostic.getLineNumber怎么用?Java Diagnostic.getLineNumber使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类javax.tools.Diagnostic
的用法示例。
在下文中一共展示了Diagnostic.getLineNumber方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: createSrcSpan
import javax.tools.Diagnostic; //导入方法依赖的package包/类
public static Spannable createSrcSpan(Resources resources, @NonNull Diagnostic diagnostic) {
if (diagnostic.getSource() == null) {
return new SpannableString("Unknown");
}
if (!(diagnostic.getSource() instanceof JavaFileObject)) {
return new SpannableString(diagnostic.getSource().toString());
}
try {
JavaFileObject source = (JavaFileObject) diagnostic.getSource();
File file = new File(source.getName());
String name = file.getName();
String line = diagnostic.getLineNumber() + ":" + diagnostic.getColumnNumber();
SpannableString span = new SpannableString(name + ":" + line);
span.setSpan(new ForegroundColorSpan(resources.getColor(R.color.dark_color_diagnostic_file)),
0, span.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
return span;
} catch (Exception e) {
}
return new SpannableString(diagnostic.getSource().toString());
}
示例2: report
import javax.tools.Diagnostic; //导入方法依赖的package包/类
@Override
public void report(Diagnostic<? extends JavaFileObject> diagnostic) {
if (diagnostic.getKind() == javax.tools.Diagnostic.Kind.ERROR) {
String message = diagnostic.toString() + " (" + diagnostic.getCode() + ")";
logger.error(message);
Location loc = new Location( //
diagnostic.getSource().toString(), //
(short) diagnostic.getLineNumber(), //
(short) diagnostic.getColumnNumber() //
);
// Wrap the exception in a RuntimeException, because "report()"
// does not declare checked exceptions.
throw new RuntimeException(new CompileException(message, loc));
} else if (logger.isTraceEnabled()) {
logger.trace(diagnostic.toString() + " (" + diagnostic.getCode() + ")");
}
}
示例3: compileFile
import javax.tools.Diagnostic; //导入方法依赖的package包/类
@SafeVarargs
private final void compileFile( JavacTool javacTool, JavaFileManager fileManager, String file, Pair<IssueMsg, Integer>... msgs ) throws IOException, URISyntaxException
{
DiagnosticCollector<JavaFileObject> dc = new DiagnosticCollector<>();
String content = StreamUtil.getContent( StreamUtil.getInputStreamReader( getClass().getResourceAsStream( file ) ) );
SourceFile srcFile = new SourceFile( file, content );
StringWriter errors = new StringWriter();
JavacTaskImpl javacTask = (JavacTaskImpl)javacTool.getTask( errors, fileManager, dc, Collections.singletonList( "-Xplugin:Manifold" ), null, Collections.singletonList( srcFile ) );
javacTask.call();
outer:
for( Pair<IssueMsg, Integer> msg : msgs )
{
for( Diagnostic<? extends JavaFileObject> d : dc.getDiagnostics() )
{
if( d.getLineNumber() == msg.getSecond() )
{
if( msg.getFirst().isMessageSimilar( d.getMessage( Locale.getDefault() ) ) )
{
continue outer;
}
}
}
fail( "Did not find issue: " + msg.getFirst().get() + " at line: " + msg.getSecond() );
}
}
示例4: ensureCompilable
import javax.tools.Diagnostic; //导入方法依赖的package包/类
private void ensureCompilable(FileObject file) throws IOException, AssertionError, IllegalArgumentException {
CompilationInfo info = parse(file);
assertNotNull(info);
for (Diagnostic d : info.getDiagnostics()) {
if (d.getKind() == Diagnostic.Kind.ERROR)
throw new AssertionError(d.getLineNumber() + ":" + d.getColumnNumber() + " " + d.getMessage(null));
}
}
示例5: brokenPlatform
import javax.tools.Diagnostic; //导入方法依赖的package包/类
public static void brokenPlatform(
@NonNull final Context ctx,
@NonNull final Iterable<? extends CompileTuple> files,
@NullAllowed final Diagnostic<JavaFileObject> diagnostic) {
if (diagnostic == null) {
return;
}
final Diagnostic<JavaFileObject> error = new Diagnostic<JavaFileObject>() {
@Override
public Kind getKind() {
return Kind.ERROR;
}
@Override
public JavaFileObject getSource() {
return diagnostic.getSource();
}
@Override
public long getPosition() {
return diagnostic.getPosition();
}
@Override
public long getStartPosition() {
return diagnostic.getStartPosition();
}
@Override
public long getEndPosition() {
return diagnostic.getEndPosition();
}
@Override
public long getLineNumber() {
return diagnostic.getLineNumber();
}
@Override
public long getColumnNumber() {
return diagnostic.getColumnNumber();
}
@Override
public String getCode() {
return diagnostic.getCode();
}
@Override
public String getMessage(Locale locale) {
return diagnostic.getMessage(locale);
}
};
for (CompileTuple file : files) {
if (!file.virtual) {
ErrorsCache.setErrors(
ctx.getRootURI(),
file.indexable,
Collections.<Diagnostic<JavaFileObject>>singleton(error),
ERROR_CONVERTOR);
}
}
}
示例6: getLineNumber
import javax.tools.Diagnostic; //导入方法依赖的package包/类
@Override
public int getLineNumber(Diagnostic<?> t) {
return (int) t.getLineNumber();
}