/** * Filters the classes to be transformed. * * @param definition the definition * @param classMetaData the meta-data for the class * @param cg the class to filter * @return boolean true if the method should be filtered away */ private boolean classFilter( final AspectWerkzDefinition definition, final ClassMetaData classMetaData, final ClassGen cg) { if (cg.isInterface() || TransformationUtil.hasSuperClass( classMetaData, "org.codehaus.aspectwerkz.attribdef.aspect.Aspect") || TransformationUtil.hasSuperClass( classMetaData, "org.codehaus.aspectwerkz.xmldef.advice.AroundAdvice") || TransformationUtil.hasSuperClass( classMetaData, "org.codehaus.aspectwerkz.xmldef.advice.PreAdvice") || TransformationUtil.hasSuperClass( classMetaData, "org.codehaus.aspectwerkz.xmldef.advice.PostAdvice")) { return true; } String className = cg.getClassName(); if (definition.inExcludePackage(className)) { return true; } if (!definition.inIncludePackage(className)) { return true; } if (definition.hasExecutionPointcut(classMetaData) || definition.hasThrowsPointcut(classMetaData)) { return false; } return true; }