Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

TestMessageHandler.java 2.8KB

17 anos atrás
13 anos atrás
17 anos atrás
13 anos atrás
9 anos atrás
13 anos atrás
17 anos atrás
13 anos atrás
9 anos atrás
13 anos atrás
17 anos atrás
13 anos atrás
17 anos atrás
13 anos atrás
17 anos atrás
13 anos atrás
17 anos atrás
13 anos atrás
17 anos atrás
9 anos atrás
17 anos atrás
13 anos atrás
9 anos atrás
17 anos atrás
13 anos atrás
17 anos atrás
13 anos atrás
17 anos atrás
13 anos atrás
17 anos atrás
13 anos atrás
17 anos atrás
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. /********************************************************************
  2. * Copyright (c) 2007 Contributors. All rights reserved.
  3. * This program and the accompanying materials are made available
  4. * under the terms of the Eclipse Public License v1.0
  5. * which accompanies this distribution and is available at
  6. * http://eclipse.org/legal/epl-v10.html
  7. *
  8. * Contributors: IBM Corporation - initial API and implementation
  9. * Helen Hawkins - initial version
  10. *******************************************************************/
  11. package org.aspectj.ajde.core;
  12. import java.util.ArrayList;
  13. import java.util.List;
  14. import org.aspectj.bridge.AbortException;
  15. import org.aspectj.bridge.IMessage;
  16. import org.aspectj.bridge.IMessage.Kind;
  17. /**
  18. * Test implementation of IBuildMessageHandler. By default it ignores INFO and WEAVEINFO messages. Stores all messages it's not
  19. * ignoring in an ArrayList and ERRORS and ABORTS also in a separate ArrayList enabling users to query whether anything went wrong
  20. * with the build.
  21. */
  22. public class TestMessageHandler implements IBuildMessageHandler {
  23. private List<Kind> ignoring;
  24. private List<TestMessage> messages;
  25. private List<TestMessage> errors;
  26. public TestMessageHandler() {
  27. ignoring = new ArrayList<Kind>();
  28. messages = new ArrayList<TestMessage>();
  29. errors = new ArrayList<TestMessage>();
  30. ignore(IMessage.INFO);
  31. ignore(IMessage.WEAVEINFO);
  32. }
  33. public boolean handleMessage(IMessage message) throws AbortException {
  34. IMessage.Kind kind = message.getKind();
  35. if (isIgnoring(kind)) {
  36. return true;
  37. }
  38. TestMessage t = new TestMessage(message);
  39. messages.add(t);
  40. if (kind.equals(IMessage.ABORT) || message.getThrown() != null) {
  41. System.err.println("> AjCompiler error: " + message.getMessage()); //$NON-NLS-1$
  42. message.getThrown().printStackTrace();
  43. errors.add(t);
  44. } else if (kind.equals(IMessage.ERROR)) {
  45. errors.add(t);
  46. }
  47. System.out.println("> " + message); //$NON-NLS-1$
  48. return true;
  49. }
  50. public void dontIgnore(Kind kind) {
  51. if (null != kind) {
  52. ignoring.remove(kind);
  53. }
  54. }
  55. public boolean isIgnoring(Kind kind) {
  56. return ((null != kind) && (ignoring.contains(kind)));
  57. }
  58. public void ignore(Kind kind) {
  59. if ((null != kind) && (!ignoring.contains(kind))) {
  60. ignoring.add(kind);
  61. }
  62. }
  63. public List<TestMessage> getMessages() {
  64. return messages;
  65. }
  66. public List<TestMessage> getErrors() {
  67. return errors;
  68. }
  69. public static class TestMessage {
  70. IMessage message;
  71. public TestMessage(IMessage m) {
  72. message = m;
  73. }
  74. public IMessage getContainedMessage() {
  75. return message;
  76. }
  77. public String toString() {
  78. String loc = "<no location>";
  79. if (null != message.getSourceLocation()) {
  80. loc = message.getSourceLocation().getSourceFile() + ":" + message.getSourceLocation().getLine();
  81. }
  82. return "TestMessage [" + message.getMessage() + ", " + loc + ", " + message.getKind() + "]";
  83. }
  84. }
  85. }