Available in versions: Dev (3.16) | Latest (3.15)

Visibility Modifier

Applies to ✅ Open Source Edition   ✅ Express Edition   ✅ Professional Edition   ✅ Enterprise Edition

By default, most generated code that is intended for use by users is generated using the explicit (Java) or implicit (Kotlin, Scala) public modifier.

In Kotlin there are valid reasons to deviate from this default, including:

  • -Xexplicit-api=strict is enabled, and it is a compilation error to omit the otherwise optional visibility modifier
  • The generated code should be generated as internal, not public

In the above cases, a configuration flag can help:

XML (standalone and maven)
Programmatic
Gradle
<configuration xmlns="http://www.jooq.org/xsd/jooq-codegen-3.15.0.xsd">
  <generator>
    <generate>
      <!-- Possible values for visibilityModifier
         - DEFAULT  : The default per language (Java: public, Kotlin, Scala: implicit public)
         - NONE     : Do not generate visibility modifiers
         - PUBLIC   : Generate explicit public modifiers (Java, Kotlin)
         - INTERNAL : Generate explicit internal modifiers (Kotlin) -->
      <visibilityModifier>INTERNAL</visibilityModifier>
    </generate>
  </generator>
</configuration>
new org.jooq.meta.jaxb.Configuration()
  .withGenerator(
    new Generate()

      // Possible values for visibilityModifier
      // - DEFAULT  : The default per language (Java: public, Kotlin, Scala: implicit public)
      // - NONE     : Do not generate visibility modifiers
      // - PUBLIC   : Generate explicit public modifiers (Java, Kotlin)
      // - INTERNAL : Generate explicit internal modifiers (Kotlin)
      .withVisibilityModifier(VisibilityModifier.INTERNAL)
  )
myConfigurationName(sourceSets.main) {
  generator {
    generate {

      // Possible values for visibilityModifier
      // - DEFAULT  : The default per language (Java: public, Kotlin, Scala: implicit public)
      // - NONE     : Do not generate visibility modifiers
      // - PUBLIC   : Generate explicit public modifiers (Java, Kotlin)
      // - INTERNAL : Generate explicit internal modifiers (Kotlin)
      visibilityModifier = 'INTERNAL'
    }
  }
}

Not all values make sense for all languages.

Feedback

Do you have any feedback about this page? We'd love to hear it!

The jOOQ Logo