final String packageName) {
for (Iterator it2 = aspect.elementIterator(); it2.hasNext();) {
final Element nestedAdviceElement = (Element)it2.next();
if (nestedAdviceElement.getName().trim().equals("pointcut-def")) {
try {
final PointcutDefinition pointcutDef = new PointcutDefinition();
for (Iterator it3 = nestedAdviceElement.attributeIterator(); it3.hasNext();) {
Attribute attribute = (Attribute)it3.next();
final String name = attribute.getName().trim();
final String value = attribute.getValue().trim();
if (name.equals("name")) {
pointcutDef.setName(value);
}
else if (name.equals("type")) {
PointcutType type = null;
String expression = nestedAdviceElement.attributeValue("pattern");
if (expression==null || expression.length()==0)
expression = nestedAdviceElement.attributeValue("expression");
if (value.equalsIgnoreCase(METHOD)) {
type = PointcutType.EXECUTION;
pointcutDef.setExpression(PatternFactory.createMethodPattern(
expression, packageName
));
}
else if (value.equalsIgnoreCase(CFLOW)) {
//needed during AttributeC merge
type = PointcutType.CFLOW;
pointcutDef.setExpression(PatternFactory.createMethodPattern(
expression, packageName
));
}
else if (value.equalsIgnoreCase(SET_FIELD)) {
type = PointcutType.SET;
pointcutDef.setExpression(PatternFactory.createFieldPattern(
expression, packageName
));
}
else if (value.equalsIgnoreCase(GET_FIELD)) {
type = PointcutType.GET;
pointcutDef.setExpression(PatternFactory.createFieldPattern(
expression, packageName
));
}
else if (value.equalsIgnoreCase(THROWS)) {
type = PointcutType.THROWS;
pointcutDef.setExpression(PatternFactory.createThrowsPattern(
expression, packageName
));
}
else if (value.equalsIgnoreCase(CALLER_SIDE)) {
type = PointcutType.CALL;
pointcutDef.setExpression(PatternFactory.createCallPattern(
expression, packageName
));
}
else if (value.equalsIgnoreCase(CLASS)) {
type = PointcutType.CLASS;
pointcutDef.setExpression(PatternFactory.createClassPattern(
expression, packageName
));
}
pointcutDef.setType(type);
}
else if (name.equals("non-reentrant")) {
pointcutDef.setNonReentrant(value);
}
}
aspectDef.addPointcutDef(pointcutDef);
}
catch (Exception e) {