{
ClassInfo declaringCI = mi.getDeclaringClass();
// direct == check is OK
if (declaringCI != objectTI && visitedMethods.contains(mi) == false)
{
Signature mis = new MethodSignature(mi);
MetaData cmdr = retrieval.getComponentMetaData(mis);
if (cmdr != null)
{
if (methodPlugins == null)
methodPlugins = getPlugins(ElementType.METHOD, METHOD_FILTER, annotationClasses);
for(T plugin : methodPlugins)
{
if (isApplyPhase)
applyPlugin(plugin, mi, cmdr, handle);
else
cleanPlugin(plugin, mi, cmdr, handle);
}
}
else if (trace)
log.trace("No annotations for " + mi);
}
}
}
else if (trace)
log.trace("No methods");
// static methods
MethodInfo[] staticMethods = getStaticMethods(classInfo);
if (staticMethods != null && staticMethods.length != 0)
{
for(MethodInfo smi : staticMethods)
{
if (smi.isStatic() && smi.isPublic())
{
Signature mis = new MethodSignature(smi);
MetaData cmdr = retrieval.getComponentMetaData(mis);
if (cmdr != null)
{
if (methodPlugins == null)
methodPlugins = getPlugins(ElementType.METHOD, METHOD_FILTER, annotationClasses);