You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

PatternNodeVisitor.java 4.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. /*******************************************************************************
  2. * Copyright (c) 2005 Contributors.
  3. * All rights reserved.
  4. * This program and the accompanying materials are made available
  5. * under the terms of the Eclipse Public License v1.0
  6. * which accompanies this distribution and is available at
  7. * http://eclipse.org/legal/epl-v10.html
  8. *
  9. * Contributors:
  10. * Alexandre Vasseur initial implementation
  11. * Adrian Colyer refactoring for traversal and grouping by kind
  12. *******************************************************************************/
  13. package org.aspectj.weaver.patterns;
  14. /**
  15. * A Pointcut or TypePattern visitor
  16. *
  17. * @author Alexandre Vasseur (alex AT gnilux DOT com)
  18. */
  19. public interface PatternNodeVisitor {
  20. // Annotation type patterns
  21. Object visit(AndAnnotationTypePattern node, Object data);
  22. Object visit(AnyAnnotationTypePattern node, Object data);
  23. Object visit(EllipsisAnnotationTypePattern node, Object data);
  24. Object visit(ExactAnnotationTypePattern node, Object data);
  25. Object visit(BindingAnnotationTypePattern node, Object data);
  26. Object visit(NotAnnotationTypePattern node, Object data);
  27. Object visit(OrAnnotationTypePattern node, Object data);
  28. Object visit(WildAnnotationTypePattern node, Object data);
  29. Object visit(AnnotationPatternList node, Object data);
  30. // Regular type patterns
  31. Object visit(AndTypePattern node, Object data);
  32. Object visit(AnyTypePattern node, Object data);
  33. Object visit(AnyWithAnnotationTypePattern node, Object data);
  34. Object visit(EllipsisTypePattern node, Object data);
  35. Object visit(ExactTypePattern node, Object data);
  36. Object visit(BindingTypePattern node, Object data);
  37. Object visit(NotTypePattern node, Object data);
  38. Object visit(NoTypePattern node, Object data);
  39. Object visit(OrTypePattern node, Object data);
  40. Object visit(WildTypePattern node, Object data);
  41. Object visit(TypePatternList node, Object data);
  42. Object visit(HasMemberTypePattern node, Object data);
  43. Object visit(TypeCategoryTypePattern node, Object data);
  44. // Pointcuts
  45. Object visit(AndPointcut node, Object data);
  46. Object visit(CflowPointcut node, Object data);
  47. Object visit(ConcreteCflowPointcut node, Object data);
  48. Object visit(HandlerPointcut node, Object data);
  49. Object visit(IfPointcut node, Object data);
  50. Object visit(KindedPointcut node, Object data);
  51. Object visit(Pointcut.MatchesNothingPointcut node, Object data);
  52. Object visit(AnnotationPointcut node, Object data);
  53. Object visit(ArgsAnnotationPointcut node, Object data);
  54. Object visit(ArgsPointcut node, Object data);
  55. Object visit(ThisOrTargetAnnotationPointcut node, Object data);
  56. Object visit(ThisOrTargetPointcut node, Object data);
  57. Object visit(WithinAnnotationPointcut node, Object data);
  58. Object visit(WithinCodeAnnotationPointcut node, Object data);
  59. Object visit(NotPointcut node, Object data);
  60. Object visit(OrPointcut node, Object data);
  61. Object visit(ReferencePointcut node, Object data);
  62. Object visit(WithinPointcut node, Object data);
  63. Object visit(WithincodePointcut node, Object data);
  64. // Per-clauses
  65. Object visit(PerCflow node, Object data);
  66. Object visit(PerFromSuper node, Object data);
  67. Object visit(PerObject node, Object data);
  68. Object visit(PerSingleton node, Object data);
  69. Object visit(PerTypeWithin node, Object data);
  70. // Declares
  71. Object visit(DeclareAnnotation node, Object data);
  72. Object visit(DeclareErrorOrWarning node, Object data);
  73. Object visit(DeclareParents node, Object data);
  74. Object visit(DeclarePrecedence node, Object data);
  75. Object visit(DeclareSoft node, Object data);
  76. // Miscellaneous patterns
  77. Object visit(ModifiersPattern node, Object data);
  78. Object visit(NamePattern node, Object data);
  79. Object visit(SignaturePattern node, Object data);
  80. Object visit(ThrowsPattern node, Object data);
  81. Object visit(TypeVariablePattern node, Object data);
  82. Object visit(TypeVariablePatternList node,Object data);
  83. // Catch-all
  84. Object visit(PatternNode node, Object data);
  85. }