You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by tc...@apache.org on 2005/10/21 01:16:43 UTC

svn commit: r327035 - in /jakarta/commons/sandbox/jci/trunk/src/java/org/apache/commons/jci: compilers/ compilers/eclipse/ compilers/groovy/ compilers/janino/ problems/

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: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org