Class DynamicAttributesAnnotationProcessor
java.lang.Object
io.jmix.search.index.mapping.processor.AbstractFieldAnnotationProcessor<DynamicAttributes>
io.jmix.search.index.mapping.processor.impl.dynattr.DynamicAttributesAnnotationProcessor
- All Implemented Interfaces:
FieldAnnotationProcessor<DynamicAttributes>
@Component("search_DynamicAttributesAnnotationProcessor")
public class DynamicAttributesAnnotationProcessor
extends AbstractFieldAnnotationProcessor<DynamicAttributes>
Processor for the
DynamicAttributes annotation used in field mapping definitions.
This class provides the functionality to process the annotation, extract its parameters,
and define a mapping of dynamic attributes to be indexed.
If the 'Dynamic attributes' module is absent, the IndexConfigurationException is thrown.
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionDynamicAttributesAnnotationProcessor(DynamicAttributesSupport dynamicAttributesSupport) -
Method Summary
Modifier and TypeMethodDescriptionprotected DynamicAttributesGroupConfigurationcreateDefinition(DynamicAttributes annotation) createParameters(DynamicAttributes specificAnnotation) Extracts parameters from the annotation.Gets specific annotation classprotected Class<? extends FieldMappingStrategy>Provides class ofFieldMappingStrategyspecific for this annotation.protected voidprocessSpecificAnnotation(MappingDefinition.MappingDefinitionBuilder builder, MetaClass rootEntityMetaClass, DynamicAttributes annotation) Processes theDynamicAttributesannotation by verifying the presence of the necessary module and adding a dynamic attributes group to the specified mapping definition builder.Methods inherited from class io.jmix.search.index.mapping.processor.AbstractFieldAnnotationProcessor
process
-
Field Details
-
dynamicAttributesSupport
-
-
Constructor Details
-
DynamicAttributesAnnotationProcessor
-
-
Method Details
-
getAnnotationClass
Description copied from interface:FieldAnnotationProcessorGets specific annotation class- Returns:
- annotation class
-
processSpecificAnnotation
protected void processSpecificAnnotation(MappingDefinition.MappingDefinitionBuilder builder, MetaClass rootEntityMetaClass, DynamicAttributes annotation) Processes theDynamicAttributesannotation by verifying the presence of the necessary module and adding a dynamic attributes group to the specified mapping definition builder.If the 'Dynamic Attributes' module is not present, this method throws an
IndexConfigurationException.- Specified by:
processSpecificAnnotationin classAbstractFieldAnnotationProcessor<DynamicAttributes>- Parameters:
builder- theMappingDefinition.MappingDefinitionBuilderused to define the mapping of attributesrootEntityMetaClass- the rootMetaClassof the entity being processedannotation- theDynamicAttributesannotation containing configuration for dynamic attributes- Throws:
IndexConfigurationException- if the Dynamic Attributes module is not present
-
createDefinition
-
createParameters
Description copied from class:AbstractFieldAnnotationProcessorExtracts parameters from the annotation.- Specified by:
createParametersin classAbstractFieldAnnotationProcessor<DynamicAttributes>- Parameters:
specificAnnotation- processed annotation- Returns:
- map with parameters
-
getFieldMappingStrategyClass
Description copied from class:AbstractFieldAnnotationProcessorProvides class ofFieldMappingStrategyspecific for this annotation.- Specified by:
getFieldMappingStrategyClassin classAbstractFieldAnnotationProcessor<DynamicAttributes>- Returns:
- mapping strategy
-