* @param method
*/
private void analyzeDeleteMethod(final AnnotatedMethod aMethod) {
Method method = aMethod.getMethod();
Delete annotation = aMethod.getAnnotation(Delete.class);
String name = annotation.name();
if(name.length() == 0) {
name = method.getName();
}
assertUniqueName(deleteMethods, Delete.class, name);
if(annotation.isDefault() && defaultDeleteMethod != null) {
throw new IllegalAnnotationUsageException("At least two methods are annotated with the '"+ Delete.class.getName() +"' annotation having the isDefault on true. Only one method per class is allowed to be the default delete method.");
}
if(method.getParameterTypes().length == 0) {
throw new IllegalAnnotationUsageException("The Delete annotated method '"+ method +"' of the DAO class '"+ daoClass.getName() +"' doesn't have a parameter, which it needs.");
}
if(method.getParameterTypes().length > 1) {
throw new IllegalAnnotationUsageException("The Delete annotated method '"+ method +"' the DAO class '"+ daoClass.getName() +"' has more then 1 parameter, which isn't allowed.");
}
boolean returnsEntity = !method.isAnnotationPresent(ReturnsNoEntity.class);
EntityMethod deleteMethod = new EntityMethod(method, returnsEntity);
if(annotation.isDefault()) {
defaultDeleteMethod = deleteMethod;
}
deleteMethods.put(name, deleteMethod);
}