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