Author: tcurdt Date: Thu Oct 20 16:16:35 2005 New Revision: 327035 URL: http://svn.apache.org/viewcvs?rev=327035&view=rev Log: support for the compilation problem handler
Modified: jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/compilers/JavaCompiler.java jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/compilers/eclipse/EclipseJavaCompiler.java jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/compilers/groovy/GroovyJavaCompiler.java jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/compilers/janino/JaninoJavaCompiler.java jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/problems/CompilationProblemHandler.java Modified: jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/compilers/JavaCompiler.java URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/compilers/JavaCompiler.java?rev=327035&r1=327034&r2=327035&view=diff ============================================================================== --- jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/compilers/JavaCompiler.java (original) +++ jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/compilers/JavaCompiler.java Thu Oct 20 16:16:35 2005 @@ -28,12 +28,6 @@ void setCompilationProblemHandler( final CompilationProblemHandler pHandler ); - // addCompilationProblemHandler( CompilationProblemHandler pHandler ); - // removeCompilationProblemHandler( CompilationProblemHandler pHandler ); - - // addCompilationProblemListener( CompilationProblemListener pListener ); - // removeCompilationProblemListener( CompilationProblemListener pListener ); - CompilationResult compile( final String[] pClazzNames, final ResourceReader pReader, Modified: jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/compilers/eclipse/EclipseJavaCompiler.java URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/compilers/eclipse/EclipseJavaCompiler.java?rev=327035&r1=327034&r2=327035&view=diff ============================================================================== --- jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/compilers/eclipse/EclipseJavaCompiler.java (original) +++ jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/compilers/eclipse/EclipseJavaCompiler.java Thu Oct 20 16:16:35 2005 @@ -27,6 +27,7 @@ import java.util.Set; import java.util.StringTokenizer; import org.apache.commons.jci.compilers.AbstractJavaCompiler; +import org.apache.commons.jci.problems.CompilationProblem; import org.apache.commons.jci.readers.ResourceReader; import org.apache.commons.jci.stores.ResourceStore; import org.apache.commons.lang.StringUtils; @@ -235,8 +236,11 @@ final IProblem[] iproblems = result.getProblems(); for (int i = 0; i < iproblems.length; i++) { final IProblem iproblem = iproblems[i]; - // call handler - problems.add(new EclipseCompilationProblem(iproblem)); + final CompilationProblem problem = new EclipseCompilationProblem(iproblem); + if (problemHandler != null) { + problemHandler.handle(problem); + } + problems.add(problem); } } if (!result.hasErrors()) { Modified: jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/compilers/groovy/GroovyJavaCompiler.java URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/compilers/groovy/GroovyJavaCompiler.java?rev=327035&r1=327034&r2=327035&view=diff ============================================================================== --- jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/compilers/groovy/GroovyJavaCompiler.java (original) +++ jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/compilers/groovy/GroovyJavaCompiler.java Thu Oct 20 16:16:35 2005 @@ -7,6 +7,7 @@ import java.util.List; import org.apache.commons.jci.compilers.AbstractJavaCompiler; import org.apache.commons.jci.compilers.CompilationResult; +import org.apache.commons.jci.problems.CompilationProblem; import org.apache.commons.jci.readers.ResourceReader; import org.apache.commons.jci.stores.ResourceStore; import org.apache.commons.logging.Log; @@ -69,7 +70,11 @@ if (warnings != null) { for (final Iterator it = warnings.iterator(); it.hasNext();) { final WarningMessage warning = (WarningMessage) it.next(); - problems.add(new GroovyCompilationProblem(warning)); + final CompilationProblem problem = new GroovyCompilationProblem(warning); + if (problemHandler != null) { + problemHandler.handle(problem); + } + problems.add(problem); } } @@ -77,7 +82,11 @@ if (errors != null) { for (final Iterator it = errors.iterator(); it.hasNext();) { final Message message = (Message) it.next(); - problems.add(new GroovyCompilationProblem(message)); + final CompilationProblem problem = new GroovyCompilationProblem(message); + if (problemHandler != null) { + problemHandler.handle(problem); + } + problems.add(problem); } } } catch (CompilationFailedException e) { Modified: jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/compilers/janino/JaninoJavaCompiler.java URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/compilers/janino/JaninoJavaCompiler.java?rev=327035&r1=327034&r2=327035&view=diff ============================================================================== --- jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/compilers/janino/JaninoJavaCompiler.java (original) +++ jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/compilers/janino/JaninoJavaCompiler.java Thu Oct 20 16:16:35 2005 @@ -27,6 +27,7 @@ import java.util.Map; import org.apache.commons.jci.compilers.AbstractJavaCompiler; import org.apache.commons.jci.compilers.CompilationResult; +import org.apache.commons.jci.problems.CompilationProblem; import org.apache.commons.jci.problems.CompilationProblemHandler; import org.apache.commons.jci.readers.ResourceReader; import org.apache.commons.jci.stores.ResourceStore; @@ -55,7 +56,7 @@ private final static Log log = LogFactory.getLog(JaninoJavaCompiler.class); - private static class CompilingIClassLoader extends IClassLoader { + private class CompilingIClassLoader extends IClassLoader { private final Map types = new HashMap(); private final ResourceReader resourceReader; @@ -92,12 +93,20 @@ final UnitCompiler uc = new UnitCompiler(unit, this); uc.setCompileErrorHandler(new ErrorHandler() { public void handleError(final String pMessage, final Location pOptionalLocation) throws CompileException { - problems.add(new JaninoCompilationProblem(pOptionalLocation, pMessage, true)); + final CompilationProblem problem = new JaninoCompilationProblem(pOptionalLocation, pMessage, true); + if (problemHandler != null) { + problemHandler.handle(problem); + } + problems.add(problem); } }); uc.setWarningHandler(new WarningHandler() { public void handleWarning(final String pHandle, final String pMessage, final Location pOptionalLocation) { - problems.add(new JaninoCompilationProblem(pOptionalLocation, pMessage, false)); + final CompilationProblem problem = new JaninoCompilationProblem(pOptionalLocation, pMessage, false); + if (problemHandler != null) { + problemHandler.handle(problem); + } + problems.add(problem); } }); log.debug("compile " + className); Modified: jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/problems/CompilationProblemHandler.java URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/problems/CompilationProblemHandler.java?rev=327035&r1=327034&r2=327035&view=diff ============================================================================== --- jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/problems/CompilationProblemHandler.java (original) +++ jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci/problems/CompilationProblemHandler.java Thu Oct 20 16:16:35 2005 @@ -17,9 +17,19 @@ /** + * A CompilationProblemHandler gets access to a problem + * as soon as the problem is available while the + * CompilationResult only represents a summary at the + * end. + * The handler can be used to asynchronously update a + * GUI or stop compilation by returning false (e.g. + * when a maximum number of erros has been reached) + * + * NOTE: + * has to be supported by the compiler implementation!! + * * @author tcurdt - * */ public interface CompilationProblemHandler { - void handle( final CompilationProblem pProblem ); + boolean handle( final CompilationProblem pProblem ); } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]