Class ReflectionMappers

    • Field Detail

      • strictMatching

        private boolean strictMatching
      • caseChange

        private java.util.function.UnaryOperator<java.lang.String> caseChange
      • makeAccessible

        private java.util.function.Consumer<java.lang.reflect.AccessibleObject> makeAccessible
    • Constructor Detail

      • ReflectionMappers

        public ReflectionMappers()
        Create a default configuration that attempts case insensitive and snake_case matching for names.
    • Method Detail

      • getColumnNameMatchers

        public java.util.List<ColumnNameMatcher> getColumnNameMatchers()
        Returns the registered column name mappers.
        Returns:
        the registered column name mappers.
      • setColumnNameMatchers

        public ReflectionMappers setColumnNameMatchers​(java.util.List<ColumnNameMatcher> columnNameMatchers)
        Replace all column name matchers with the given list.
        Parameters:
        columnNameMatchers - the column name matchers to use
        Returns:
        this
      • isStrictMatching

        public boolean isStrictMatching()
        Returns whether strict column name matching is enabled.
        Returns:
        True if strict column name matching is enabled.
      • setStrictMatching

        public ReflectionMappers setStrictMatching​(boolean strictMatching)
        Throw an IllegalArgumentException if a the set of fields doesn't match to columns exactly. Reflection mappers with prefixes will only check those columns that begin with the mapper's prefix.
        Parameters:
        strictMatching - whether to enable strict matching
        Returns:
        this
      • getCaseChange

        public java.util.function.UnaryOperator<java.lang.String> getCaseChange()
        Case change strategy for the database column names. By default, the row names are lowercased using the system locale.
        Returns:
        The current case change strategy.
        See Also:
        CaseStrategy
      • setCaseChange

        public ReflectionMappers setCaseChange​(java.util.function.UnaryOperator<java.lang.String> caseChange)
        Sets the case change strategy for the database column names. By default, the row names are lowercased using the system locale.
        Parameters:
        caseChange - The strategy to use. Must not be null.
        See Also:
        CaseStrategy
      • setAccessibleObjectStrategy

        @Alpha
        public ReflectionMappers setAccessibleObjectStrategy​(java.util.function.Consumer<java.lang.reflect.AccessibleObject> makeAccessible)
        Set the strategy Jdbi uses for Java accessibility rules. The legacy default is to call setAccessible(true) in certain cases when we try to use a Constructor, Method, or Field. In the future, this default will be changed to a no-op, to better interact with the Java module system.
        Parameters:
        makeAccessible - A Consumer instance that implements the strategy.
        See Also:
        AccessibleObjectStrategy
      • disableAccessibleObjectStrategy

        @Alpha
        public ReflectionMappers disableAccessibleObjectStrategy()
        Set the strategy Jdbi uses for Java accessibility rules to a no-op.
      • makeAccessible

        @Alpha
        public <T extends java.lang.reflect.AccessibleObject> T makeAccessible​(T accessibleObject)
        Use the accessibility strategy to potentially make a reflective operation accessible.
      • createCopy

        public ReflectionMappers createCopy()
        Description copied from interface: JdbiConfig
        Returns a copy of this configuration object. Changes to the copy should not modify the original, and vice-versa.
        Specified by:
        createCopy in interface JdbiConfig<ReflectionMappers>
        Returns:
        a copy of this configuration object.