org.aspectj.internal.lang.reflect.DeclarePrecedenceImpl Maven / Gradle / Ivy
The newest version!
/* *******************************************************************
* Copyright (c) 2005 Contributors.
* All rights reserved.
* This program and the accompanying materials are made available
* under the terms of the Eclipse Public License v1.0
* which accompanies this distribution and is available at
* http://eclipse.org/legal/epl-v10.html
*
* Contributors:
* Adrian Colyer Initial implementation
* ******************************************************************/
package org.aspectj.internal.lang.reflect;
import java.util.StringTokenizer;
import org.aspectj.lang.reflect.AjType;
import org.aspectj.lang.reflect.DeclarePrecedence;
import org.aspectj.lang.reflect.TypePattern;
/**
* @author colyer
*
*/
public class DeclarePrecedenceImpl implements DeclarePrecedence {
private AjType> declaringType;
private TypePattern[] precedenceList;
private String precedenceString;
public DeclarePrecedenceImpl(String precedenceList, AjType declaring) {
this.declaringType = declaring;
this.precedenceString = precedenceList;
String toTokenize = precedenceList;
if (toTokenize.startsWith("(")) {
toTokenize = toTokenize.substring(1,toTokenize.length() - 1);
}
StringTokenizer strTok = new StringTokenizer(toTokenize,",");
this.precedenceList = new TypePattern[strTok.countTokens()];
for (int i = 0; i < this.precedenceList.length; i++) {
this.precedenceList[i] = new TypePatternImpl(strTok.nextToken().trim());
}
}
/* (non-Javadoc)
* @see org.aspectj.lang.reflect.DeclarePrecedence#getDeclaringType()
*/
public AjType getDeclaringType() {
return this.declaringType;
}
/* (non-Javadoc)
* @see org.aspectj.lang.reflect.DeclarePrecedence#getPrecedenceOrder()
*/
public TypePattern[] getPrecedenceOrder() {
return this.precedenceList;
}
public String toString() {
return "declare precedence : " + this.precedenceString;
}
}