Class BeanInfo

java.lang.Object
org.apache.camel.component.bean.BeanInfo

public class BeanInfo extends Object
Represents the metadata about a bean type created via a combination of introspection and annotations together with some useful sensible defaults
  • Constructor Details

  • Method Details

    • getType

      public Class<?> getType()
    • getCamelContext

      public org.apache.camel.CamelContext getCamelContext()
    • createInvocation

      public MethodInvocation createInvocation(Object pojo, org.apache.camel.Exchange exchange) throws AmbiguousMethodCallException, MethodNotFoundException
      Throws:
      AmbiguousMethodCallException
      MethodNotFoundException
    • getMethodInfo

      public MethodInfo getMethodInfo(Method method)
      Returns the MethodInfo for the given method if it exists or null if there is no metadata available for the given method
    • createMethodInfo

      protected MethodInfo createMethodInfo(Class<?> clazz, Method method)
    • collectParameterAnnotations

      protected List<Annotation>[] collectParameterAnnotations(Class<?> c, Method m)
    • collectParameterAnnotations

      protected void collectParameterAnnotations(Class<?> c, Method m, List<Annotation>[] a)
    • chooseMethod

      protected MethodInfo chooseMethod(Object pojo, org.apache.camel.Exchange exchange, String name) throws AmbiguousMethodCallException
      Choose one of the available methods to invoke if we can match the message body to the body parameter
      Parameters:
      pojo - the bean to invoke a method on
      exchange - the message exchange
      name - an optional name of the method that must match, use null to indicate all methods
      Returns:
      the method to invoke or null if no definitive method could be matched
      Throws:
      AmbiguousMethodCallException - is thrown if cannot choose method due to ambiguity
    • isValidMethod

      protected boolean isValidMethod(Class<?> clazz, Method method)
      Validates whether the given method is a valid candidate for Camel Bean Binding.
      Parameters:
      clazz - the class
      method - the method
      Returns:
      true if valid, false to skip the method
    • hasMethod

      public boolean hasMethod(String methodName)
      Do we have a method with the given name.

      Shorthand method names for getters is supported, so you can pass in eg 'name' and Camel will can find the real 'getName' method instead.

      Parameters:
      methodName - the method name
      Returns:
      true if we have such a method.
    • hasStaticMethod

      public boolean hasStaticMethod(String methodName)
      Do we have a static method with the given name.

      Shorthand method names for getters is supported, so you can pass in eg 'name' and Camel will can find the real 'getName' method instead.

      Parameters:
      methodName - the method name
      Returns:
      true if we have such a static method.
    • hasPublicConstructors

      public boolean hasPublicConstructors()
      Returns whether the bean class has any public constructors.
    • hasPublicNoArgConstructors

      public boolean hasPublicNoArgConstructors()
      Returns whether the bean class has any public no-arg constructors.
    • getMethods

      public List<MethodInfo> getMethods()
      Gets the list of methods sorted by A..Z method name.
      Returns:
      the methods.
    • hasAnyMethodHandlerAnnotation

      public boolean hasAnyMethodHandlerAnnotation()
      Does any of the methods have a Canel @Handler annotation.
    • isGetter

      public static boolean isGetter(Method method)
    • isSetter

      public static boolean isSetter(Method method)
    • getGetterShorthandName

      public static String getGetterShorthandName(Method method)