001/*
002 * CREDIT SUISSE IS WILLING TO LICENSE THIS SPECIFICATION TO YOU ONLY UPON THE CONDITION THAT YOU
003 * ACCEPT ALL OF THE TERMS CONTAINED IN THIS AGREEMENT. PLEASE READ THE TERMS AND CONDITIONS OF THIS
004 * AGREEMENT CAREFULLY. BY DOWNLOADING THIS SPECIFICATION, YOU ACCEPT THE TERMS AND CONDITIONS OF
005 * THE AGREEMENT. IF YOU ARE NOT WILLING TO BE BOUND BY IT, SELECT THE "DECLINE" BUTTON AT THE
006 * BOTTOM OF THIS PAGE. Specification: JSR-354 Money and Currency API ("Specification") Copyright
007 * (c) 2012-2013, Credit Suisse All rights reserved.
008 */
009package org.javamoney.moneta;
010
011import java.lang.annotation.Documented;
012import java.lang.annotation.ElementType;
013import java.lang.annotation.Retention;
014import java.lang.annotation.RetentionPolicy;
015import java.lang.annotation.Target;
016
017/**
018 * Annotation used for prioritizing multiple services of the same type. The resulting order can be
019 * used, for defining the order within a chain of services, or to select the implementation to be
020 * used.
021 * 
022 * @author Anatole Tresch
023 */
024@Target(ElementType.TYPE)
025@Retention(RetentionPolicy.RUNTIME)
026@Documented
027public @interface ServicePriority {
028        
029        /** Normal priority. */
030        public static final int NORM_PRIORITY = 0;
031        /** Low priority. */
032        public static final int LOW_PRIORITY = -100;
033        /** High priority. */
034        public static final int HIGH_PRIORITY = 100;
035        
036        /** The priority value. */
037        int value();
038}