/*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jdbi.v3.core.mapper.reflect;
Strategy for matching SQL column names to Java property, field, or parameter names.
/**
* Strategy for matching SQL column names to Java property, field, or parameter names.
*/
public interface ColumnNameMatcher {
Returns whether the column name fits the given Java identifier name.
Params: - columnName – the SQL column name
- javaName – the Java property, field, or parameter name
Returns: whether the given names are logically equivalent
/**
* Returns whether the column name fits the given Java identifier name.
*
* @param columnName the SQL column name
* @param javaName the Java property, field, or parameter name
* @return whether the given names are logically equivalent
*/
boolean columnNameMatches(String columnName, String javaName);
Return whether the column name starts with the given prefix, according to the matching strategy of this ColumnNameMatcher
. This method is used by reflective mappers to short-circuit nested mapping when no column names begin with the nested prefix. By default, this method returns columnName.startWith(prefix)
. Third party implementations should override this method to match prefixes by the same criteria as columnNameMatches(String, String)
. Params: - columnName – the column name to test
- prefix – the prefix to test for
Returns: whether the column name begins with the prefix. Since: 3.5.0
/**
* Return whether the column name starts with the given prefix, according to the matching strategy of this
* {@code ColumnNameMatcher}. This method is used by reflective mappers to short-circuit nested mapping when no
* column names begin with the nested prefix.
*
* By default, this method returns {@code columnName.startWith(prefix)}. Third party implementations should override
* this method to match prefixes by the same criteria as {@link #columnNameMatches(String, String)}.
*
* @param columnName the column name to test
* @param prefix the prefix to test for
* @return whether the column name begins with the prefix.
* @since 3.5.0
*/
default boolean columnNameStartsWith(String columnName, String prefix) {
return columnName.startsWith(prefix);
}
}