this.noAtAspectJAnnotationProcessing = noAtAspectJProcessing;
this.incrementalCompilationState = incrementalCompilationState;
- if (compiler.options.complianceLevel >= ClassFileConstants.JDK1_5)
+ if (compiler.options.complianceLevel >= ClassFileConstants.JDK1_5) {
inJava5Mode = true;
+ }
IMessageHandler msgHandler = world.getMessageHandler();
// Do we need to reset the message handler or create a new one? (This saves a ton of memory lost on incremental compiles...)
if (msgHandler instanceof WeaverMessageHandler) {
* weaving.
*/
public void afterDietParsing(CompilationUnitDeclaration[] units) {
- if (debugPipeline)
+ if (debugPipeline) {
System.err.println("> afterDietParsing: there are " + (units == null ? 0 : units.length) + " units to sort");
+ }
if (!reportedErrors && units != null) {
for (int i = 0; i < units.length; i++) {
List aspects = new ArrayList();
List nonaspects = new ArrayList();
for (int i = 0; i < units.length; i++) {
- if (containsAnAspect(units[i]))
+ if (containsAnAspect(units[i])) {
aspects.add(units[i]);
- else
+ } else {
nonaspects.add(units[i]);
+ }
}
// ...and put them back together, aspects first
// Work out how long to stall the pipeline
toWaitFor = aspects.size();
- if (debugPipeline)
+ if (debugPipeline) {
System.err.println("< afterDietParsing: stalling pipeline for " + toWaitFor + " source files");
+ }
// TESTING
if (pipelineTesting) {
- if (pipelineOutput == null)
+ if (pipelineOutput == null) {
pipelineOutput = new Hashtable();
+ }
pipelineOutput.put("filesContainingAspects", new Integer(toWaitFor).toString());
StringBuffer order = new StringBuffer();
order.append("[");
for (int i = 0; i < units.length; i++) {
- if (i != 0)
+ if (i != 0) {
order.append(",");
+ }
CompilationUnitDeclaration declaration = units[i];
String filename = new String(declaration.getFileName());
int idx = filename.lastIndexOf('/');
- if (idx > 0)
+ if (idx > 0) {
filename = filename.substring(idx + 1);
+ }
idx = filename.lastIndexOf('\\');
- if (idx > 0)
+ if (idx > 0) {
filename = filename.substring(idx + 1);
+ }
order.append(filename);
}
order.append("]");
}
public void beforeProcessing(CompilationUnitDeclaration unit) {
- if (debugPipeline)
+ if (debugPipeline) {
System.err.println("compiling " + new String(unit.getFileName()));
+ }
eWorld.showMessage(IMessage.INFO, "compiling " + new String(unit.getFileName()), null, null);
processingToken = CompilationAndWeavingContext.enteringPhase(CompilationAndWeavingContext.PROCESSING_COMPILATION_UNIT, unit
.getFileName());
}
public void afterResolving(CompilationUnitDeclaration unit) {
- if (resolvingToken != null)
+ if (resolvingToken != null) {
CompilationAndWeavingContext.leavingPhase(resolvingToken);
+ }
}
public void beforeAnalysing(CompilationUnitDeclaration unit) {
}
public void afterAnalysing(CompilationUnitDeclaration unit) {
- if (analysingToken != null)
+ if (analysingToken != null) {
CompilationAndWeavingContext.leavingPhase(analysingToken);
+ }
}
public void beforeGenerating(CompilationUnitDeclaration unit) {
}
public void afterGenerating(CompilationUnitDeclaration unit) {
- if (generatingToken != null)
+ if (generatingToken != null) {
CompilationAndWeavingContext.leavingPhase(generatingToken);
+ }
}
public void afterCompiling(CompilationUnitDeclaration[] units) {
// acceptResult(unit.compilationResult);
// } else {
try {
- if (weaveQueuedEntries())
+ if (weaveQueuedEntries()) {
droppingBackToFullBuild = true;
+ }
} catch (IOException ex) {
AbortCompilation ac = new AbortCompilation(null, ex);
throw ac;
// AbortCompilation ac = new AbortCompilation(null,ex);
// throw ac;
} catch (RuntimeException rEx) {
- if (rEx instanceof AbortCompilation)
+ if (rEx instanceof AbortCompilation) {
throw rEx; // Don't wrap AbortCompilation exceptions!
+ }
// This will be unwrapped in Compiler.handleInternalException() and the nested
// RuntimeException thrown back to the original caller - which is AspectJ
CompilationAndWeavingContext.leavingPhase(processingToken);
eWorld.finishedCompilationUnit(unit);
InterimCompilationResult intRes = new InterimCompilationResult(unit.compilationResult, outputFileNameProvider);
- if (unit.compilationResult.hasErrors())
+ if (unit.compilationResult.hasErrors()) {
reportedErrors = true;
+ }
if (intermediateResultsRequestor != null) {
intermediateResultsRequestor.acceptResult(intRes);
private void queueForWeaving(InterimCompilationResult intRes) {
resultsPendingWeave.add(intRes);
if (pipelineStalled) {
- if (resultsPendingWeave.size() >= toWaitFor)
+ if (resultsPendingWeave.size() >= toWaitFor) {
pipelineStalled = false;
+ }
}
- if (pipelineStalled)
+ if (pipelineStalled) {
return;
+ }
try {
- if (weaveQueuedEntries())
+ if (weaveQueuedEntries()) {
droppingBackToFullBuild = true;
+ }
} catch (IOException ex) {
AbortCompilation ac = new AbortCompilation(null, ex);
throw ac;
/** Return true if we've decided to drop back to a full build (too much has changed) */
private boolean weaveQueuedEntries() throws IOException {
- if (debugPipeline)
+ if (debugPipeline) {
System.err.println(">.weaveQueuedEntries()");
+ }
for (Iterator iter = resultsPendingWeave.iterator(); iter.hasNext();) {
InterimCompilationResult iresult = (InterimCompilationResult) iter.next();
for (int i = 0; i < iresult.unwovenClassFiles().length; i++) {
- weaver.addClassFile(iresult.unwovenClassFiles()[i],false);
+ weaver.addClassFile(iresult.unwovenClassFiles()[i], false);
}
}
ensureWeaverInitialized(); // by doing this only once, are we saying needToReweaveWorld can't change once the aspects have
// been stuffed into the weaver?
- if (weaver.needToReweaveWorld() && !isBatchCompile)
+ if (weaver.needToReweaveWorld() && !isBatchCompile) {
return true;
+ }
weaver.weave(new WeaverAdapter(this, weaverMessageHandler, progressListener));
resultsPendingWeave.clear(); // dont need to do those again
this.eWorld.minicleanup();
- if (debugPipeline)
+ if (debugPipeline) {
System.err.println("<.weaveQueuedEntries()");
+ }
return false;
}
private void ensureWeaverInitialized() {
- if (weaverInitialized)
+ if (weaverInitialized) {
return;
+ }
weaverInitialized = true;
weaver.setIsBatchWeave(isBatchCompile);
weaver.prepareForWeave();
// }
private void postWeave() {
- if (debugPipeline)
+ if (debugPipeline) {
System.err.println("> postWeave()");
+ }
IMessageHandler imh = weaver.getWorld().getMessageHandler();
- if (imh instanceof WeaverMessageHandler)
+ if (imh instanceof WeaverMessageHandler) {
((WeaverMessageHandler) imh).setCurrentResult(null);
- if (!droppingBackToFullBuild)
+ }
+ if (!droppingBackToFullBuild) {
weaver.allWeavingComplete();
+ }
weaver.tidyUp();
- if (imh instanceof WeaverMessageHandler)
+ if (imh instanceof WeaverMessageHandler) {
((WeaverMessageHandler) imh).resetCompiler(null);
- if (debugPipeline)
+ }
+ if (debugPipeline) {
System.err.println("< postWeave()");
+ }
}
/**
if (typeDecls != null) {
for (int i = 0; i < typeDecls.length; i++) { // loop through top level types in the file
TypeDeclaration declaration = typeDecls[i];
- if (isAspect(declaration))
+ if (isAspect(declaration)) {
return true;
+ }
if (declaration.memberTypes != null) {
TypeDeclaration[] memberTypes = declaration.memberTypes;
for (int j = 0; j < memberTypes.length; j++) { // loop through inner types
- if (containsAnAspect(memberTypes[j]))
+ if (containsAnAspect(memberTypes[j])) {
return true;
+ }
}
}
}
}
private boolean containsAnAspect(TypeDeclaration tDecl) {
- if (isAspect(tDecl))
+ if (isAspect(tDecl)) {
return true;
+ }
if (tDecl.memberTypes != null) {
TypeDeclaration[] memberTypes = tDecl.memberTypes;
for (int j = 0; j < memberTypes.length; j++) { // loop through inner types
- if (containsAnAspect(memberTypes[j]))
+ if (containsAnAspect(memberTypes[j])) {
return true;
+ }
}
}
return false;
private boolean isAspect(TypeDeclaration declaration) {
// avoid an NPE when something else is wrong in this system ... the real problem will be reported elsewhere
- if (declaration.staticInitializerScope == null)
+ if (declaration.staticInitializerScope == null) {
return false;
- if (declaration instanceof AspectDeclaration)
+ }
+ if (declaration instanceof AspectDeclaration) {
return true; // code style
- else if (declaration.annotations != null) { // check for annotation style
+ } else if (declaration.annotations != null) { // check for annotation style
for (int index = 0; index < declaration.annotations.length; index++) {
TypeDeclaration
.resolveAnnotations(declaration.staticInitializerScope, declaration.annotations, declaration.binding); // force
// annotation
// resolution
Annotation a = declaration.annotations[index];
- if (a.resolvedType == null)
+ if (a.resolvedType == null) {
continue; // another problem is being reported, so don't crash here
- if (CharOperation.equals(a.resolvedType.signature(), aspectSig))
+ }
+ if (CharOperation.equals(a.resolvedType.signature(), aspectSig)) {
return true;
+ }
}
}
return false;
//
public static String getPipelineDebugOutput(String key) {
- if (pipelineOutput == null)
+ if (pipelineOutput == null) {
return "";
+ }
return (String) pipelineOutput.get(key);
}