Interface MappingAnnotationProcessorContext

All Known Subinterfaces:
ConstructorMappingAnnotationProcessorContext, MethodParameterMappingAnnotationProcessorContext, PropertyMappingAnnotationProcessorContext, TypeMappingAnnotationProcessorContext

public interface MappingAnnotationProcessorContext
A superinterface for contexts passed to mapping annotation processors.
  • Method Details

    • annotatedElement

      MappingAnnotatedElement annotatedElement()
      Returns:
      A representation of the annotated element.
    • toPojoModelPathValueNode

      Optional<PojoModelPathValueNode> toPojoModelPathValueNode(ObjectPath objectPath)
      Convert an ObjectPath annotation to a PojoModelPathValueNode.
      Parameters:
      objectPath - The annotation to convert.
      Returns:
      The corresponding path, or an empty optional if the path was empty.
    • toContainerExtractorPath

      ContainerExtractorPath toContainerExtractorPath(ContainerExtraction extraction)
      Convert a ContainerExtraction annotation to a ContainerExtractorPath.
      Parameters:
      extraction - The annotation to convert.
      Returns:
      The corresponding path.
    • toBeanReference

      default <T> Optional<BeanReference<? extends T>> toBeanReference(Class<T> expectedType, Class<?> undefinedTypeMarker, Class<? extends T> type, String name)
      Type Parameters:
      T - The bean type.
      Parameters:
      expectedType - The supertype of all types that can be referenced.
      undefinedTypeMarker - A marker type to detect that the type parameter has its default value (undefined).
      type - The bean type.
      name - The bean name.
      Returns:
      The corresponding bean reference, or an empty optional if neither the type nor the name is provided.
    • toBeanReference

      <T> Optional<BeanReference<? extends T>> toBeanReference(Class<T> expectedType, Class<?> undefinedTypeMarker, Class<? extends T> type, String name, BeanRetrieval retrieval)
      Convert attributes of a bean-reference annotation, such as ValueBridgeRef, to an actual BeanReference.

      Example of use:

      
           Optional<BeanReference<? extends ValueBridge>> valueBridgeRef = toBeanReference(
                   ValueBridge.class,
                   ValueBridgeRef.UndefinedBridgeImplementationType.class,
                   myValueBridgeRefInstance.type(),
                   myValueBridgeRefInstance.name(),
                   myValueBridgeRefInstance.retrieval()
           );
       
      Type Parameters:
      T - The bean type.
      Parameters:
      expectedType - The supertype of all types that can be referenced.
      undefinedTypeMarker - A marker type to detect that the type parameter has its default value (undefined).
      type - The bean type.
      name - The bean name.
      retrieval - How to retrieve the bean. See BeanRetrieval.
      Returns:
      The corresponding bean reference, or an empty optional if neither the type nor the name is provided.
    • eventContext

      EventContext eventContext()
      Returns:
      An event context describing the annotation being processed and its location, for use in log messages and exception messages.
    • toMap

      default Map<String,Object> toMap(Param[] params)
      Parameters:
      params - The original params
      Returns:
      A Map created from Param using Param.name() as key and Param.value() as value
      Throws:
      SearchException - if params contain multiple parameters with the same Param.name()
    • toNullIfDefault

      <T> T toNullIfDefault(T value, T defaultValue)
      Parameters:
      value - A value extracted from an annotation attribute.
      defaultValue - A default value for that annotation attribute.
      Returns:
      null if value is equal to defaultValue, value otherwise.