Friday 12 May 2017

Java Tutorial: Annotations in java | Java annotations [repeating Annotations in Java - Schedule]


Click here to watch in Youtube : 
https://www.youtube.com/watch?v=t9cNw4-xi0c&list=UUhwKlOVR041tngjerWxVccw

ServerRestartSchedule.java
import java.lang.annotation.Repeatable;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

/*
 * Step 1: Declare a Repeatable Annotation Type
 * 
 * The annotation type must be marked with the
 * 
 * @Repeatable meta-annotation.
 * 
 * The value of the @Repeatable meta-annotation, in
 * parentheses, is the type of the container
 * annotation that the Java compiler generates to
 * store repeating annotations. In this example, the
 * containing annotation type is Schedules, so
 * repeating @Schedule annotations is stored in an
 * @Schedules annotation.
 */

@Repeatable(Schedules.class)
@interface Schedule
    {

        String dayOfMonth() default "first";

        String dayOfWeek() default "Mon";

        int hour() default 12;
    }

/*
 * Step 2: Declare the Containing Annotation Type
 * 
 * The containing annotation type must have a value element
 * with an array type. The component type of the array type
 * must be the repeatable annotation type.
 */
@Retention(RetentionPolicy.RUNTIME)
@interface Schedules
    {
        Schedule[] value();
    }

@Schedule
@Schedule(dayOfMonth = "second", dayOfWeek = "Tue", hour = 17)
@Schedule(dayOfMonth = "third", dayOfWeek = "Wed", hour = 24)
public class ServerRestartSchedule
{

}
RepeatingAnnotations.java
public class RepeatingAnnotations
{

    public static void main(String[] args)
    {

        /*
         * Retrieving Annotations using Reflection API
         * method
         */
        Schedules schedules = ServerRestartSchedule.class
                .getAnnotation(Schedules.class);
        System.out.println(schedules);
        Schedule[] scheduleArray = schedules.value();
        for (Schedule schedule : scheduleArray)
        {
            System.out.println(schedule + " , dayOfMonth = "
                    + schedule.dayOfMonth() + " , dayOfWeek = "
                    + schedule.dayOfWeek() + " , hour = " + schedule.hour());
        }

    }
}
Output
@Schedules(value=[@Schedule(hour=12, dayOfMonth=first, dayOfWeek=Mon), 
@Schedule(hour=17, dayOfMonth=second, dayOfWeek=Tue), 
@Schedule(hour=24, dayOfMonth=third, dayOfWeek=Wed)])

@Schedule(hour=12, dayOfMonth=first, dayOfWeek=Mon) , 
dayOfMonth = first , dayOfWeek = Mon , hour = 12

@Schedule(hour=17, dayOfMonth=second, dayOfWeek=Tue) , 
dayOfMonth = second , dayOfWeek = Tue , hour = 17

@Schedule(hour=24, dayOfMonth=third, dayOfWeek=Wed) , 
dayOfMonth = third , dayOfWeek = Wed , hour = 24
Click the below link to download the code:
https://sites.google.com/site/ramj2eev1/home/javabasics/AnnotationDemo_Repeating_Sch_App.zip?attredirects=0&d=1

Github Link:
https://github.com/ramram43210/Java/tree/master/BasicJava/AnnotationDemo_Repeating_Sch_App

Bitbucket Link:
https://bitbucket.org/ramram43210/java/src/47d09ebb24294f7b507419345f38ec4cde27d544/BasicJava/AnnotationDemo_Repeating_Sch_App/?at=master

See also:
  • All JavaEE Viedos Playlist
  • All JavaEE Viedos
  • All JAVA EE Links
  • Servlets Tutorial
  • All Design Patterns Links
  • JDBC Tutorial
  • Java Collection Framework Tutorial
  • JAVA Tutorial
  • Kids Tutorial
  • No comments:

    Post a Comment