001package io.avaje.inject;
002
003import java.lang.annotation.Documented;
004import java.lang.annotation.Retention;
005import java.lang.annotation.Target;
006
007import static java.lang.annotation.ElementType.TYPE;
008import static java.lang.annotation.RetentionPolicy.RUNTIME;
009
010/**
011 * The <code>Priority</code> annotation can be applied to classes to indicate
012 * in what order they should be returned via @{@link BeanScope#listByPriority(Class)}.
013 * <p>
014 * Beans can be returned using other Priority annotation such as <code>javax.annotation.Priority</code>
015 * or any custom priority annotation that has an <code>int value()</code> attribute.
016 * </p>
017 *
018 * @see BeanScope#listByPriority(Class)
019 * @see BeanScope#listByPriority(Class, Class)
020 */
021@Documented
022@Retention(RUNTIME)
023@Target(TYPE)
024public @interface Priority {
025  int value();
026}