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.

DeclarePrecedenceImpl.java 1.7KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  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. * Adrian Colyer Initial implementation
  11. * ******************************************************************/
  12. package org.aspectj.internal.lang.reflect;
  13. import java.util.StringTokenizer;
  14. import org.aspectj.lang.reflect.AjType;
  15. import org.aspectj.lang.reflect.DeclarePrecedence;
  16. import org.aspectj.lang.reflect.TypePattern;
  17. /**
  18. * @author colyer
  19. *
  20. */
  21. public class DeclarePrecedenceImpl implements DeclarePrecedence {
  22. private AjType<?> declaringType;
  23. private TypePattern[] precedenceList;
  24. private String precedenceString;
  25. public DeclarePrecedenceImpl(String precedenceList, AjType declaring) {
  26. this.declaringType = declaring;
  27. this.precedenceString = precedenceList;
  28. String toTokenize = precedenceList;
  29. if (toTokenize.startsWith("(")) {
  30. toTokenize = toTokenize.substring(1,toTokenize.length() - 1);
  31. }
  32. StringTokenizer strTok = new StringTokenizer(toTokenize,",");
  33. this.precedenceList = new TypePattern[strTok.countTokens()];
  34. for (int i = 0; i < this.precedenceList.length; i++) {
  35. this.precedenceList[i] = new TypePatternImpl(strTok.nextToken().trim());
  36. }
  37. }
  38. public AjType getDeclaringType() {
  39. return this.declaringType;
  40. }
  41. public TypePattern[] getPrecedenceOrder() {
  42. return this.precedenceList;
  43. }
  44. public String toString() {
  45. return "declare precedence : " + this.precedenceString;
  46. }
  47. }