}
// add as visited
visitedInterfaces.add(itf);
// get meta data of the interface
EasyBeansEjbJarClassMetadata itfMetadata = visitingclassAnnotationMetadata.getLinkedClassMetadata(itf);
if (itfMetadata == null) {
logger.warn("No class was found for interface {0}.", itf);
continue;
}
// for each method of the interface, set the business method to true
// in bean
for (EasyBeansEjbJarMethodMetadata methodData : itfMetadata.getMethodMetadataCollection()) {
JMethod itfMethod = methodData.getJMethod();
// Ignore class init method
if (itfMethod.getName().equals(CLASS_INIT) || itfMethod.getName().equals(CONST_INIT)) {
continue;
}
// take the method from the bean class
EasyBeansEjbJarMethodMetadata beanMethod = beanclassAnnotationMetadata.getMethodMetadata(itfMethod);
if (beanMethod == null) {
// TODO: I18n
throw new IllegalStateException("No method was found for method " + itfMethod + " in class "
+ beanclassAnnotationMetadata.getClassName());
}
beanMethod.setBusinessMethod(true);
}
// loop again
if (itfMetadata.getInterfaces() != null) {
loop(beanclassAnnotationMetadata, itfMetadata, visitedInterfaces);
}
}
}