Available in versions: Dev (3.19) | Latest (3.18) | 3.17 | 3.16 | 3.15 | 3.14 | 3.13 | 3.12 | 3.11 | 3.10 | 3.9
MatcherRule
Applies to ✅ Open Source Edition ✅ Express Edition ✅ Professional Edition ✅ Enterprise Edition
Most matchers use references to MatcherRule
, which is an XSD type that looks like this:
<configuration> <generator> <strategy> <matchers> <schemas> <schema> <schemaClass> <!-- The optional transform element lets you apply a name transformation algorithm to transform the actual database name into a more convenient form. Possible values are: - AS_IS : Leave the database name as it is : MY_name => MY_name - LOWER : Transform the database name into lower case : MY_name => my_name - UPPER : Transform the database name into upper case : MY_name => MY_NAME - CAMEL : Transform the database name into camel case : MY_name => myName - PASCAL : Transform the database name into pascal case : MY_name => MyName --> <transform>CAMEL</transform> <!-- The mandatory expression element lets you specify a replacement expression to be used when replacing the matcher's regular expression. You can use indexed variables $0, $1, $2. --> <expression>PREFIX_$0_SUFFIX</expression> </schemaClass> </schema> </schemas> </matchers> </strategy> </generator> </configuration>
See the configuration XSD, standalone code generation, and maven code generation for more details.
new org.jooq.util.jaxb.Configuration() .withGenerator(new Generator() .withStrategy(new Strategy() .withMatchers(new Matchers() .withSchemas( new MatchersSchemaType() .withSchemaClass(new MatcherRule() // The optional transform element lets you apply a name transformation algorithm // to transform the actual database name into a more convenient form. Possible values are: // // - AS_IS : Leave the database name as it is : MY_name => MY_name // - LOWER : Transform the database name into lower case : MY_name => my_name // - UPPER : Transform the database name into upper case : MY_name => MY_NAME // - CAMEL : Transform the database name into camel case : MY_name => myName // - PASCAL : Transform the database name into pascal case : MY_name => MyName .withTransform(MatcherTransformType.CAMEL) // The mandatory expression element lets you specify a replacement expression to be used when // replacing the matcher's regular expression. You can use indexed variables $0, $1, $2. .withExpression("PREFIX_$0_SUFFIX") ) ) ) ) )
See the configuration XSD and programmatic code generation for more details.
// The jOOQ-codegen-gradle plugin has been introduced in version 3.19 only.
// The jOOQ-codegen-gradle plugin has been introduced in version 3.19 only.
generationTool { generator { strategy { matchers { schemas { schema { schemaClass { // The optional transform element lets you apply a name transformation algorithm // to transform the actual database name into a more convenient form. Possible values are: // // - AS_IS : Leave the database name as it is : MY_name => MY_name // - LOWER : Transform the database name into lower case : MY_name => my_name // - UPPER : Transform the database name into upper case : MY_name => MY_NAME // - CAMEL : Transform the database name into camel case : MY_name => myName // - PASCAL : Transform the database name into pascal case : MY_name => MyName transform = "CAMEL" // The mandatory expression element lets you specify a replacement expression to be used when // replacing the matcher's regular expression. You can use indexed variables $0, $1, $2. expression = "PREFIX_$0_SUFFIX" } } } } } } }
See the configuration XSD and gradle code generation for more details.
As always, when regular expressions are used, they are regular expressions with default flags.
In other words, a MatcherRule
describes how a specific object type name (e.g. a class name representing a generated org.jooq.Schema
) should be declared and referenced based on the object's input name.
References to this page
Feedback
Do you have any feedback about this page? We'd love to hear it!