1 /* 2 * Copyright (c) MuleSoft, Inc. All rights reserved. http://www.mulesoft.com 3 * The software in this package is published under the terms of the CPAL v1.0 4 * license, a copy of which has been included with this distribution in the 5 * LICENSE.txt file. 6 */ 7 package org.mule.api.annotations.meta; 8 9 import java.lang.annotation.ElementType; 10 import java.lang.annotation.Retention; 11 import java.lang.annotation.RetentionPolicy; 12 import java.lang.annotation.Target; 13 14 /** 15 * Marks a router annotation and provides the type. 16 */ 17 @Retention(RetentionPolicy.RUNTIME) 18 @Target({ElementType.ANNOTATION_TYPE }) 19 public @interface Router 20 { 21 /** 22 * The router type. {@link RouterType#Inbound} indicates that the router annotation is 23 * used on the inbound flow on the service. {@link RouterType#Outbound} indicates that the 24 * router will be used on the outbound flow. {@link RouterType#ReplyTo} indicates that the 25 * router will be used for ReplyTo flows. 26 * @return the type of Router 27 */ 28 RouterType type(); 29 } 30