Wednesday, June 07, 2006

AOP and Java Annotations

In this post I wish to show how the combination of annotations and AOP can be used to perform a "parameter cannot be null" validation in a class' method.

Suppose we have the following method that is executed only if the parameter value is not null:


public void serviceNotAllowedNullParameter(Object param){
if( param != null ){

System.out.println(param.toString());

//do something...

}

}


One possibility is to include the same code if (copy paste the same code pattern) in all methods that need this behavior. Another one ( much more elegant ) is design a solution based on AOP and Annotations. Let’s start by defining the NotNullParameter annotation as following:

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)

public @interface NotNullParameter {

}


Now, we proceed to decorate the method with the @NotNullParameter:

@NotNullParameter
public void serviceNotAllowedNullParameter(Object param){

if( param != null ){

System.out.println(param.toString());

//do something...
}
}


Though, so far we don’t do any magic. We need to find the (fashion) way to process all annotations that were defined in our code in order to add the necessary logic to perform the check validation. So… a good idea would be to use an Aspect!


void around(Object param):
execution(@NotNullParameter void ar.adalon..*.*(Object+) ) &&

args(param){

if( param == null ){

return;

}

proceed(param);

}


The preceding code is read as simple as “Intercept all the execution of any method of any package or sub package of ar.adalon that accept one parameter (of type or subtype of object… hence is any instance) and is decorated with the @NotNullParameter annotation”. The around advise allows to continue (procced) or terminate (return;) with the intercepted method’s execution. Now, we can simplify our service to:


@NotNullParameter
public void serviceNotAllowedNullParameter(Object param){
System.out.println(param.toString());
//do something...
}

By this way, I intended to show you how AOP crosscutting allow to break up the business logic and additional validations .


I leave some helpful links concerning annotations:

http://java.sun.com/j2se/1.5.0/docs/guide/language/annotations.html
http://www.developer.com/java/other/article.php/10936_3556176_1
http://java.sun.com/developer/technicalArticles/releases/j2se15/
http://www-128.ibm.com/developerworks/java/library/j-annotate1/
http://www-128.ibm.com/developerworks/library/j-annotate2.html
http://www.devsource.com/article2/0,1895,1949936,00.asp


Labels:


Comments:

شركة احباب طيبةشركةمتميزة بجميع الخدمات المنزلية المميزة التى تقدمها باقل الاسعار وعلى ايدى عمالة مدربة وذو خبرة ومن الخدمات التى تقدمها احباب طيبة بمدينة مكة
شركة نقل عفش بمكة
شركة تنظيف بمكة
شركة مكافحة حشرات بمكة
شركة عزل بمكة

 

شركة سباكة بجدة:
الكثير منا لا يملك الخبرة الكافية ليقوم بإجراء السباكة وصيانتها ولكن لا داعي للقلق فشركة سباحة بجدة توفر لهذا الخدمة أفضل مجموعة من السباكين المحترفين في هذا المجال فلا تتردد الآن بالاتصال سباك بجدة وأسعار الشركة رخيصة جداً ومناسبة للجميع ومن أهم مميزات شركتنا أيضاً أنها تقوم بالالتزام بكافة المواعيد التي يتم الاتفاق عليها مع العملاء.
وتعرف على باقى خدماتنا بجدة
سباك بجدة
كهربائي بجدة
شركة تمديد الغاز المركزي بجدة

 

شركة احباب طيبة شركة لا مثيل لها فى تقديم الخدمات المنزلية فهي تقدم لجميع عملاؤ جدة جميع الخدمات التى تشمل التنظيف والمكافحة والعزل وكل ذلكباقل الاعسار وعلى ايدى خبراء فى المجال ومن خلال احدث الاجهزة التى تجعلنا نقوم بالعمل فى اقل وقت ممكن تعرف الان على خدماتنا
شركة شراء اثاث مستعمل بجدة
شركة نقل عفش بجدة
شركة تنظيف بجدة
شركة مكافحة حشرات بجدة
شركة تنظيف خزانات بجدة
شركة عزل بجدة
 
شركة التفاؤل شركة نقل عفش بالدمام تقوم بعمل خطة متكاملة لـ نقل عفش بالدمام حيث تقوم بتجزئة عملية نقل العفش الى عدة خطوات كل منها مكملة للاخر لضمان السلامة التامة لكل المنقولات والممتلكات .
تتميز شركة التفاؤل شركة نقل اثاث بالدمام بفريق عمل متخصص ومميز يقوم بخدمات نقل العفش باعلى مستوى من الجودة والاتقان.
اقوى الخدمات بافضل الاسعار مع التفاؤل لـ نقل اثاث بالدمام
لا تقتصر خدمات شركة التفاؤل فى منطقة الدمام فحسب ولكن ايضا فى :

شركة نقل اثاث بالدمام

شركة نقل اثاث بالقطيف

شركة نقل اثاث بالخبر

شركة نقل اثاث بالجبيل


 
شركة تنظيف بالرياض نحن نسعي دائما ان نكون من افضل الشركات فى مجال التنظيف فنعمل جاهدين على تقديم افل الخدمات وخصوصا تنظيف المنازل وذلك يتم من خىل
شركة تنظيف منازل بالرياض التى تستخدم افضل الوسائل والطرق فى التنظيف لتجعل المنزل كانه قطعة من الجنة مميز بالروائح الجميلة اتصل الان واحصل على الخدمة
http://elawaeil.com/%D8%B4%D8%B1%D9%83%D8%A9-%D8%AA%D9%86%D8%B8%D9%8A%D9%81-%D9%85%D9%86%D8%A7%D8%B2%D9%84-%D8%B1%D8%AE%D9%8A%D8%B5%D8%A9-%D8%A8%D8%A7%D9%84%D8%B1%D9%8A%D8%A7%D8%B6/

للتواصل 0500091013

 
Post a Comment



<< Home

This page is powered by Blogger. Isn't yours?