From fcd068dfb3c6a3a14ad2b64c9dc7495128e6a8e3 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Sat, 26 Apr 2014 13:59:07 +0200 Subject: [PATCH] [#3202] Allow for Pattern.COMMENTS in code generation configuration's regexes --- .../main/java/org/jooq/util/JavaGenerator.java | 13 +++++++++---- .../java/org/jooq/util/AbstractDatabase.java | 13 +++++++++---- .../jooq/configuration/lukas/h2/library.xml | 18 +++++++++++++++--- 3 files changed, 33 insertions(+), 11 deletions(-) diff --git a/jOOQ-codegen/src/main/java/org/jooq/util/JavaGenerator.java b/jOOQ-codegen/src/main/java/org/jooq/util/JavaGenerator.java index cf7d0a563d..d3253a7383 100644 --- a/jOOQ-codegen/src/main/java/org/jooq/util/JavaGenerator.java +++ b/jOOQ-codegen/src/main/java/org/jooq/util/JavaGenerator.java @@ -53,6 +53,7 @@ import java.util.Collection; import java.util.HashSet; import java.util.List; import java.util.Set; +import java.util.regex.Pattern; import org.jooq.AggregateFunction; import org.jooq.Configuration; @@ -1856,9 +1857,11 @@ public class JavaGenerator extends AbstractGenerator { // if properly configured if (updatable) { patternLoop: for (String pattern : database.getRecordVersionFields()) { + Pattern p = Pattern.compile(pattern, Pattern.COMMENTS); + for (ColumnDefinition column : table.getColumns()) { - if ((column.getName().matches(pattern.trim()) || - column.getQualifiedName().matches(pattern.trim()))) { + if ((p.matcher(column.getName()).matches() || + p.matcher(column.getQualifiedName()).matches())) { final String columnType = getJavaType(column.getType()); final String columnId = getStrategy().getFullJavaIdentifier(column); @@ -1875,9 +1878,11 @@ public class JavaGenerator extends AbstractGenerator { } timestampLoop: for (String pattern : database.getRecordTimestampFields()) { + Pattern p = Pattern.compile(pattern, Pattern.COMMENTS); + for (ColumnDefinition column : table.getColumns()) { - if ((column.getName().matches(pattern.trim()) || - column.getQualifiedName().matches(pattern.trim()))) { + if ((p.matcher(column.getName()).matches() || + p.matcher(column.getQualifiedName()).matches())) { final String columnType = getJavaType(column.getType()); final String columnId = getStrategy().getFullJavaIdentifier(column); diff --git a/jOOQ-meta/src/main/java/org/jooq/util/AbstractDatabase.java b/jOOQ-meta/src/main/java/org/jooq/util/AbstractDatabase.java index 82feafcc79..b37acc1cee 100644 --- a/jOOQ-meta/src/main/java/org/jooq/util/AbstractDatabase.java +++ b/jOOQ-meta/src/main/java/org/jooq/util/AbstractDatabase.java @@ -54,6 +54,7 @@ import java.util.Iterator; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; +import java.util.regex.Pattern; import org.jooq.DSLContext; import org.jooq.SQLDialect; @@ -798,9 +799,11 @@ public abstract class AbstractDatabase implements Database { definitionsLoop: for (T definition : definitions) { if (excludes != null) { for (String exclude : excludes) { + Pattern p = Pattern.compile(exclude, Pattern.COMMENTS); + if (exclude != null && - (definition.getName().matches(exclude.trim()) || - definition.getQualifiedName().matches(exclude.trim()))) { + (p.matcher(definition.getName()).matches() || + p.matcher(definition.getQualifiedName()).matches())) { continue definitionsLoop; } @@ -809,9 +812,11 @@ public abstract class AbstractDatabase implements Database { if (includes != null) { for (String include : includes) { + Pattern p = Pattern.compile(include, Pattern.COMMENTS); + if (include != null && - (definition.getName().matches(include.trim()) || - definition.getQualifiedName().matches(include.trim()))) { + (p.matcher(definition.getName()).matches() || + p.matcher(definition.getQualifiedName()).matches())) { result.add(definition); continue definitionsLoop; diff --git a/jOOQ-test/configuration/org/jooq/configuration/lukas/h2/library.xml b/jOOQ-test/configuration/org/jooq/configuration/lukas/h2/library.xml index c02ddf9848..5ae0bcf5e7 100644 --- a/jOOQ-test/configuration/org/jooq/configuration/lukas/h2/library.xml +++ b/jOOQ-test/configuration/org/jooq/configuration/lukas/h2/library.xml @@ -10,10 +10,22 @@ org.jooq.util.DefaultGenerator .* - T_BOOK_DETAILS|SYSTEM_SEQUENCE.*|.*\.COL2|COL3 + + T_BOOK_DETAILS # Check if dependent objects (e.g. foreign keys) are not generated + | SYSTEM_SEQUENCE.* # who knows where this came from (sample comment) + | .*\.COL2 # v_2603 contains some columns that we don't want to generate + | COL3 # v_2603 contains some columns that we don't want to generate + true - REC_VERSION - REC_TIMESTAMP + + REC_VERSION + | ASDF_ASDF_ASDF # This should not have any effect + + + REC_TIMESTAMP + | ASDF_ASDF_ASDF # This should not have any effect + | ASDF_ASDF_ASDF # This should not have any effect + false true PUBLIC