Class QueryMapperRegistry


  • public class QueryMapperRegistry
    extends Object
    Allow to find mappers by name instead of using their instances Mappers are discovered by ServiceLoader mechanism - meaning must be defined in services file:
    META-INF/services/org.jbpm.services.api.query.QueryResultMapper
    as fully qualified class names that implement org.jbpm.services.api.query.QueryResultMapper
    • Field Detail

      • logger

        public static final org.slf4j.Logger logger
    • Constructor Detail

      • QueryMapperRegistry

        protected QueryMapperRegistry()
    • Method Detail

      • get

        public static QueryMapperRegistry get()
        Returns instance of the registry that is already populated with known mappers.
        Returns:
      • mapperFor

        public QueryResultMapper<?> mapperFor​(String name,
                                              Map<String,​String> columnMapping)
        Returns mapper for given name if found.
        Parameters:
        name - unique name that mapper is bound to
        columnMapping - provides column mapping (name to type) that can be shipped to mapper for improved transformation - can be null (accepted types: string, long, integer, date, double)
        Returns:
        instance of the QueryResultMapper if found
        Throws:
        IllegalArgumentException - in case there is no mapper found with given name
      • discoverAndAddMappers

        public List<String> discoverAndAddMappers​(ClassLoader cl)
        Discovers and adds all QueryResultMappers to the known set.
        Parameters:
        cl - class laoder used to discover mappers
        Returns:
        returns list of added (not previously existing) mappers
      • addMapper

        public void addMapper​(QueryResultMapper<?> mapper)
        Adds a new query results mapper
        Parameters:
        mapper -
      • removeMapper

        public void removeMapper​(String mapperName)
        Removes a query results mapper.
        Parameters:
        mapperName -