[#3483] Let <forcedType/>'s <expression/> match both fully qualified column names as well as unqualified column names

This commit is contained in:
Lukas Eder 2014-08-19 10:34:10 +02:00
parent 7a1fd7f044
commit 73fb71ca24
2 changed files with 14 additions and 14 deletions

View File

@ -657,6 +657,7 @@ public abstract class AbstractDatabase implements Database {
@Override
public final ForcedType getConfiguredForcedType(Definition definition, DataTypeDefinition definedType) {
forcedTypeLoop:
for (ForcedType forcedType : getConfiguredForcedTypes()) {
String expression = forcedType.getExpression();
@ -666,19 +667,18 @@ public abstract class AbstractDatabase implements Database {
}
String types = forcedType.getTypes();
boolean match = true;
if (expression != null && !definition.getQualifiedName().matches(expression)) {
match = false;
if (expression != null
&& !definition.getName().matches(expression)
&& !definition.getQualifiedName().matches(expression)) {
continue forcedTypeLoop;
}
if (types != null && definedType != null && !definedType.getType().matches(types)) {
match = false;
continue forcedTypeLoop;
}
if (match) {
return forcedType;
}
return forcedType;
}
return null;

View File

@ -1269,31 +1269,31 @@
<forcedType>
<name>org.jooq.test.all.converters.Boolean_YES_NO_LC</name>
<expression>(?i:(.*?.)?T_BOOLEANS.YES_NO_LC)</expression>
<expression>(?i:YES_NO_LC)</expression>
</forcedType>
<forcedType>
<name>org.jooq.test.all.converters.Boolean_YES_NO_UC</name>
<expression>(?i:(.*?.)?T_BOOLEANS.YES_NO_UC)</expression>
<expression>(?i:YES_NO_UC)</expression>
</forcedType>
<forcedType>
<name>org.jooq.test.all.converters.Boolean_YN_LC</name>
<expression>(?i:(.*?.)?T_BOOLEANS.Y_N_LC)</expression>
<expression>(?i:Y_N_LC)</expression>
</forcedType>
<forcedType>
<name>org.jooq.test.all.converters.Boolean_YN_UC</name>
<expression>(?i:(.*?.)?T_BOOLEANS.Y_N_UC)</expression>
<expression>(?i:Y_N_UC)</expression>
</forcedType>
<forcedType>
<name>org.jooq.test.all.converters.Boolean_TF_LC</name>
<expression>(?i:(.*?.)?T_BOOLEANS.TRUE_FALSE_LC)</expression>
<expression>(?i:TRUE_FALSE_LC)</expression>
</forcedType>
<forcedType>
<name>org.jooq.test.all.converters.Boolean_TF_UC</name>
<expression>(?i:(.*?.)?T_BOOLEANS.TRUE_FALSE_UC)</expression>
<expression>(?i:TRUE_FALSE_UC)</expression>
</forcedType>
<forcedType>
<name>org.jooq.test.all.converters.Boolean_10</name>
<expression>(?i:(.*?.)?T_BOOLEANS.ONE_ZERO)</expression>
<expression>(?i:ONE_ZERO)</expression>
</forcedType>
</forcedTypes>
</database>