diff -r 0c9d42e88feb -r 1990493b64db langtools/src/share/classes/com/sun/tools/javac/api/ClientCodeWrapper.java --- a/langtools/src/share/classes/com/sun/tools/javac/api/ClientCodeWrapper.java Tue Feb 28 10:25:53 2012 -0800 +++ b/langtools/src/share/classes/com/sun/tools/javac/api/ClientCodeWrapper.java Tue Feb 28 10:33:49 2012 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -31,8 +31,13 @@ import java.io.OutputStream; import java.io.Reader; import java.io.Writer; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; import java.net.URI; import java.util.ArrayList; +import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.Iterator; @@ -41,25 +46,21 @@ import java.util.Map; import java.util.Set; +import javax.lang.model.element.Modifier; import javax.lang.model.element.NestingKind; import javax.tools.Diagnostic; +import javax.tools.DiagnosticListener; import javax.tools.FileObject; import javax.tools.JavaFileManager; import javax.tools.JavaFileManager.Location; import javax.tools.JavaFileObject; +import javax.tools.JavaFileObject.Kind; import com.sun.source.util.TaskEvent; import com.sun.source.util.TaskListener; import com.sun.tools.javac.util.ClientCodeException; import com.sun.tools.javac.util.Context; import com.sun.tools.javac.util.JCDiagnostic; -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; -import javax.lang.model.element.Modifier; -import javax.tools.DiagnosticListener; -import javax.tools.JavaFileObject.Kind; /** * Wrap objects to enable unchecked exceptions to be caught and handled. @@ -160,6 +161,20 @@ return new WrappedTaskListener(tl); } + TaskListener unwrap(TaskListener l) { + if (l instanceof WrappedTaskListener) + return ((WrappedTaskListener) l).clientTaskListener; + else + return l; + } + + Collection unwrap(Collection listeners) { + Collection c = new ArrayList(listeners.size()); + for (TaskListener l: listeners) + c.add(unwrap(l)); + return c; + } + @SuppressWarnings("unchecked") private Diagnostic unwrap(final Diagnostic diagnostic) { if (diagnostic instanceof JCDiagnostic) { @@ -181,6 +196,10 @@ return trusted; } + private String wrappedToString(Class wrapperClass, Object wrapped) { + return wrapperClass.getSimpleName() + "[" + wrapped + "]"; + } + // // FIXME: all these classes should be converted to use multi-catch when @@ -361,6 +380,11 @@ throw new ClientCodeException(e); } } + + @Override + public String toString() { + return wrappedToString(getClass(), clientJavaFileManager); + } } protected class WrappedFileObject implements FileObject { @@ -486,6 +510,11 @@ throw new ClientCodeException(e); } } + + @Override + public String toString() { + return wrappedToString(getClass(), clientFileObject); + } } protected class WrappedJavaFileObject extends WrappedFileObject implements JavaFileObject { @@ -544,6 +573,11 @@ throw new ClientCodeException(e); } } + + @Override + public String toString() { + return wrappedToString(getClass(), clientFileObject); + } } protected class WrappedDiagnosticListener implements DiagnosticListener { @@ -565,6 +599,11 @@ throw new ClientCodeException(e); } } + + @Override + public String toString() { + return wrappedToString(getClass(), clientDiagnosticListener); + } } public class DiagnosticSourceUnwrapper implements Diagnostic { @@ -610,6 +649,7 @@ return d.getMessage(locale); } + @Override public String toString() { return d.toString(); } @@ -647,6 +687,11 @@ throw new ClientCodeException(e); } } + + @Override + public String toString() { + return wrappedToString(getClass(), clientTaskListener); + } } //