diff options
author | acolyer <acolyer> | 2005-09-01 17:09:49 +0000 |
---|---|---|
committer | acolyer <acolyer> | 2005-09-01 17:09:49 +0000 |
commit | d8442e7f2a1af534dddc827134d970e9812c881b (patch) | |
tree | 34703e3016e32501556b7b7f8e9be69c9285570f /ajde | |
parent | 6629e48dbff05751879a24c27623a3c923189a79 (diff) | |
download | aspectj-d8442e7f2a1af534dddc827134d970e9812c881b.tar.gz aspectj-d8442e7f2a1af534dddc827134d970e9812c881b.zip |
fix for pr102479, allow clients to provide a custom message handler / holder to be used in place of the default if so desired.
Diffstat (limited to 'ajde')
-rw-r--r-- | ajde/src/org/aspectj/ajde/Ajde.java | 15 | ||||
-rw-r--r-- | ajde/src/org/aspectj/ajde/internal/CompilerAdapter.java | 16 |
2 files changed, 22 insertions, 9 deletions
diff --git a/ajde/src/org/aspectj/ajde/Ajde.java b/ajde/src/org/aspectj/ajde/Ajde.java index fd08eeccc..06a382e1d 100644 --- a/ajde/src/org/aspectj/ajde/Ajde.java +++ b/ajde/src/org/aspectj/ajde/Ajde.java @@ -21,6 +21,7 @@ import org.aspectj.ajde.ui.StructureSearchManager; import org.aspectj.ajde.ui.StructureViewManager; import org.aspectj.ajde.ui.StructureViewNodeFactory; import org.aspectj.asm.AsmManager; +import org.aspectj.bridge.IMessageHandler; import org.aspectj.bridge.Version; import org.aspectj.util.LangUtil; import org.aspectj.util.Reflection; @@ -53,6 +54,7 @@ public class Ajde { private IdeUIAdapter ideUIAdapter; private ErrorHandler errorHandler; private PrintStream logPrintStream = null; + private IMessageHandler messageHandler = null; // allow provision of custom handler /** * This class can only be constructured by itself (as a singleton) or by sub-classes. @@ -114,6 +116,19 @@ public class Ajde { public void setConfigurationManager(BuildConfigManager configurationManager) { this.configurationManager = configurationManager; } + + /** + * Call this method with a custom IMessageHandler to override the default message + * handling. + * @param aHandler + */ + public void setMessageHandler(IMessageHandler aHandler) { + this.messageHandler = aHandler; + } + + public IMessageHandler getMessageHandler() { + return messageHandler; + } public BuildManager getBuildManager() { return buildManager; diff --git a/ajde/src/org/aspectj/ajde/internal/CompilerAdapter.java b/ajde/src/org/aspectj/ajde/internal/CompilerAdapter.java index 13dc99cf0..504f2b927 100644 --- a/ajde/src/org/aspectj/ajde/internal/CompilerAdapter.java +++ b/ajde/src/org/aspectj/ajde/internal/CompilerAdapter.java @@ -45,7 +45,7 @@ public class CompilerAdapter { // private Map optionsMap; private AjBuildManager buildManager = null; - private MessageHandlerAdapter messageHandler = null; + private IMessageHandler messageHandler = null; private BuildNotifierAdapter currNotifier = null; private boolean initialized = false; private boolean structureDirty = true; @@ -99,7 +99,6 @@ public class CompilerAdapter { buildConfig.setGenerateModelMode(buildModel); currNotifier = new BuildNotifierAdapter(progressMonitor, buildManager); buildManager.setProgressListener(currNotifier); - messageHandler.setBuildNotifierAdapter(currNotifier); String rtInfo = buildManager.checkRtJar(buildConfig); // !!! will get called twice if (rtInfo != null) { @@ -600,7 +599,11 @@ public class CompilerAdapter { private void init() { if (!initialized) { // XXX plug into AJDE initialization // Ajde.getDefault().setErrorHandler(new DebugErrorHandler()); - this.messageHandler = new MessageHandlerAdapter(); + if (Ajde.getDefault().getMessageHandler() != null) { + this.messageHandler = Ajde.getDefault().getMessageHandler(); + } else { + this.messageHandler = new MessageHandlerAdapter(); + } buildManager = new AjBuildManager(messageHandler); // XXX need to remove the properties file each time! initialized = true; @@ -609,8 +612,7 @@ public class CompilerAdapter { class MessageHandlerAdapter extends MessageHandler { private TaskListManager taskListManager; - private BuildNotifierAdapter buildNotifierAdapter; - + public MessageHandlerAdapter() { this.taskListManager = Ajde.getDefault().getTaskListManager(); } @@ -625,10 +627,6 @@ public class CompilerAdapter { taskListManager.addSourcelineTask(message); return super.handleMessage(message); // also store... } - // --------------- adje methods - public void setBuildNotifierAdapter(BuildNotifierAdapter buildNotifierAdapter) { - this.buildNotifierAdapter = buildNotifierAdapter; - } } public void setState(AjState buildState) { |