Coverage Report - org.mule.config.AnnotationsParserFactory
 
Classes in this File Line Coverage Branch Coverage Complexity
AnnotationsParserFactory
N/A
N/A
0
 
 1  
 /*
 2  
  * $Id: AnnotationsParserFactory.java 20321 2010-11-24 15:21:24Z dfeist $
 3  
  * --------------------------------------------------------------------------------------
 4  
  * Copyright (c) MuleSoft, Inc.  All rights reserved.  http://www.mulesoft.com
 5  
  *
 6  
  * The software in this package is published under the terms of the CPAL v1.0
 7  
  * license, a copy of which has been included with this distribution in the
 8  
  * LICENSE.txt file.
 9  
  */
 10  
 package org.mule.config;
 11  
 
 12  
 import org.mule.api.EndpointAnnotationParser;
 13  
 import org.mule.api.MessageProcessorAnnotationParser;
 14  
 import org.mule.api.expression.ExpressionAnnotationParser;
 15  
 
 16  
 import java.lang.annotation.Annotation;
 17  
 import java.lang.reflect.Member;
 18  
 
 19  
 /**
 20  
  * Defines a common interface to find all Endpoint annotation parsers for a context.  Endpoint parsers may be
 21  
  * customized depending on the underlying platform.
 22  
  * This is not an interface that users should ever need to use or customize, but Mule on different platforms
 23  
  * can customize how the endpoints are created from the annotations.
 24  
  * <p/>
 25  
  * There are 3 types of annotation parser -
 26  
  * 1. Endpoint : translates into an endpoint configured on a service object.
 27  
  * 2. Router : translates into a router that will be configured on a service object, i.e. WireTap, Splitter, or Filter
 28  
  * 3. Expression : translates into an expression, usually these are configured on method parameters so that an expression
 29  
  * will get evaluated on the parameter before being passed into the method.
 30  
  *
 31  
  * @since 3.0
 32  
  *
 33  
  */
 34  
 public interface AnnotationsParserFactory
 35  
 {
 36  
     /**
 37  
      * Retrieves a parser for the given annotation, the parameters passed in can be used to validate the use of
 38  
      * the annotation, i.e. you may want to restrict annotations to only be configured on concrete classes
 39  
      *
 40  
      * @param annotation the annotation being processed
 41  
      * @param aClass     the class on which  the annotation is defined
 42  
      * @param member     the class member on which the annotation was defined, such as Field, Method, Constructor, or
 43  
      *                   null if a Type-level annotation.
 44  
      * @return the endpoint annotation parser that can parse the supplied annotation or null if a matching parser
 45  
      *         not found
 46  
      */
 47  
     EndpointAnnotationParser getEndpointParser(Annotation annotation, Class<?> aClass, Member member);
 48  
 
 49  
     /**
 50  
      * Retrieves a parser for the given annotation, where the annotation is an Expression annotation; one annotated with
 51  
      * the {@link org.mule.api.annotations.meta.Evaluator} annotation.
 52  
      * <p/>
 53  
      *
 54  
      * @param annotation the annotation being processed
 55  
      * @return the expression annotation parser that can parse the supplied annotation or null if a matching parser
 56  
      *         not found
 57  
      */
 58  
     ExpressionAnnotationParser getExpressionParser(Annotation annotation);
 59  
 
 60  
     /**
 61  
      * Retrieves a parser for the given annotation, where the annotation is a Router annotation; one annotated with
 62  
      * the {@link org.mule.api.annotations.meta.Router} annotation. the parameters passed in can be used to validate the use of
 63  
      * the annotation, i.e. you may want to restrict annotations to only be configured on concrete classes.
 64  
      * <p/>
 65  
      *
 66  
      * @param annotation the annotation being processed
 67  
      * @param aClass     the class on which  the annotation is defined
 68  
      * @param member     the class member on which the annotation was defined, such as Field, Method, Constructor, or
 69  
      *                   null if a Type-level annotation.
 70  
      * @return the router annotation parser that can parse the supplied annotation or null if a matching parser
 71  
      *         not found
 72  
      */
 73  
     MessageProcessorAnnotationParser getRouterParser(Annotation annotation, Class<?> aClass, Member member);
 74  
 
 75  
 }